公司的App啓動速度太慢了要求提高啓動速度,
於是動手研究下
把啓動速度從2000ms降低到800ms左右。
先記錄下提速的方法
application的Oncreate方法裏面的邏輯代碼全用
new Handler().post(new Runnable());包裹
Activity的Oncreate()方法如此;
這種方法會把代碼執行的時序全拖到onResumer之後
3,然後在Oncreate onresume 方法 一切你認爲會阻礙到啓動速度的方法和代碼加上log打印信息
看圖
看點擊的activitymanager 他會打印時間,只要看下打印時間之前的log打印了哪些信息
然後判斷這些打印信息的代碼是否會阻礙到app的啓動速度
如果會的話就把這些代碼全部new Handler.post掉,或者new Thread 掉。但是順序也會有先後,
打印下log慢慢體會。
我的app在啓動的時候會掃描數據庫,但是newHandler new Thread 後發現還是在 啓動時間之前就已經運行了,這證明啓動的時候會去掃描數據庫,時間慢了100ms。於是用new Handler.postDaley();延長90ms運行,發現可以把這個掃描的模塊拖到打印時間之後運行,app啓動後視圖出來了纔開始掃描數據庫,速度又提高了100ms
達到了800ms左右。
4. 另外還要注意佈局的深度,儘量簡化佈局。