冷啟動(cold start)
溫啟動(warm start)
熱啟動(hot start)
時間獲取 我們可以使用adb命令啟動應用,來獲取當前應用的啟動時間
adb shell am start -w [packagename]/[.mainactivity]
複製**
總共返回了三個結果,我們以 waittime 為準.
thistime:一般和totaltime時間一樣,除非在應用啟動時開了乙個透明的activity預先處理一些事再顯示出主activity,這樣將比totaltime小。
waittime:一般比totaltime大點,包括系統影響的耗時。
系統建立應用程式程序,應用程式程序就會執行以下操作:
1.建立應用程式物件
2.啟動主線程
3.建立主要activity
4.繪製檢視(view)
5.布局螢幕
6.執行初始化繪製
所以優化啟動速度本質上是優化上訴過程,減少這些過程的耗時。
視覺優化
開啟乙個應用總會有短暫的黑(白)屏的情況,導致體驗上有卡頓的問題,可設定第乙個activity為透明或者為其設定乙個背景達到視覺上的優化, 如下
1.第三方sdk初始化的處理
下面例項對比下imageloader在採用懶載入後啟動速度優化。
public
class
extends
}複製**
懶載入imageloader的工具類示例:
public
class
imageutil
imageloaderconfiguration.builder config =
....
// initialize imageloader with configuration.
imageloader.getinstance().init(config.build());
sinit = true;
}public
static
void
display
(string uri, imageview imageview, boolean cacheondisk)
else
}}複製**
在主線程做大量耗時操作,例如和io相關的邏輯,這樣都會影響到應用啟動速度。如果必須要做需要放到子執行緒中。
多執行緒避免執行不必要的操作
activity oncreate優化
減少launchactivity的view層級,減少view測量繪製時間;使用viewstub,將無必要的view(如開機廣告)延遲載入
主線程避免i/o操作、反序列化、網路操作等。
Android啟動速度優化
fyi 可以學習如何優化android啟動速度。個人認為可以從以下幾個方面。1 u boot 優化u boot體積,減少不需要的驅動和命令。2 kernel 1 模組載入方式 如usb等費時間的子系統 2 移除kernel calibrate delay和crc check 以上兩個使用最新的編譯器...
Android 應用啟動速度優化
開發android應用中,隨著功能越來越多,啟動速度越來越慢。有沒有辦法讓自己應用啟動速度快一點呢?方法是人想出來的。先說說我的實現方法 1 將oncreate 中初始化的內容,移動到執行緒中做初始化,載入等 2 初始化完成之後,通過handler傳送訊息,3 hander 中收到訊息後,再初始化完...
Android 應用啟動速度優化
解決如下 style檔案中新增 1 style name parent android style theme.notitlebar.fullscreen 2 item name android windowbackground drawable splash item 3 item name an...