1. 环境配置:

1.1. 下载Go安装文件pkg,并进行安装, 输入命令go version检测是否安装成功:

android 电量统计apk 安卓电量监测_环境变量

1.2 配置Go的环境变量:

终端执行命令sudo vim .zshrc,打开环境变量配置文件,并写入如下内容:

1. export GOPATH=$HOME/work  
2. export GOBIN=$GOPATH/bin  
3. export PATH=$PATH:$GOBIN

备注:GOPATH的具体目录可以自行指定,下图是我的配置:

android 电量统计apk 安卓电量监测_环境变量_02

1.3 终端执行如下命令,下载Battery-Historian源码及依赖:

1. go get -d -u github.com/google/battery-historian/...

1.4 终端执行如下命令,运行Battery Historian

android 电量统计apk 安卓电量监测_Go_03

1.5 访问localhost:9999,打开battery historian分析界面,如图:

android 电量统计apk 安卓电量监测_Go_04

2. 获取bugreport文件 

2.1 通过如下命令,获取带有具体时间线的电池使用的详细的数据:

android 电量统计apk 安卓电量监测_Go_05

2.2 重置电池的历史统计数据,进行全新收集:

android 电量统计apk 安卓电量监测_android 电量统计apk_06

2.3 使用一会儿手机,然后获取bugreport文件:

android 电量统计apk 安卓电量监测_Go_07

3. 分析数据 (备注:建议5.0以上的设备,5.0以下的设备收集的信息没那么全面)

3.1 通过battery-historian工具打开bugreport文件,即可查看详细信息:

android 电量统计apk 安卓电量监测_android 电量统计apk_08

android 电量统计apk 安卓电量监测_Go_09

3.2 主要指标解释:

横坐标:时间周期,60秒为一个周期;

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:电池健康状态的信息,这个信息一定程度上反映了这块电池使用了多长时间。这一栏记录电池状态在何时发生改变。 plug:充电方式,usb或者插座,以及显示连接的时间。这一栏显示了不同的充电方式对电量使用的影响。

3.3 比较两个文件

点击switch to bugreport Comparison按钮,选择不同的两个bug report文件,即可进行相应的比较:

android 电量统计apk 安卓电量监测_android 电量统计apk_10

参考资料:

1. https://github.com/google/battery-historian