Android 电量测试-电量分析(二)

关于 batterystats 文件分析

  • 这次比较系统的操作,不在用单个Python文件查看

耗电数据的采集

数据的采集是机器单方面的行为,不需要依赖第三方的辅助,因为这是 Android 系统级的功能。但在这之前,需要做一些准备。

请事先打开开发者模式。USB 接入计算机。在终端中执行:

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

默认情况下,唤醒(wake)数据是不会被采集的,因此我们需要将其启用。如果采集的不是全量 wake up 数据,在分析阶段则不能很好的观测数据。

随后终端执行:

adb shell dumpsys batterystats --reset

此命令会清空历史采集的信息。
ps: 最后,拔出 USB。 很重要

现在,耗电统计已经开始了。没错,耗电统计就是一直开着的,并且无法关闭:这是一个系统级别的功能。

为什么要拔出 USB?因为如果你一直插着 USB ,如果电充满了,你的数据会被清空的。Batterystats 只会记录最后一次充满电后的记录,因此强烈建议先把电充满,完成以上操作后,拔出 USB 电源。

接下来,就像日常使用手机一样,操作你想要统计的应用。耗电记录器会在后台统计整台机子所有的耗电情况。没错,不需要事先指定目标 App ,所有 App 都会被统计。这也说明,任何人都能够统计任何已安装的应用。因此,除了统计自家 App ,也能用于统计竞品。

当你觉得操作得差不多了,连接到 USB,终端执行:

adb bugreport > bugreport.txt
bugreport.txt 就是记载着整台手机耗电信息的源数据。

最后终端执行:

adb shell dumpsys batterystats --disable full-wake-history
不要忘了关闭全量记录唤醒。保持开启会造成性能问题,除非在电量收集阶段,否则建议保持关闭。

搭建 Battery Historian & 上传 bugreport

Battery Historian ,是谷歌出品的耗电分析器。通过 Battery Historian,可将导出的 bugreport 文件可视化。在第一代的 Battery Historian 中,google 使用了 python 作为数据解析工具。拿到 bugreport 文件后,通过终端执行 python 来生成可视化的 html 文件。这种方法使用起来较为麻烦,而且无法部署到服务器。因此在第二代 Battery Historian,google 选择了使用 docker 容器。现在完全不推荐使用第一代 Battery Historian,已经许久没有维护了,而且功能过于简陋。

我在此演示 Mac 环境的搭建,其他操作系统大同小异,可参考 Battery Historian 官方教程。

首先下载 Docker 并安装。

启动 Docker。点击上方状态栏 Docker 图标,如图所示 "Docker is running" 则表示启动成功。

分析

下一步,启动终端,执行:

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

等待镜像下载完成,再次执行上一条命令。

访问 http://12.0.0.1:5665

除了单一上传 bugreport 文件外,还支持更多的分析文件上传。此外,还能对比两份bugreport文件。这对比功能简直是神器。这里就不展开述说了,直接上传 bugreport.txt。

PS: 但是我失败了,导出文件有一个自动生成的zip文件,上传这个

数据分析分为三个 Tables,分别是 System Stats , History Stats , App Stats。System Stats 和 App Stats 是重点观测和分析对象。

System Stats 包含了机子整体概况,包括整台机子在这段期间消耗了多少电量,所有 app 使用 Wakelocks、JobScheduler、CPU、Wifi、传感器等等一切的所有情况。

接下来则是 App Stats,所有的优化都是为了此处的数据而努力。

App Stats

App Stats 所展示的都是所选定包名所产生的数据,不会受到外部因素的影响。

Misc Summary 部分概述了所选定 app 在收集阶段的活动概况:

主要看WakeLock, WakeAlarm

最后,再来看看 Sensor Use 部分:

这些都是分析用的。重要的是,有个name 框,选择你app 的package name


错略分析,接下来研究精细分析和解决方案

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容