Android效能測試之冷啟動時間
冷啟動是Android效能測試中的重要指標,即應用從程序未建立到完全啟動的時間,一般要求時長<1.5s,過長需要考慮優化。
獲取冷啟動時間的方法:
1.用命令列
adb shell am start -W packagename/activity
如果懶得找包名和activity名稱,則直接打命令
logcat -b events -s am_activity_launch_time
然後在結果中拷貝出來就可以了。
adb shell am start -w的輸出結果有三個值,thisTime,totalTime,waitTime.
thisTime(最後一個activity啟動耗費時間)=curTime-displayStartTime(一連串啟動Activity中的最後一個Activity的啟動時間點)
totalTime=mlaunchStartTime(一連串頁面中第一個activity啟動時間,可能無介面)!=0?curTime-mlaunchStartTime:thisTime
waitTime=endTime(系統呼叫startActivityAndWait完成時間點)-startTime(系統呼叫startActivityAndWait開始時間點)
也可以說:
waitTime=initTime(系統初始化的一些工作,ActivityManagerService建立ActivityRecord
也就是說應用啟動總耗時應該是waitTime,但是initTime這個時間段內我們沒有太多優化空間,所以我們可能更關注totalTime
2.更精細的時間分析可以用systrace
a:找到AndroidStudio安裝目錄下的systrace目錄,比如我的目錄就是Library/Android/sdk/platform-tools/systrace
b:殺掉應用並執行systrace目錄下的systrace.py檔案
python systrace.py --app=packagename -b 40960 (其中
c.在systrace目錄下會生成一個檔案trace.html
d.開啟瀏覽器,訪問chrome://tracing/ 因為我用的是Chrome瀏覽器,在開啟的頁面中選擇Load前面生成的trace.html檔案就可以了。
e.在執行結果中ui Thread對應的地方就可以找到bindApplication,這裡就有詳細的啟動耗時資訊。