美文网首页Android 性能分析
Android耗电量采集及简单分析

Android耗电量采集及简单分析

作者: 龙猫六六 | 来源:发表于2017-06-20 17:09 被阅读898次

    背景

    电量测试在日常测试较为困难,本文介绍基于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耗电量采集及简单分析

        本文链接:https://www.haomeiwen.com/subject/staoqxtx.html