Android 用Batterystats和电池历史描画电量使用图

Contents

用Batterystats和电池历史描画电量使用图... 1

安装电池历史... 1

从BatteryStats里获得数据... 3

从电池历史图表中查看数据... 4

更多BatteryStats输出... 5

 

Batterystats和电池历史描画电量使用图

这篇文章展示Batterystats工具和电池历史脚本的基本用法。

BatteryStats是Android framework层引入的收集设备电池数据的工具。你可以用adb把这些数据导出到你的开发设备上,用电池历史创建一个报告。电池历史可以将这份报告从BatteryStats转换成HTML格式的,这样你就可以从浏览器中打开查看了。

这样做的优势是:

  • 显示电耗在进程的什么地方、以什么方式耗掉的。
  • 指出为了延长电池寿命,应用中那些任务能够改变或删除。

注意:要用BatteryStats和电池历史,你的手机要运行在Android 5.0以上并且打开USB Debugging。

安装电池历史

安装电池历史最简单的方法是用Docker。对于其他的安装方法和从源码编译,请看项目Github页面上的Readme。安装Docker,这样做:

按Docker网站的指令安装Docker Community Edition。

打开命令行,输入下面命令检查Docker是否安装成功

docker run hello-world

如何成功,将会看到下面的输出:

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 sent it to your terminal.

用下面的命令运行电池历史:

docker run -p port_number:9999 gcr.io/android-battery-historian:3.0 --port 9999

电池历史会用你在port_number中指定的端口号。

注意:如果你用的是windows,你可能需要在BIOS里启动虚拟化。关于如何启动虚拟化,检查主板的说明。如果你可以运行Android虚拟器,那说明虚拟化功能已经打开。

把电池历史引入你的浏览器中,确保它的运行。地址根据操作系统会有所不同。

对于Linux和Mac

电池历史在http://localhost/port_number

Windows

当你启动Docker后,她告诉你机器的IP地址。所以,例如,如果IP地址是123.456.78.90,电池历史在http://123.456.78.90:port_number

在电池历史的起始页面,你可以上传和浏览电池统计数据。

BatteryStats里获得数据

要从设备的BatteryStats里获得数据,在电池历史里打开它,像这样操作:

  1. 把设备连到电脑上
  2. 在终端里关掉正在运行的adb服务
adb kill-server
  1. 重启adb,检查设备连接状况。
adb devices

应该能看到列出的设备,如下图:

如果没有设备列出来,查看是否手机连接,USB调试是否打开,在关闭并重启adb。

  1. 复位电视数据统计
adb shell dumpsys batterystats --reset

设备一直在后台收集电池数据和其他调试信息。复位操作删除旧统计数据。如果不做复位操作,输出将会巨大。

  1. 从电脑断开手机,确保你只用电池里的电。
  2. 使用应用程序,得到相应的数据;例如,从WiFi断开并发送数据到云端。
  3. 重新连接手机
  4. 确认手机连接上
adb devices
  1. dump所有数据。这可能会需要一些时间:
adb shell dumpsys batterystats [path/]batterystats.txt

BatteryStats.txt文件将会放在你设置的可选参数path里。如果没有设置path,文件被存在家目录。

  1. 从原始数据创建报告。

对于运行在Android 7.0和以上版本的设备:

adb bugreport > [path/]bugreport.zip

对于运行在Android 6.0和一下版本的设备:

adb bugreport > [path/]bugreport.txt

获得Bugreport需要花些时间。完成之前不要断开连接或取消操作。

向BatteryStats.txt一样,文件将会放在你设置的可选参数path里。如果没有设置path,文件被存在家目录。

  1. 如果还没运行,执行下面命令运行电池历史:
docker --run -p port_number:9999 gcr.io/android-battery-historian:2.1 --port 9999
  1. 在电池历史看你的数据,在你的浏览器打开电池历史。(对于Mac和Linux,电池历史在http://localhost/port_number对于Mac和Linux,电池历史在http://your_IP_address/port_number
  2. 点击Browse,选择你刚才生成的bugreport文件。
  3. 点击Submit。电池历史会打开一个由BatteryStats数据生成的图。

电池历史图表中查看数据

电池历史表画出基于时间的电源相关事件。

当系统组件活动,消耗点的时候,对应行显示彩条。这个标并没有显示这个组件使用了多少电,只有活动的应用信息。图表中X轴是时间,分类展示,每类用长条表示。

上图中,1代表从下拉列表中添加纬度。2代表鼠标移到上边,会有相关条目的具体信息,包括显示条的颜色等。3代表鼠标移到显示条上,会显示这个纬度的具体信息和那个时间点电池的状态。

更多BatteryStats输出

在下面电池历史图表中,你可以从BatteryStats.txt中得到更多的信息。

1系统统计标签可以看到系统范围内的统计数据,像信号强度和屏幕亮度。这个信息提供了设备的一个整体信息。确保没有外部事件影响你的测试很重要。

2应用统计标签包含了特定应用的状况。根据用户设置的排序标准(3通过什么排序)来排列应用显示顺序。也可以选择一个特定的应用(4)来显示。

更多电池性能相关的问题,请看电池寿命优化。

猜你喜欢

转载自blog.csdn.net/yubing1015/article/details/84634161