Android App性能之--啓動時間

App啓動時間的包括首次安裝啓動時間、冷啓動時間、熱啓動時間3種

啓動時間的採集方式均通過如下adb命令

#命令行輸入命令:
adb shell am start -W -n packageName/ActivityName

#結果如下
Status: ok
Activity: packageName/activityName
ThisTime: 1298
TotalTime: 1298
WaitTime: 1308
Complete

1)首次安裝啓動

首次安裝後,需要做資源初始化操作,因此,如果需要採集這個值,就需要在App安裝後執行上述命令

2)冷啓動

冷啓是後臺進程被關閉時啓動App所需的時間,關閉進程可以在手機端滑動關閉(各個手機操作略有差異)也可以通過adb命令(參考如下)

adb shell am force-stop packageName

3)熱啓動

熱啓動是不關閉進程,比如按home鍵或者adb命令(參考如下)返回系統主界面,但App進程仍在後臺運行

adb shell input keyevent 3

 

輸出結果有三個值,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、將當前Resume的Activity進行pause)+totalTime

也就是說應用啓動總耗時應該是waitTime,但是initTime這個時間段內我們沒有太多優化空間,所以我們可能更關注totalTime

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章