1. 程式人生 > >Android效能測試之冷啟動時間

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

記錄塊和選擇合理的Task、將當前ResumeActivity進行pause+totalTime

也就是說應用啟動總耗時應該是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           (其中

packagename要替換成自己的包名)

c.在systrace目錄下會生成一個檔案trace.html

d.開啟瀏覽器,訪問chrome://tracing/    因為我用的是Chrome瀏覽器,在開啟的頁面中選擇Load前面生成的trace.html檔案就可以了。

e.在執行結果中ui Thread對應的地方就可以找到bindApplication,這裡就有詳細的啟動耗時資訊。