app應用啟動時間檢測

啟動時間的測試方法

  • adb shell am start -W packagename/activity
  • ddms adb logcat監控

ddms adb logcat

  • 創建過濾條件如下:
    • Fliter Name:Display
    • By Log Tag:ActivityManager
Paste_Image.png
  • 啟動應用,查看DDMS打印的Display消息,根據應用名稱記錄啟動時間數據。計算從點擊應用到應用顯示主頁的的時間差。如下圖所示,紅線對應的時間即為該次啟動時間。(有些應用啟動會經歷2個階段,如連接服務器和進入主頁,啟動時間為累加2個display打印的時間值)
    Log信息樣例如截圖:
Paste_Image.png

應用啟動場景分析

應用第一次啟動-冷啟動

  • 也就是我們常說的冷啟動,這時候你的應用程序的進程是沒有創建的. 這也是大部分應用的使用場景.用戶在桌面上點擊你應用的 icon 之后,首先要創建進程,然后才啟動 MainActivity.
  • 這時候adb shell am start -W packagename/MainActivity 返回的結果,就是標準的應用程序的啟動時間(注意 Android 5.0 之前的手機是沒有 WaitTime 這個值的):
adb shell am start -W com.media.painter/com.media.painter.PainterMainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.media.painter/.PainterMainActivity }
Status: ok
Activity: com.media.painter/.PainterMainActivity
ThisTime: 355
TotalTime: 355
WaitTime: 365
Complete
  • 如果只關心某個應用自身啟動耗時,參考TotalTime;
  • 如果關心系統啟動應用耗時,參考WaitTime;
  • 如果關心應用有界面Activity啟動耗時,參考ThisTime。

應用非第一次啟動-熱啟動

  • 如果是你按Back鍵,并沒有將應用進程殺掉的話,那么執行上述命令就會快一些,因為不用創建進程了,只需要啟動一個Activity即可。這也就是我們說的應用熱啟動。

參考更詳細的資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容