这里只介绍一个使用adb来记录package的耗电量情况,前提条件是adb的环境,这里不做介绍adb环境的安装,可以百度一下,简单就是jdk跟sdk添加环境变量,保证adb可以使用,电量准确度一般。

 

1、电量测试开始之前,先清除所有后台应用,先清除被测应用电量的历史信息,保证电量日志的最新,以便于分析,首先连接usb,参考命令如下

//清除历史电量信息
$> adb shell dumpsys batterystats --enable full-wake-history 
//重置电量信息
$> adb shell dumpsys batterystats --reset

2、这里使用无线连接adb,确保电量的最准确,也可以不使用无线连接,跳过这里,连接数据线,参考命令如下:

//使用adb建立tcpip,确保手机与电脑在同一网络环境下,指定端口为5555
$>adb tcpip 5555

2.1成功之后,找到设置–网络–当前wifi,查看自己的本地ip地址。如下图
在这里插入图片描述
2.2 找到IP地址之后,直接使用adb连接,参考命令:

// x.x为你自己的ip地址,5555为端口,第二步自己定义的,反馈成功则直接断掉数据线
$>adb connect x.x.x.x:5555

3、此时断开数据线之后,开始操作你的被测应用,执行测试case,执行完毕之后,开始获取应用的耗电情况,先获取一下被测应用的uid

3.1、获取uid之前,先要获取一下被测应用的包名,如果包名已知,跳过此步骤

//获取应用包名;前台应用只打开被测应用,杀掉其他应用,输入:,即可得到包名
$>adb shell dumpsys window w |grep \/ |grep name

3.2、得到包名之后,去查看被测应用的uid,获取uid是为了,下面在电量日志中筛选查看自己测试总共消耗了多少的电量

//测试完毕后,筛选查看自己应用的uid
$>adb shell ps |grep packagename 

– 如下,去掉_下划线,就是应用的uid
在这里插入图片描述
3.3、得到uid之后,就可以查看自己的耗电量信息了。

// packagename为你的包名,uid为上面获取到的uid
$>adb shell dumpsys batterystats packagename |grep uid

–这个返回的就是应用的耗电量信息
在这里插入图片描述
4、耗电量信息数据日志获取

//所有的耗电量信息都拿到了之后,可以把详细日志取出
$>adb shell dumpsys batterystats > 本地路径/batterystas.txt

如果电量信息有问题,则需要去查看日志,查看日志是一个漫长,而又艰巨的好事,所以把这个大饼就丢给rd殿下吧