利用docker运行Battery Historian进行Android电量分析

之前做Android 电量相关的性能测试,官方提供了一种方法,使用 Battery Historian 工具对 dumpsys 命令输出内容中电量相关事件的日志,生成 HTML 可视化内容。考虑到这种方式或许有助于实现自动化方式了解和诊断电池相关问题,于是开始动手实践。

先了解下几个信息:

  • 什么是Battery Historian
    Battery Historian是一款由Google提供的Android系统电量分析工具. 在网页中展示手机的电量消耗过程, 输入电量分析文件, 显示消耗情况. 最后提供一些电量优化的方法, 可供参考.

  • 为什么要用到Docker
    运行Battery Historian有两种方式,一种是使用Docker, 另一种是自己根据源码编译。由于Docker的风刮得很大,以前只是耳闻,还没有真正实践过,正好趁这次机会来体验下Docker,所以采用了第一种方式。

  • 什么是Docker
    Docker是一个开源工具,能将一个WEB应用封装在一个轻量级,便携且独立的容器里,然后可以运行在几乎任何服务环境下。
    Docker的容器能使应用跑在任何服务器上并且表现一致。一个开发者在笔记本上建立的一个容器,能跑在很多环境下,如:测试环境,生产环境,虚拟机上,VPS,OpenStack集群,公用的电脑等等

好了,解释到这儿,接下来就是具体的操作过程了。

一、安装Docker

打开页面,我选择的是Docker for Mac(macOS)Stable版本。下载下来的是.dmg文件,直接双击,拖动到Applications文件夹,安装就完成了。


Launchpad找到小鲸鱼图标,点击运行,启动后,你可以在顶部状态栏看到如下小图标,这表示Docker正在运行,可以从终端访问。


二、运行Battery Historian

选择一个端口替换命令中的<port>,运行命令

docker -- run -p <port>:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

对于第一次使用docker,需要先了解docker run(启动容器)命令,该命令有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。如果是首次运行,docker检查到本地没有这个镜像,就会从远程拉取。
docker run 命令的的基本格式:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

对照着看,就知道
-p <port>:9999 是[OPTIONS]参数,意思是绑定容器的9999端口到自己设置的机器端口,这里我用的是3333
gcr.io/android-battery-historian/stable:3.0 是镜像:Tag。

可以使用docker ps -a 查看所有的container
从截图中能看到,容器已处于运行状态,host端口为3333


三、使用Battery Historian

在浏览器输入http://localhost:3333,就能打开Historian,见下图:

 

点击Browse按钮,选择从Android手机导出的bugreport.txt文件,点击Submit按钮,就能看到分析结果页面。可以查看整个系统的耗电情况,也可以只选择某个App。


四、Docker的几个常用操作

查看所有的镜像:

docker images

查看所有的容器:

docker ps -a

停止正在运行的容器:

docker container stop CONTAINER

删除容器:

docker container rm CONTAINER

删除镜像:

docker image rm IMAGE

本文来自网易实践者社区,经作者施红授权发布。