天天看點

關于React Native 安卓首屏白屏優化

在android中,當點選某個rn子產品的入口按鈕,彈出rn的activity到rn的頁面展現出來的過程中,會有很明顯的白屏現象,不同的機型不同(cpu好的白屏時間短),大概1s到2s的時間。

注意,隻有在真機上才會有此現象,在模拟器上沒有此現象完全是秒開。

通過工具分析,問題主要在下面的代碼上,

ReactActivity的onCreate()的完整代碼如下:

知道了産生問題的原因,我們就知道怎麼着手優化了。我們首先想到的:-記憶體換時間

步驟一:

緩存rootview管理器主要用于初始化和緩存rootview對象。

步驟二

重寫ReactActivity,可以拷貝出來改,也可以繼承寫,主要是重寫onCreate和onDestroy,其餘代碼不動。onCreate方法中使用緩存rootview管理器來獲得rootview對象,而不是重新建立。

onCreate()代碼

onDestroy方法中,不能再調用原有的mReactInstanceManager.destroy()方法了,否則rn初始化出來的對象會被銷毀,下次就用不了了。同時,要解除安裝掉rootview的parent對象,否則下次再setContentView時候回報錯。

RNCacheViewManager的onDeatory代碼

步驟三

在app啟動時候初始化緩存rootview管理器。

RnInfo實體類代碼: