启动时间监控
通过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 ”的实现在frameworksasecmdsamsrccomandroidcommandsamAm.java文件中。其实就是跨Binder调用ActivityManagerService.startActivityAndWait()接口(后面将ActivityManagerService简称为AMS),这个接口返回的结果包含上面打印的ThisTime、TotalTime时间。
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的电量消耗信息