赞
踩
Android端的启动流程
=============
启动流程实际上还涉及了很多native 层的工作,但是宥于篇幅,暂且只看Android端。
FlutterApplication
flutter应用下,原生的启动流程并没有什么变化,我们来看Application的onCreate函数。
@Override
@CallSuper
public void onCreate() {
super.onCreate();
FlutterMain.startInitialization(this);
}
很简单,继续往里走
public static void startInitialization(@NonNull Context applicationContext) {
if (isRunningInRobolectricTest) {
return;
}
FlutterLoader.getInstance().startInitialization(applicationContext);
}
上面的方法用于初始化 native system(即C++),并最终会调用下面的方法:
我将说明以注释的形式写在下面
public void startInitialization(@NonNull Context applicationContext, @NonNull Settings settings) {
if (this.settings != null) {
return;
}
///确保运行在 主线程
if (Looper.myLooper() != Looper.getMainLooper()) {
throw new IllegalStateException(“startInitialization must be called on the main thread”);
}
// Ensure that the context is actually the application context.
final Context appContext = applicationCo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。