mReactRootView = createRootView();
mReactRootView.startReactApplication(
getReactNativeHost().getReactInstanceManager(),
appKey,
getLaunchOptions());
查看ReactActivity源码,发现onCreate中最耗时的是这几行代码,占了90%的时间。
优化思路:内存换时间,在app启动的时候,就将mReactRootView初始化出来,并缓存起来,在用的时候直接.setContentView(mReactRootView),达到秒开。预加载,把JsBundle文件先加载到内存中),步骤如下:
1、缓存rootView管理器 RNCacheViewManager
2、重写ReactActivity 抽象类MyReactActivity继承Activity实现接口DefaultHardwareBackBtnHandler、PermissionAwareActivity
3、Activity的继承对象由ReactActivity修改为MyReactActivity
4、在需要预加载的地方执行初始化操作(在将要进入RN页面的前一个页面中初始化)。
RNCacheViewManager.init(this);
网友评论