最近一段时间工做中须要测试android手机app的耗电量。个人测试思路是使用adb命令行工具来统计电池使用信息。 若是你是第一次接触adb命令,能够看一下我以前的文章:Android测试中经常使用的adb命令。html
由于要经过adb命令来监控手机的耗电量,因此建议经过wifi的方式来链接手机,而不是用usb线来链接手机设备。usb方式链接手机会自动给手机充电,这样会影响对耗电量的统计的准确性。经过下面方式来链接手机:前端
$ adb connect 10.1.217.238 #经过输入手机的ip地址来链接手机,ip地址能够在手机的wifi设置中找到 connected to 10.1.217.238:5555
若是看到connected字样就是证实链接成功了,能够经过下面adb命令来验证:android
$ adb devices List of devices attached 10.1.217.238:5555 device 04c5a5af52197902 device
注意若是你遇到下面的错误提示,请经过adb tcpip 5555
命令来重启端口,具体命令代码以下:shell
$ adb connect 10.1.217.238 unable to connect to 10.1.217.238:5555: Connection refused $ adb tcpip 5555 # 要先经过usb正确链接手机和电脑 restarting in TCP mode port: 5555 $ adb connect 10.1.217.238 #再次尝试链接手机 connected to 10.1.217.238:5555
成功经过wifi链接好手机后,就能够断开usb数据线链接了。app
启动要测试的app后,再使用下面命令来查询被测应用的uidless
$ adb shell ps | grep com.package.name # 输入被测试应用的包名称 u0_a138 30976 202 1738008 131660 ffffffff 00000000 S com.package.name
输出结果中第一个字段就是这个应用的uid,后面在查看电池统计报告中须要用到,可是注意要将字段中的下划线“_”去掉。例如u0_a138,替换为u0a138。tcp
下面命令能够查看设备的电池信息:编辑器
$ adb shell dumpsys battery Current Battery Service state: AC powered: false USB powered: false Wireless powered: false status: 3 health: 2 present: true level: 93 #剩余电量百分比 scale: 100 voltage: 4293 temperature: 350 technology: Li-ion
上面比较有用的是剩余电量百分比(level)工具
能够用下面命令来查看详细的电池使用信息:测试
$ adb shell dumpsys batterystats | less
由于输出的信息不少,因此使用less命令来查看。也能够将输出重定向到一个日志文件中。
$ adb shell dumpsys batterystats > batterystats_log.txt
经过下面命令来重置电池的统计信息:
$ adb shell dumpsys batterystats --reset Battery stats reset.
首先经过上面提到的命令正确经过wifi链接手机和电脑,经过adb devices
命令确认链接成功,查询到被测应用的uid,而且在测试开始前将电池的统计信息重置。 而后开始操做被测应用,例如,持续点击此应用10分钟,等时间到了以后,经过下面命令来保存电池信息到本地。
$ adb shell dumpsys batterystats > batterystats_log.txt
再经过文本编辑器打开刚刚保存的文件,并查看Estimated power use (mAh)相关信息,并查看对应uid的耗电信息。 这样就获得,10分钟前端正常使用app后,这个app的具体耗电状况啦。
参考文献: