概念
Battery Historian 是一个这样的的工具:可以在 Android 5.0 Lollipop(API 级别21)及更高版本的 Android 设备上检测与电池相关的信息和事件,而在此期间,该设备没有插上电源。它允许应用程序开发人员在时间轴上可视化系统和应用级别的事件,并使用平移和缩放功能,在设备最后一次完全充电之后,可以轻松地查看各种聚合统计信息,可以选择一个应用程序,检查所选择的应用程序对电池指标的影响。此外,它还允许对两个错误报告进行 A/B 比较,突出显示了关键电池相关指标的差异。
https://github.com/google/battery-historian#building-from-source-code
配置
- 使用Docker
- 自己配置环境
使用Docker
docker的安装与使用
在docker上运行Battery Historian
- 在终端搜索Battery Historian相关的镜像
docker search battery
docer_search.png - 拉取battery镜像到本地
docker pull blystad/battery-historian-2
docker_battery_pull.png - 运行battery-historian
docker run --name=battery -d -p 9999:9999 blystad/battery-historian-2
docker_run_battery.png - docker简单使用命令
查看容器
docker container ls -a
启动容器docker container start/restart[重启]
停止容器docker container stop
删除容器docker container rm
或者根据官网的步骤来
自己配置环境
安装Go
- Make sure you have at least Golang version 1.8.1
- 配置GOROOT GOROOT的作用是告诉Go 命令和其他相关工具,在哪里去找到安装在你系统上的Go包,所以这里配置的是GO的安装目录
- 配置GOPATH GOPATH可以简单理解为是工程的目录,所以创建一个GO的工程路径
- 配置环境变量 把Go的bin目录放到path环境变量中
-
检查Go是否安装成功,打开命令行输入Go version
go_version.png
安装Python
- 注意仅支持python2.7
-
输入命令行 python –V(注意是大写V)检查是否安装成功
python_version.png
python安装请看https://www.jianshu.com/p/e73768e66b8d
安装Git
-
安装完成检查:命令行输入git version
git_version.png
安装Java环境
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Battery Historian
- 下载源码
go get -d -u github.com/google/battery-historian/...
- 运行Battery Historian
cd $GOPATH/src/github.com/google/battery-historian
我这里GOPATH是F:\zero1\goworkspace
go run setup.go
battery_setup.png
注意 这里一般会让你下载三个第三方库,并且一般都是下载不了
首先先运行go run setup.go
等它报错停止
-
这样会在F:\zero1\goworkspace\src\github.com\google\battery-historian\third_party下生成third_party这个目录,如果没有则自己创建这个目录
battery_third_part.png - 然后自己手动去下载这三个库,然后copy到third_party的相对应目录下,如果没有则自己创建者三个目录
https://github.com/google/closure-compiler
https://github.com/google/closure-library/tree/master
https://github.com/markrcote/flot-axislabels
然后再次运行go run setup.go
- 如果closure-library报错,则需要把
closure-library
回退到v20170409
版本
closure_lib_error.png - 回到closure-library目录下
git reset --hard v20170409
closure_lib_reset.png - 然后重新copy到\third_party\closure-library下面 再次运行
go run setup.go
验证,没报错就OK了
运行Battery Historian
注意只能在\src\github.com\google\battery-historian\运行命令
go run cmd/battery-historian/battery-historian.go
分析功耗报告
采集battery报告
- 采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包
adb shell dumpsys batterystats --reset
默认情况下,统计信息是在运行基础上维护的,Android也不记录特定于应用程序的用户空间wakelock转换的时间戳。如果您希望Historian在时间线上显示关于每个单独唤醒锁的详细信息,则应在开始实验之前使用以下命令启用完整唤醒锁报告:
adb shell dumpsys batterystats --enable full-wake-history
注意统计完要关闭
adb shell dumpsys batterystats --disable full-wake-history
- 导出报告
adb bugreport bugreport.zip(6.0以及以下的,使用adb bugreport > bugreport.txt导出)
- 上传bugreport.zip文件至 http://localhost:9999
update_bugreport.png
-然后sumbit 查看电量分析报告
battery_report.png
网友评论