冷啟動優化
一、什麼是冷啟動
1.冷啟動的定義
冷啟動就是在啟動應用前,系統中沒有該應用的任何程序資訊
2.冷啟動、熱啟動的區別
熱啟動:使用者使用返回鍵退出應用,然後馬上又重新啟動應用。
冷啟動會走application ,而熱啟動不會走該方法,會從已有的程序啟動應用
3.冷啟動時間的計算
這個事件值從應用啟動(建立程序)開始計算,到完成檢視的第一次繪製(即Activity內容對使用者可見)為止。
二、冷啟動的流程
Zygote 程序中fork創建出一個新的程序
建立和初始化application 類、建立MainActivity類
inflate佈局、當onCrea/onStart/onResume 方法都走完
contentView的measure/layout/draw顯示在介面上
啟動流程總結:
application的構造方法 --attachBaseContext()--onCreat()--Activity的構造方法-----onCreate()--配置主題中背景燈屬性--onStrat()---onResume()---測量佈局繪製顯示在介面上。
三、冷啟動的優化
1.減少onCreate()方法的工作量 ,懶載入
2.不要讓Application參與業務操作
3.不要讓Application參與耗時操作 如io讀取等
4.不要在Application中以靜態變數的方式儲存資料
5.佈局、mainThread