方法一——硬件检测
通过硬件 PowerMonitor 可以精准地获得应用的电量消耗。
步骤如下:
- 拆开iOS设备的外壳,找到电池后面的电源针脚。
- 连接电源监控器的设备针脚
- 运行应用
- 测量电量消耗
下图展示了与iPhone的电池针脚连接的电源监控器工具。
可以参考:Using Monsoon Power Monitor with iPhone 5s。
- 可以精准地获得应用的电量消耗。
- 设备价格 $771.00 USD
- 需要拆解手机
方法二——instruments
步骤
1.iOS 设置选项 ->开发者选项->logging ->start recording
2.进行需要测试电量的场景操作后进入开发者选项点击stop recording
3.将iOS设备和Mac连接
4.打开Instrument,选择Energy Diagnostics
5.选择 File > Import Logged Data from Device
6.保存的数据以时间轴输出到Instrument面板
缺点
2)电量采样速率为1s/次,电量使用level为0-20,1/20:表示运行该app,电池生命会有20个小时;20/20:表示运行该app,电池电量仅有1小时的生命
测试精确度为5%;
3)电量测试数据只能通过Energy Diagnostics Instruments查看,不能导出为cvs文件,无法计算整体耗电量、平均耗电量,只能手动计算平均值
方法三——api接口调用的方式
最初我们用到的是UIDevice类batteryLevel接口。这个接口只能获取到剩余电量百分比,目前世面上能见到的所有iOS系统版本都可用,如上文所提到的,他和系统界面上展示的值几乎没有区别,唯一不同的是,他是以mAh为单位计的,以这个值计算的剩余电量百分比,就是系统上显示的那个值。这样看来,这个接口也没有什么多大的意义。还得继续尝试。
接着我们使用到的是IOKit中的IOPMPowerSource接口,私有接口,调用方式如下:
在iOS 10及以上的系统上,能获取到的信息如下: