功耗,通俗的理解即电流通过导体使设备运行,导体本身的电阻将电能转换为热能的过程。因此,通常功耗测试也叫电量测试。根据公式W = w * t = U * I * t,可以得到wUItU。移动设备的功耗主要包括GPS、sensor、wakelock、CPU等方面。主要的耗电场景有:屏幕、CPU、wakelock、wifi、scan等。
在Android系统中,功耗测试可以通过以下几种方式实现:
1. Android电量测试
2. Flyme
3. API
4. 硬件工具
- 基于硬件的测试方案,使用用电量表来测试手机耗电量。该方法的优点是测试比较精准,缺点也很明显:采购成本高,测试的是整个手机,不是被测APP;测试时要减少系统本身和其他app的干扰。得到的数值无法直接参考,不知道合理还是偏高。不能给出进一步参考,比如具体哪个app方面消耗电量比较多。
5. batterystats
6. bugreport
7. Battery Historian
电量数据收集包括收集电池的历史数据和重置电池数据。可以使用adb bugreport命令获取Android 7.0以上系统版本的bug报告,以及Android 7.0以下系统版本的dumpsys、dumpstatelogcat等信息。这些信息中包含了CPU、accounts、activities、wifi等方面的数据。还可以获取指定应用程序的dumpsys信息,以便分析其耗电情况。
电量数据解析可以使用Battery Historian进行。通过docker容器安装Battery Historian,可以方便地对收集到的电量数据进行分析。
Battery Historian
## 介绍
Battery Historian 是一个用于分析和展示 iPhone/iPad 电池数据的工具。您可以在本地搭建环境,也可以访问在线解析平台进行使用。
## 使用方法
1. 查看整体电量数据:上传数据解析后,您可以查看到详细数据展示,如图所示。
2. 查看单个进程电量消耗数据:在 App Selection 中选择指定的 App 进程,即可查看该进程的耗电数据。
3. iOS 功耗测试:选择设备和应用进行执行之后可以查看到电量消耗情况。
4. iOS 电量测试:打开 Energy,然后点击开始录制。执行应用操作,完成后返回“设置”>“开发者”>“Logging”,然后点击“stop recording”。导入完成后即可查看数据信息。
## 注意
如果您不想在本地搭建环境,那么可以访问在线的解析平台:https://bathist.ef.lc/ (网站可能打不开,原因你懂的)。
## 重点参数说明
- battery_level:电池电量百分比
- plugged:是否充电
- long wakelock:长时间唤醒状态
- screen top app:屏幕顶部应用占用时间比例
- Coulomb chargemAh:电池充放电容量(mAh)
- Temperature:温度(°C)
- discharge rate:放电速率(mAh/h)