Android耗电量测试之Battery Historian工具

一、为什么进行电量测试?

1、为用户省电

2、提升用户体验

二、安卓耗电测试方法

安卓测试耗电有多种方法:

1、在手机查看应用耗电量(方便,但没有详细耗电信息)

2、使用性能测试APP查看应用耗电量,如GT、emmagee等(适合测试一段时间内的应用耗电量)

3、使用adb 命令,查看应用耗电量(有详细耗电信息,具体到cpu, 网络,传感器等)

4、使用测试工具,如Google提供的Battery Historian(操作简单,结果直观)

本文主要介绍Battery Historian工具

三、Battery Historian环境搭建

搭建Battery Historian环境有两种方法:

1、用go语言搭建,需要配置环境变量,参考文档:https://www.cnblogs.com/yinrw/p/9621109.html

根据文档安装并配置环境,在cmd运行启动Battery Historian

 

2、用docker运行,不需要配置环境,简单高效,docker下载 ,参考文档:https://www.jianshu.com/p/d83f6a2fd702

双击安装完成后桌面新建的快捷方式Docker QuickStart Terminal按提示安装完成即可,如果出现问题可参考文档处理。

四、测试

4.1 数据准备

adb shell dumpsys batterystats --enable full-wake-history

通过启用完全唤醒锁定报告,电池历史记录将在几个小时内溢出。使用此选项进行短时间测试(3-4小时)。

 

adb shell dumpsys batterystats --reset

采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包。

执行效果如下:

Android耗电量测试之Battery Historian工具

执行上面两条命令后,相当于清理了battery记录的日志,断开数据线,开启手机上的需要测试的APP,手动或自动跑一些用例。

 

4.2 导出数据

完成测试之后,连接数据线,导出数据:

Android7.0之前导出为.txt文件如bugreport.txt ,7.0之后的系统导出文件为.zip文件如bugreport.zip

adb bugreport> bugreport.txt

或者加上包名可以限制输出的数据是我们要检测的:

adb bugreport>com.Tantumap>bugreport.zip

如下:

Android耗电量测试之Battery Historian工具

 

4.3 数据分析

启动Battery Historian,导入bugreport.txt或bugreport.zip

以下为用docker启动battery historian的示例

4.3.1 启动命令:

docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

如:

docker run -p 9998:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999 ,即设置了端口9999,映射到本地9998端口

然后打开localhost:9998,如果用localhost打不开,用启动docker时默认的IP即可。

Android耗电量测试之Battery Historian工具

 

4.3.2 上传bugreport.zip,点击提交,自动分析

Android耗电量测试之Battery Historian工具

4.3.3 查看分析结果

Android耗电量测试之Battery Historian工具

 

当然也可以做两次报告对比

Android耗电量测试之Battery Historian工具

 

 

 

附. Battery Historian部分参数说明

  • battery_level

 电量,可以看出电量的变化。

 

  • plugged

充电状态,这一栏显示是否进行了充电,以及充电的时间范围。

 

  • screen

屏幕是否点亮,这一点可以考虑到睡眠状态和点亮状态下电量的使用信息。

 

  • top

该栏显示当前时刻哪个app处于最上层,就是当前手机运行的app,用来判断某个app对手机电量的影响,这样也能判断出该app的耗电量信息。该栏记录了应用在某一个时刻启动,以及运行的时间,这对我们比对不同应用对性能的影响有很大的帮助。

 

  • wake_lock*

wake_lock 该属性是记录wake_lock模块的工作时间。是否有停止的时候等。

 

  • running

界面的状态,主要判断是否处于idle的状态。用来判断无操作状态下电量的消耗。

 

  • wake_lock_in

wake_lock有不同的组件,这个地方记录在某一个时刻,有哪些部件开始工作以及工作的时间。

 

  • data_conn

数据连接方式的改变,上面的edge是说明采用的gprs的方式连接网络的。此数据可以看出手机是使用2g,3g,4g还是wifi进行数据交换的。这一栏可以看出不同的连接方式对电量使用的影响。

 

  • status

电池状态信息,有充电,放电,未充电,已充满,未知等不同状态。 这一栏记录了电池状态的改变信息。

 

  • phone_signal_strength

手机信号状态的改变。 这一栏记录手机信号的强弱变化图,依次来判断手机信号对电量的影响。

 

  • health

电池健康状态的信息,这个信息一定程度上反映了这块电池使用了多长时间。 这一栏记录电池状态在何时发生改变,上面的图中电池状态一直处于good状态。

 

  • plug

充电方式,usb或者插座,以及显示连接的时间。 这一栏显示了不同的充电方式对电量使用的影响。

 

Android耗电量测试之Battery Historian工具

上一篇:Spring之aop


下一篇:Mybatis-Plus插件配置