概念

Battery Historian 是一个这样的的工具:可以在 Android 5.0 Lollipop(API 级别21)及更高版本的 Android 设备上检测与电池相关的信息和事件,而在此期间,该设备没有插上电源。它允许应用程序开发人员在时间轴上可视化系统和应用级别的事件,并使用平移和缩放功能,在设备最后一次完全充电之后,可以轻松地查看各种聚合统计信息,可以选择一个应用程序,检查所选择的应用程序对电池指标的影响。此外,它还允许对两个错误报告进行 A/B 比较,突出显示了关键电池相关指标的差异。

https://github.com/google/battery-historian#building-from-source-code

配置

  • 使用Docker
  • 自己配置环境

使用Docker

docker的安装与使用

https://yeasy.gitbooks.io/docker_practice/

在docker上运行Battery Historian

  1. 在终端搜索Battery Historian相关的镜像
    docker search battery
    docer_search.png
  2. 拉取battery镜像到本地
    docker pull blystad/battery-historian-2
    docker_battery_pull.png
  3. 运行battery-historian
    docker run --name=battery -d -p 9999:9999 blystad/battery-historian-2
    docker_run_battery.png
  4. 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

https://golang.org/doc/install

  • 配置GOROOT GOROOT的作用是告诉Go 命令和其他相关工具,在哪里去找到安装在你系统上的Go包,所以这里配置的是GO的安装目录
  • 配置GOPATH GOPATH可以简单理解为是工程的目录,所以创建一个GO的工程路径
  • 配置环境变量 把Go的bin目录放到path环境变量中
  • 检查Go是否安装成功,打开命令行输入Go version

    go_version.png

安装Python

  • 注意仅支持python2.7

https://www.python.org/

  • 输入命令行 python –V(注意是大写V)检查是否安装成功

    python_version.png

python安装请看https://www.jianshu.com/p/e73768e66b8d

安装Git

https://git-scm.com/

  • 安装完成检查:命令行输入git version

    git_version.png

安装Java环境

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Battery Historian

  1. 下载源码
    go get -d -u github.com/google/battery-historian/...
  2. 运行Battery Historian
    cd $GOPATH/src/github.com/google/battery-historian
    我这里GOPATH是F:zero1goworkspace
    go run setup.go

    battery_setup.png

注意 这里一般会让你下载三个第三方库,并且一般都是下载不了
首先先运行go run setup.go 等它报错停止

  • 这样会在F:zero1goworkspacesrcgithub.comgooglebattery-historianthird_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_partyclosure-library下面 再次运行go run setup.go验证,没报错就OK了

运行Battery Historian

注意只能在srcgithub.comgooglebattery-historian运行命令

go run cmd/battery-historian/battery-historian.go

run_battery.png

分析功耗报告

采集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

文章来源于互联网,如有雷同请联系站长删除:电量优化Battery Historian2.0 配置

发表评论