Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS 常见耗电量检测方案调研 #10

Open
ChenYilong opened this issue Jun 19, 2017 · 5 comments
Open

iOS 常见耗电量检测方案调研 #10

ChenYilong opened this issue Jun 19, 2017 · 5 comments
Labels

Comments

@ChenYilong
Copy link
Owner

ChenYilong commented Jun 19, 2017

iOS 常见耗电量检测方案调研

本文对应 Demo 以及 Markdown 文件在 GitHub 仓库中,文中的错误可以提 PR 到这个文件,我会及时更改。

前言

如果我们想看下我们的 APP 或 SDK 是否耗电,需要给一些数据来展示,所以就对常见的电量测试方案做了一下调研。

影响 iOS 电量的因素,几个典型的耗电场景如下:

  1. 定位,尤其是调用GPS定位
  2. 网络传输,尤其是非Wifi环境
  3. cpu频率
  4. 内存调度频度
  5. 后台运行

系统接口

iOS 10 系统内置的 Setting 里可以查看各个 App 的电池消耗。

enter image description here

系统接口,能获取到整体的电池利用率,以及充电状态。代码演示如下:

   //#import <UIKit/UIDevice.h>
   UIDevice *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 的性能测试。

其他测试平台类似。

常用的电量测试方法:

  1. 硬件测试
  2. 软件工具检测

软件工具检测

下面介绍通过软件 Instrument 来进行耗电检测。

iOS电量测试方法

1.iOS 设置选项 ->开发者选项->logging ->start recording

enter image description here

2.进行需要测试电量的场景操作后进入开发者选项点击stop recording

3.将iOS设备和Mac连接

4.打开Instrument,选择Energy Diagnostics

5.选择 File > Import Logged Data from Device

enter image description here

6.保存的数据以时间轴输出到Instrument面板

enter image description here

其他

  • 测试过程中要断开 iOS设备和电脑、电源的连接
  • 电量使用level为0-20,1/20:表示运行该app,电池生命会有20个小时;20/20:表示运行该app,电池电量仅有1小时的生命
  • 数据不能导出计算,只能手动计算平均值

硬件检测

通过硬件 PowerMonitor 可以精准地获得应用的电量消耗。

步骤如下:

  1. 拆开iOS设备的外壳,找到电池后面的电源针脚。
  2. 连接电源监控器的设备针脚
  3. 运行应用
  4. 测量电量消耗

下图展示了与iPhone的电池针脚连接的电源监控器工具。

enter image description here

可以参考:Using Monsoon Power Monitor with iPhone 5s

  • 可以精准地获得应用的电量消耗。
  • 设备价格 $771.00 USD
  • 需要拆解手机

这样看来,只有 Instrument 的方案更适合,大家有什么方案的话,也可以贴在下面。

all-reward

@ChenYilong ChenYilong changed the title iOS 耗电量检测方案 iOS 常见耗电量检测方案调研 Jun 19, 2017
@ChenYilong
Copy link
Owner Author

Reference: 《WWDC17 教你开发省电的 app》

@wangzhezhijian
Copy link

很不错,马上试试,然后再后续评论

@ShenYj
Copy link

ShenYj commented Nov 2, 2017

不错

@ifelseboyxx
Copy link

https://cloud.tencent.com/community/article/877849 这篇腾讯的,特别详细!!

@ChenYilong
Copy link
Owner Author

https://cloud.tencent.com/community/article/877849 这篇腾讯的,特别详细!!

优质!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants