1. 环境配置:
1.1. 下载Go安装文件pkg,并进行安装, 输入命令go version检测是否安装成功:
1.2 配置Go的环境变量:
终端执行命令sudo vim .zshrc,打开环境变量配置文件,并写入如下内容:
export GOPATH=$HOME/work
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
备注:GOPATH的具体目录可以自行指定,下图是我的配置:
1.3 终端执行如下命令,下载Battery-Historian源码及依赖:
go get -d -u github.com/google/battery-historian/...
1.4 终端执行如下命令,运行Battery Historian
1.5 访问localhost:9999,打开battery historian分析界面,如图:
2. 获取bugreport文件
2.1 通过如下命令,获取带有具体时间线的电池使用的详细的数据:
2.2 重置电池的历史统计数据,进行全新收集:
2.3 使用一会儿手机,然后获取bugreport文件:
3. 分析数据 (备注:建议5.0以上的设备,5.0以下的设备收集的信息没那么全面)
3.1 通过battery-historian工具打开bugreport文件,即可查看详细信息:
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文件,即可进行相应的比较:
参考资料:
1. https://github.com/google/battery-historian
2. http://blog.csdn.net/itfootball/article/details/44084159