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

作者: zcwfeng | 来源:发表于2020-03-25 15:31 被阅读0次

关于 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


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

相关文章

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

    关于 batterystats 文件分析 这次比较系统的操作,不在用单个Python文件查看 耗电数据的采集 数据...

  • Android耗电量采集及简单分析

    Android耗电量采集及简单分析 背景 电量测试在日常测试较为困难,本文介绍基于Battery Historia...

  • Android耗电量采集及简单分析

    背景 电量测试在日常测试较为困难,本文介绍基于Battery Historian的Android 电量采集,从数据...

  • Android M 以上 电量优化分析

    电量优化一直是Android 开发中的头等问题。本篇将分析一下Android M 以上电量优化措施电量优化相关的部...

  • Android电量测试

    目前对于移动设备而言,电量是很重要的一个方面。现在大家使用手机基本每天都需要充电,所以用户也非常关注耗电的问题,如...

  • 浅谈性能优化-电量优化

    电量测试 电量测试:就是测试移动设备电量消耗快慢的一种测试方法。一般用平均电流来衡量电量消耗速度。平均电流越小,说...

  • Android 优化——电量优化

    Android 优化目录 Android 5.0 后用 Battery Historian 工具分析电量。 耗电因...

  • android中的电量优化建议以及Battery Histori

    这篇文章主要是探讨android app的电量使用优化,以及电量使用分析工具battery-historian在w...

  • 电量优化

    1, 分析电量的工具Android 5.0及以上的设备, 允许我们通过[adb命令dump出电量使用统计信息.ad...

  • Android 电量分析

    Android APP 的电量消耗也是APP 衡量性能的一项指标,一款优秀的应用应该尽可能的消耗更少的电量。在实际...

网友评论

    本文标题:Android 电量测试-电量分析(二)

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