Android使⽤Batterystats和BatteryHistorian分析电池⽤量Android开发中涉及到耗电量怎么分析呢
google官⽅提供了⽂档,链接:/studio/profile/battery-historian
Batterystats ⼯具和 Battery Historian 脚本的基本⽤法和⼯作流程
Batterystats 是包含在 Android 框架中的⼀种⼯具,⽤于收集设备上的电池数据。您可以使⽤ adb 将收集的电池数据转储到开发计算机,并创建⼀份可使⽤ Battery Historian 分析的报告。Battery Historian 会将报告从 Batterystats 转换为可在浏览器中查看的 HTML 可视化内容
适合的场景:
显⽰进程从什么位置以及通过何种⽅式消耗电池电量。
识别系统为了延长电池续航时间可能会延迟甚⾄移除应⽤中的哪些任务
安装 Battery Historian
链接:/google/battery-historian
1.使⽤Docker安装
安装 Battery Historian 的最简单⽅法是使⽤ Docker。对于其他安装⽅法(包括从源代码编译),请参阅项⽬的 GitHub 页⾯上的⾃述⽂件。要使⽤ Docker 进⾏安装,请执⾏以下操作:
按照 Docker / ⽹站上的说明安装 Docker 社区版
要确认 Docker 是否已正确安装,请打开命令⾏并输⼊以下命令:
docker run hello-world
1
如果您已正确安装 Docker,将会看到如下输出:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete
Digest:
sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which nt it to your terminal. 1
2
3
4
5革命战士
6
7
8
9
10
11
12
13
14
15
16
在终端搜索Battery Historian相关的镜像
docker arch battery
1
在列出的列表中选取⼀个镜像
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian
1
拉取并运⾏battery-historian镜像,会⾃动下载并运⾏镜像,之前pull过了就直接运⾏
2.通过编译gitbub上⾯的源码来安装
1.Go 环境安装
链接:golang/doc/install
配置GOROOT和GOPATH(配置环境变量)
GOROOT的作⽤是告诉 Go 命令和其他相关⼯具,配置的是 Go 的安装⽬录
GOPATH可以简单理解为是⼯程的⽬录,配置的是 Go 的⼯程路径
安装完执⾏ go env 查看环境变量配置的是否⼀样,如下图快乐的周末
2.Git 环境安装
链接:/
3.python环境安装,仅⽀持python2.7王俊凯是哪里人
链接:www.python/
4.Java 环境安装(配置环境变量)
链接:/java/technologies/java-jdk8-downloads.html
5.下载 Battery Historian
电流是什么
链接:/google/battery-historian 源码并且运⾏
下载到GOPATH配置⽬录下,耗时长
go get -d -/google/battery-historian/...
夸女人漂亮的句子幽默
1
2
进⼊到$GOPATH//google/battery-historian⽬录
曹甸战役
运⾏Battery Historian
go
图片好看的图片1
如果没有下载成功,可以⼿动下载
closure-library
closure-compiler
flot-axislabels
解压到 GOPATH//google/battery-historian/third_party,如果没有该⽂件夹需要去创建,⽂件夹下⽅的的 closure-compiler 和 closure-library 和 flot-axislabels
⽬录如下
在 battery-historian ⽂件夹执⾏
go run cmd/
1
启动程序后,在浏览器输⼊localhost:9999,会出现如下界⾯
3.Batterystats 采集数据
1.将移动设备连接到计算机
2.在终端窗⼝中,关闭正在运⾏的 adb 服务器
adb kill-rver
1
3.重启 adb 并检查是否有已连接的设备
adb start-rver
adb devices
1
2
如下图
4.重置电池数据收集
adb shell dumpsys batterystats --ret
1
设备始终会在后台收集 batterystats 和其他调试信息。重置操作会清除旧的电池收集数据。如果不重置,输出内容会超⼤
5.断开设备与计算机的连接,以便仅消耗设备电池的电量
6.使⽤您的应⽤并执⾏您想要获取数据的操作;例如,断开 WLAN 连接并将数据发送到云端
7.重新⼿机连接
8.确保您的⼿机已被识别:福大全
adb devices
1
9.转储所有电池数据。此过程可能需要⼀段时间:
adb shell dumpsys batterystats > [path/]
1
系统会使⽤可选路径参数在您指定的⽬录中创建 ⽂件。如果您没有指定路径,则会在您的主⽬录中创建该⽂件
10.使⽤原始数据创建报告
在创建报告之前,可以使⽤monkey针对某个应⽤做测试
adb shell monkey -t.mm -v 1000
1
如果要保存在某个⽬录下,先进⼊此⽬录
cd /Urs/Desktop/battery
1
对于搭载 Android 7.0 及更⾼版本的设备:
adb bugreport bugreport.zip
1
对于搭载 Android 6.0 及更低版本的设备:
adb
1
错误报告可能需要⼏分钟才能完成。在完成之前,请勿断开设备连接或取消该进程
与上⾯的 ⼀样,这些⽂件是系统使⽤可选的路径参数在您指定的⽬录中创建的。如果您没有指定路径,系统将在您的主⽬录中创建这些⽂件
导出的⽂件如下
4.将采集到的数据上传
打开浏览器输⼊ localhost:9999,点击上传,上传之后出现submit 提交按钮
点击提交后,进⼊电池耗量分析界⾯
另⼀张视图
在搭建的过程中遇到些问题,上传zip包之后报错,⽆法加载视图
Docker搭建的⽅式,对于安卓6.0以上不友好,出现上传zip后报错,⽆法加载视图的情况:
解决⽅式:使⽤线上版: bathist.ef.lc/
报错如下: