android 优化启动事件,张绍文android开发高手课读书笔记4-启动优化篇
啟動優化篇
在說如何對啟動時間進行優化之前,我們得先知道從用戶點擊應用圖標開始,一共經歷了那些階段。
主要階段如下圖.
image
T0~T1階段
這個階段是手機系統解析點擊事件,效應快慢跟手機性能有關
T1~T2階段
系統在正式啟動應用之前,會根據應用設置的Theme設置一個預覽界面.
應用啟動白屏也是發生在這里,如果你沒有設置對應的Theme,并且Activity的onCreate函數執行所需要的時間過長,就會出現白屏的情況.比較可行的解決方式是給啟動頁的Theme設置一張背景圖。如下
android:name=".view.SplashActivity"
android:theme="@style/LauncherTheme">
@drawable/logo_bg
這樣的話,在點擊應用圖標后,就會先顯示一張背景圖,
另外還可以將預覽窗口指定為透明的,這樣用戶在看到閃屏頁之前會一直帶著桌面,但這樣就會給用戶一種點了很久才會看到界面的感覺。
在預覽界面顯示之后,便會創建Application和閃屏頁,大部分應用都會在這個時候初始化各種功能.因而導致
預覽界面~閃屏界面顯示 這個時間會很長.如何優化
除了必須要在Application中初始化的功能,我們可以把其他一些功能的初始化移到閃屏頁中,因為大多數應用的閃屏頁都會停留幾秒鐘。這里還要注意的是,移到閃屏頁初始化的功能代碼,不要放在onCreate生命周期下,而是另外開啟一個線程來做初始化行為。
另外,多線程的切換會影響CPU的性能.所以如果你的應用在啟動時需要開多個線程的話,需要考慮用線程池來維護
T2~T3階段
在閃屏頁顯示的時候,會開始主頁視圖的繪制,這個時候需要注意,因為之前說到,閃屏頁中會開啟子線程去初始化一些功能。如果需要初始化的模塊過多,開始加載首頁的時候還沒初始化完成,恰巧這個時候首頁又需要用到這個模塊.那這個時候就會報錯。
所以首頁需要用到的模塊必須得在調用之前初始化成功。
T3~T4階段
首頁正常顯示了,但這個時候你不一定就能點擊,問題還是在于有些功能模塊的代碼還未初始化完成。
總結
界面顯示上:
預覽窗口可以采用自由logo背景或者與閃屏頁共用,以防止白屏.
模塊初始化:
application中初始化一部分必要的模塊,閃屏頁通過子線程加載一部分模塊,剩下的非緊急的模塊用懶加載的方式,
其中懶加載要防止集中化,不然可能會出現一次加載太多,導致某個界面無法操作的情況。
作者:niknowzcd
鏈接:https://www.jianshu.com/p/6be6cdfb5beb
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的android 优化启动事件,张绍文android开发高手课读书笔记4-启动优化篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android+app+wifi+控制+
- 下一篇: html怎么压缩ttf,如何使用CSS包