首页 > IT职业 > IT图书 > iOS 常见耗电量检测方案调研
本文对应 Demo 以及 Markdown 文件在 GitHub 仓库中,文中的错误可以提 PR 到这个文件,我会及时更改。
如果我们想看下我们的 APP 或 SDK 是否耗电,需要给一些数据来展示,所以就对常见的电量测试方案做了一下调研。
影响 iOS 电量的因素,几个典型的耗电场景如下:
定位,尤其是调用GPS定位
网络传输,尤其是非Wifi环境
cpu频率
内存调度频度
后台运行
iOS 10 系统内置的 Setting 里可以查看各个 App 的电池消耗。

enter image description here
系统接口,能获取到整体的电池利用率,以及充电状态。代码演示如下:
//#importUIDevice *device = [UIDevice currentDevice]; device.batteryMonitoringEnabled = YES; //UIDevice返回的batteryLevel的范围在0到1之间。 NSUInteger batteryLevel = device.batteryLevel * 100; //获取充电状态 UIDeviceBatteryState state = device.batteryState; if (state == UIDeviceBatteryStateCharging || state == UIDeviceBatteryStateFull) { //正在充电和电池已满 }
这些均不符合我们的检测需求,不能检测固定某一时间段内的电池精准消耗。
阿里云移动测试MQC
MQC 调研,结论:没有iOS性能测试,无法提供耗电量指标。
| 解释 | 截图 |
|---|---|
| 安卓有性能测试项目 |
enter image description here |
| 安卓的性能测试项目 |
enter image description here |
| iOS没有性能测试,无法提供耗电量指标 |
enter image description here |
百度移动云测试中心 MTC 同样没有 iOS 的性能测试。
其他测试平台类似。
硬件测试
软件工具检测
下面介绍通过软件 Instrument 来进行耗电检测。

enter image description here

enter image description here

enter image description here
测试过程中要断开 iOS设备和电脑、电源的连接
电量使用level为0-20,1/20:表示运行该app,电池生命会有20个小时;20/20:表示运行该app,电池电量仅有1小时的生命
数据不能导出计算,只能手动计算平均值
通过硬件 PowerMonitor 可以精准地获得应用的电量消耗。
步骤如下:
拆开iOS设备的外壳,找到电池后面的电源针脚。
连接电源监控器的设备针脚
运行应用
测量电量消耗
下图展示了与iPhone的电池针脚连接的电源监控器工具。

enter image description here
可以参考:Using Monsoon Power Monitor with iPhone 5s。
可以精准地获得应用的电量消耗。
设备价格 $771.00 USD
需要拆解手机
这样看来,只有 Instrument 的方案更适合,大家有什么方案的话,也可以贴在下面。
作者:iOS程序犭袁
链接:https://www.jianshu.com/p/851b0acde9c3
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4684/viewspace-2802188/ ,如需转载,请注明出处,否则将追究法律责任。