mReactRootView = createRootView();
mReactRootView.startReactApplication(
getReactNativeHost().getReactInstanceManager(),
appKey,
getLaunchOptions());
查看ReactActivity源碼炉奴,發(fā)現(xiàn)onCreate中最耗時(shí)的是這幾行代碼媒鼓,占了90%的時(shí)間梦鉴。
優(yōu)化思路:內(nèi)存換時(shí)間,在app啟動(dòng)的時(shí)候十电,就將mReactRootView初始化出來知押,并緩存起來叹螟,在用的時(shí)候直接.setContentView(mReactRootView),達(dá)到秒開朗徊。預(yù)加載首妖,把JsBundle文件先加載到內(nèi)存中),步驟如下:
1爷恳、緩存rootView管理器 RNCacheViewManager
2有缆、重寫ReactActivity 抽象類MyReactActivity繼承Activity實(shí)現(xiàn)接口DefaultHardwareBackBtnHandler、PermissionAwareActivity
3温亲、Activity的繼承對(duì)象由ReactActivity修改為MyReactActivity
4棚壁、在需要預(yù)加載的地方執(zhí)行初始化操作(在將要進(jìn)入RN頁(yè)面的前一個(gè)頁(yè)面中初始化)。
RNCacheViewManager.init(this);