Android獲取應用啟動時間


啟動時間的重要性:應用的啟動時間關系着用戶的感知體驗,當應用啟動時間過長時,用戶會認為應用無響應而選擇退出這個app或者卸載該app

啟動時間分兩種情況:首次啟動(冷啟動)和非首次啟動(熱啟動)應用所花費的時間。

在測試app啟動時間之前,我們先來看看這張經典的Activity生命周期圖:

 

流程簡介:

1.啟動Activity:系統會先調用onCreate方法,然后調用onStart方法,最后調用onResume, Activity進入運行狀態。

2.當前Activity被其他Activity覆蓋或被鎖屏:系統會調用onPause方法,暫停當前 Activity的執行。

3.當前Activity由被覆蓋狀態回到前台或解鎖屏:系統會調用onResume方法,再次進入運行狀態。

4.當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居后台:系統會先調用onPause方法,然后調用onStop方法,進入停滯狀態。

5.用戶后退回到此Activity:系統會先調用onRestart方法,然后調用onStart方法,最后調用onResume方法,再次進入運行狀態。

6.當前Activity處於被覆蓋狀態或者后台不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而后用戶退回當前Activity:再次調用onCreate方法、onStart方

  法、onResume方法,進入運行狀態。

7.用戶退出當前Activity:系統先調用onPause方法,然后調用onStop方法,最后調用 onDestory方法,結束當前Activity。

  從Activity的生命周期流程圖,我們可以看出啟動時間即onCreate()方法開始執行到onResume()方法執行結束的時間,也就是activity完全啟動的時間。

那么怎么獲取該時間?

方法一:通過logcat中ActivityManager的相關數據獲取。

adb logcat -d -s ActivityManager|findstr "Displayed">D:\log.txt

log內容如下:

 

方法二:

1)獲取app包名和類名

>adb shell dumpsys activity|findstr mFocusedActivity

2)獲取啟動時間

>adb shell am start -W –n <packageName>/<activityName>

 

如果只關心某個應用自身啟動耗時,參考TotalTime;

如果關心系統啟動應用耗時,參考WaitTime;

如果關心應用有界面Activity啟動耗時,參考ThisTime。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM