Android Performance: Battery Historian

Battery Historian可以用来查看Android设备电池相关的信息和事件,适用于Android 5.0和之后的版本。这个工具之前只是一个Python脚本,后来进行了大幅更新。

1. 下载和安装Battery Historian

  Battery Historian需要安装GoGitPython 2.7Java

  Go的安装步骤可以参考Battery Historian的README。需要注意的是GOPATHGOBIN两个环境变量:GOPATH指向Go的Workspace;GOBIN指向GOPATH下的bin文件夹,且需要被加入到PATH环境变量中,如:

export GOPATH=$HOME/work
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

  然后下载Battery Historian:

$ go get -d -u github.com/google/battery-historian/...

  安装:

$ cd $GOPATH/src/github.com/google/battery-historian
$ go run setup.go

  运行:

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

  Battery Historian默认运行在9999端口,可以通过--port手动指定其他端口:

$ go run cmd/battery-historian/battery-historian.go [--port <default:9999>]

2. 获取bugreport

  接下来要从设备中获取日志,首先杀掉adb server,排除可能存在的干扰:

$ adb kill-server

  如果想要清除之前的电池用量记录,可以使用如下的命令:

$ adb shell dumpsys batterystats --reset

  然后拔掉手机的数据线,停止充电,再操作应用一段时间。最后获取bugreport:

$ adb bugreport > bugreport.txt

3. 导入Battery Historian

  在浏览器中打开http://localhost:9999(或者之前手动设定的其他端口),出现页面如图1所示。

图1

图1

  点击Browse选择之前获取的bugreport,出现Submit按钮,点击提交。之后会出现如图2所示的页面。

图2

图2

  之前的操作关闭了Wifi,使用数据网络浏览新闻,然后按下Home键返回。图表中的Top app对应用户可见的应用,点击可以查看具体应用的名称。Wifi on指示打开Wifi的时间,这里是空的,没有打开WiFi,Wifi scan一直在有规律地执行。Mobile radio active指示radio开启的时间,这里大部分时间都是开启的,对应浏览新闻的时间;之后返回Home,一段时间内没有再发生数据传输,radio关闭。

  最上面有Historian V2和Historian两个选项卡,Historian对应了旧版本的图表,相关说明可以参考Battery Historian Charts,截止目前官方文档还没有更新Historian V2的相关说明。