啟動時間監控
通過adb命令獲取
- adb shell am start -W /<packageName> /<activityName>
案例:adb shell am start -W com.diction.app.android/com.diction.app.android._view.common.SplashActivity
案例中的<packageName> 跟<activityName>我們如何獲取呢?
如果你有項目的代碼,進入AndroidManifest.xml中launcher啟動類查找;或者直接找開發要

執行:adb shell am start -W com.diction.app.android/com.diction.app.android._view.common.SplashActivity,出現以下截圖代表成功了:

“adb shell am start -W ”的實現在frameworks\base\cmds\am\src\com\android\commands\am\Am.java文件中。其實就是跨Binder調用ActivityManagerService.startActivityAndWait()接口(后面將ActivityManagerService簡稱為AMS),這個接口返回的結果包含上面打印的ThisTime、TotalTime時間。
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1XYWl0VGltZSslM0QrZW5kVGltZSstK3N0YXJ0VGltZQ==.png)
startTime記錄的剛准備調用startActivityAndWait()的時間點,endTime記錄的是startActivityAndWait()函數調用返回的時間點,WaitTime = startActivityAndWait()調用耗時,即系統啟動應用耗時。
電量監控
獲取手機電池信息
- adb shell dumpsys battery //顯示當前電池狀態
- adb shell dumpsys battery set status 1 //設置手機進入非充電狀態,為2設置充電狀態
- adb shell dumpsys battery set level 100 //設置電量百分比
獲取電量消耗信息
- adb shell dumpsys batterystats //獲取整個設備的電量消耗信息
- adb shell dumpsys batterystats com.Package.name //獲取某個apk的電量消耗信息
