背景

电量测试在日常测试较为困难,本文介绍基于Battery Historian的Android 电量采集,从数据采集,环境搭建,数据分析三个方面进行介绍,希望对测试和开发有帮助。
本文介绍的方法优势是
1.不需要源码,无需打桩
2.数据功能丰富,包含电量,流量,温度,进程等信息
3.适用游戏,阅读,通讯,音乐等多种类型产品
4.可对竞品分析

耗电数据采集

Android系统提供dumsys工具用于数据采集,该采集行为是机器单方面的行为,不需要依赖第三方的辅助。
采集步骤如下:

Setup1.

打开开发者模式,手机通过usb接入电脑,并在终端执行如下命令

adb shell dumpsys batterystats --enable full-wake-history

该命令行的作用是打开全量采集wakelock(唤醒锁)数据开关,有利于全面观测分析数据;默认情况下该开关为关闭,不采集wakelock数据。

Setup2.

清空历史采集数据,在终端输入如下命令

adb shell dumpsys batterystats --reset

Setup3.

拔出USB。主要有如下两个原因:
1.手机连接USB接口处于充电状态,不能真实反应app耗电量
2.batterystats是系统级别指令,会一直记录数据,且只记录最后一次充满电后的记录,因此一直连接USB采集的数据可能被覆盖

Setup4.

执行电量测试用例,业务强相关。建议测试过程中关闭其他手机app,测试时间为30分钟,时间过长导出的日志文件过大(20M以上)

Setup5.

导出电量采集数据,在终端输入如下命令:

adb bugreport > filename.txt

Setup6.

关闭全量记录wakelock数据,终端输入如下命令:

adb shell dumpsys batterystats --disable full-wake-history

保持全量记录wakelock数据,会影响手机性能,建议关闭。
至此完成了电量数据采集。

耗电数据展示

耗电数据展示采用Battery Historian,及处理导出的 filename.txt电量采集数据。
git地址如下:https://github.com/google/battery-historian
Battery Historian是由Google提供的查看电量相关信息及事件的工具,适用与android5.0(API level 21)及以上系统。该工具能够让程序开发者在时间轴上可视化系统和app级别事件,具体包括查看设备上次充满电后的各种统计信息,选择应用程序并检查影响电池的指标等。

在第一代Battery Historian中,Google使用的python作为解析工具,将日志文件转化为可视化的html文件。由于是第一代产品不论是在功能性,还是使用便捷度都存在一定的问题。因此在第二代Battery Historian,google 选择了使用 docker 容器。本文使用第二代的Battery Historian。

下文将介绍如何搭建第二代的Battery Historian环境。

Setup1.

下载安装docker,Mac环境下载地址如下
https://store.docker.com/editions/community/docker-ce-desktop-mac
下载并启动docker。

Setup2.

终端输入下列命令:

docker run -p 9998:9999 gcr.io/android-battery-historian:2.1 --port 9999

第一次安装需要花一定时间安装相关的依赖,如果成功,将输出如下信息:

2017/06/20 02:51:46 Listening on port:  9999

Setup3.

访问127.0.0.1:9998,如下图

1.jpg

Setup4.

倒入耗电采集文件,展示如下:

2.jpg

耗电采集分析

使用Battery Historian展示耗电数据日志,接下来就是如何分析数据。
1.选择目标app及相关数据展示,在App Selection中通过name选择测试app

1.jpg

2.选择测试app,可以过滤掉其他app的相关数据,如下图:

1.jpg

我们能得到那些有用的数据呢?
1.app的耗电基本信息,如下图:

1.jpg

Device estimated power use:app的在测试时间内耗电量
Foreground:app在前台的运行时间

2.app的流量信息,如下图:

1.jpg

Wifi data transferred:Wi-Fi的流量
Mobile packets transferred:手机流量
Wifi packets transferred:Wi-Fi的数据包个数
Mobile active time:手机的数据包个数

3.wakelock唤醒锁信息

1.jpg

这块和业务强相关,一般指的是后台运行的任务。如阅读屏幕常亮,后台下载等场景。

4.服务信息

1.jpg

服务信息,可以查看app开启的services信息。

5.进程信息

1.jpg

经常信息,如图app有三个进程,分别是应用本身的进程,私信进程,push进程

6.网络信息

1.jpg

如图红色区域,反应了测试过程中的网络变化,绿色表示网络优,橘黄色表示网络弱

7.手机温度

1.jpg

反应测试阶段手机的温度,颜色约深温度越高

8.电量变化趋势

1.jpg

如红色区域,蓝色点越密集,表明该时间阶段耗电较大

文章来源于互联网,如有雷同请联系站长删除:Android耗电量采集及简单分析

发表评论