Android Activity生命週期介紹及啓動時間抓取

1、Activity啓動流程簡介:git

1.啓動Activity:系統會先調用onCreate方法,而後調用onStart方法,最後調用onResume,Activity進入運行狀態。github

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

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

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徹底啓動的時間。生命週期

2、activity啓動的時間獲取內存

 

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

1)ddms設置過濾條件「by Log Tag」爲:ActivityManager;

2)啓動app,查看經過DDMS抓取到的log。

 

方法二:經過adb logcat命令來獲取

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

方法三:adb shell命令獲取

1)獲取app包名和類名

>adb shell dumpsys activity|findstr mFocusedActivity

2)獲取啓動時間

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

方法四:經過Emmagee性能測試工具

     Emmagee是一款簡單易用的Android性能檢測小工具,主要用於監控單個App的CPU,內存,流量,啓動耗時,電量,電流等性能狀態的變化。工具官方網站:https://github.com/NetEase/Emmagee/releases。

相關文章
相關標籤/搜索