0%

android Battery Historian 分析电池用量

工具说明

Battery Historian 是与 Batterystats 联合使用的google推出的用于分析耗电情况的工具。

Batterystats 是包含在 Android 框架中的一种工具,用于收集设备上的电池数据。

您可以使用 adb 将收集的电池数据转储到开发机器,并生成可使用 Battery Historian 分析的报告。

Battery Historian 会将报告从 Batterystats 转换为可在浏览器中查看的 HTML 直观视图。

适合的场景

显示进程从什么位置以及通过何种方式消耗电池电量。

识别系统为了延长电池续航时间可能会延迟甚至移除应用中的哪些任务。

Battery Historian 可以显示应用是否具有以下行为:

  • 过于频繁地触发唤醒提醒(至少每 10 秒钟一次)。
  • 持续保留 GPS 锁定。
  • 至少每 30 秒调度一次作业。
  • 至少每 30 秒调度一次同步。
  • 使用手机无线装置的频率高于预期。

部署方式

部署步骤

有两种部署方式,分为docker安装和自行编译安装。参考开源自述文件

这里推荐使用docker安装是最方便快捷的。

安装步骤如下:

  1. 保证服务器 docker 环境没问题,可以使用docker run hello-world命令进行检查。
  2. 执行 docker -- run -p <port>:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999进行安装。等待安装完毕。
  3. 打开 http://localhost:<port>检查是否成功。

之前部署遇到的问题记录

1. 官方给到的 docker 镜像地址无法访问,可能需要翻墙。

解决方法:参考 https://juejin.im/entry/5d61fc3ff265da038f4818a5 使用国内镜像源

1
docker run --restart=always -d -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

改为

1
docker run --restart=always -d -p 9999:9999 registry.cn-hangzhou.aliyuncs.com/xyz10/android-battery-historian:stable-3.0 --port 9999

2. docker 部署完成之后,无法访问,d3.js 找不到。 (后面会考虑直接把修改好的docker image 直接推到个人地址上去。)

解决方法:参考 https://github.com/google/battery-historian/issues/185 , 更改相关js的代码路径。

3. 1 - 2 都解决后,能访问,但无法传Batterystats分析文件上去,表现为上传无反应。

解决方法:访问该网站的本机也要可以科学上网,就没问题了。

如何使用

使用步骤如下:

如需使用 Batterystats 从您的设备收集数据并在 Battery Historian 中打开该数据,请执行以下操作:

  1. 连接机器 重置电池记录数据 adb shell dumpsys batterystats –reset
  2. 断开充电线,开始操作
  3. 使用原始数据生成报告。
    • 对于搭载 Android 7.0 及更高版本的设备:
      adb bugreport > [path/]bugreport.zip
    • 对于搭载 Android 6.0 及更低版本的设备:
      adb bugreport > [path/]bugreport.txt
  4. 数据上传 http://[ip]:9999/ submit 开始分析。

以下文档可供参考: