一、什么是应用功耗?
对应用来说,即为工作时所消耗的电量(耗电)。测试应用功耗即为实际应用工作时耗电的情况。
二、影响功耗的因素?
外因:应用无法改变的部分,具体有以下方面(测试时尽可能固定外因,这样测试数据才具有可比性)
a.硬件的生产制造工艺,硬件功率,具体设计上的因素。
b.系统版本,不同安卓版本有不同特性,在耗电方面也有不同影响因素。
c.手机本身无线信号强度
d.手机工作状态,如产生位移,海拔高度变化等因素。
e.周围环境变化
内因:
a.应用的计算强度,具体表现应用cpu占用率较高,或是应用存在大量图像的绘制比如游戏和图像相关的一些应用。
b.网络传输需求,传输数据的时间,传输数据的频率,都会影响应用的耗电
c.手机设备的使用,如传感器,GPS,麦克风摄像头都会影响应用的耗电情况。
d.应用系统休眠或唤醒。
应用功耗的几种方法
1.系统电量差法:根据应用工作前后,系统电量变化的百分比情况来衡量应用功耗情况。
优点:非常直观,也非常容易执行
缺点:1.它只能反映系统整体的耗电情况,不能精确到某个应用耗电量。
2.系统电量降幅并非线性,一般100%-20%是比较平缓的,20%-0降速比较快。
2.电流记录法(手机厂商常用):通过电流仪记录手机瞬时一个电流的变化情况,通过这一电流变化情况,体现处耗电的趋势,再通过一些计算方式,可以计算出一段时间内手机消耗了多少电。
优点:系统电量差法精确许多
缺点:1.只能反映系统整体好点情况,不能精确到单独某个应用。
2.购买、维护成本高,受环境限制,不适合移动
3.计算耗电法(测试耗电的app):使用系统提供的设备占用时长等信息乘以各机型平均水平为基准的各设备单位耗电值,再根据公式得出估算值
优点:计算某个应用耗电比较方便
缺点:无法控制测试环境的影响,结果并不准确
4.设备占用记录法(查找定位耗电问题):与第三种方法类似,但只记录和比较设计占用的频率,频次和时长,不进行计算。(使用battery historian):https://github.com/google/battery-historian
优点:1.可以衡量单个应用功耗。
2.由于这个数据没有经过固定值的计算,所以相对比较可信
缺点:1.数据项太多,不够直观,不易理解。
三、功耗标准
1.测试环境
测试环境对应用功耗有很大影响,所以测试功耗应当尽可能固定外因,这样前后测试数据才具有足够可比性。
标准测试环境:
1.较为纯净的系统环境,可以免除手机预装的某些应用影响测试效果
2.电池起始电量为100%,因为最开始部分的耗电量最为平滑
3.网络选择wifi或者4G
4.环境温度为25+-5C
2.范设备化
1.不描述某一应用在特定手机上的功耗衡量和标准判断
2.通过应用对手机上的设备的占用频次和时长,来衡量和判断该应用功耗
2.需求度
解释 | 现行标准 | 举例 | |
高需求 | 出于功能和用户体验的需要,应用必须要频繁、持续、高强度地使用该设备 | 其他(例外) | 导航过程中对GPS传感器的需求 |
中需求 | 出于功能和用户体验的需要、应用需要频繁、持续地使用该设备,但强度相比高需求略有变化 | 播放音频时对CPU的需求 | |
低需求 | 应用在以较低的频率或一次性(用户主动触发)地使用该设备时即可满足功能的需要 | 非持续定位对GPS传感器的需求 | |
无需求 | 应用在该场景下不需要或极少使用该设备 | 无需求 | 播放视频时对GPS传感器的需求 |
3.前后台
解释 | 现行标准 | |
前台 | 应用置于手机屏幕顶层,用户可以直接看到并进行操作 | 暂不做要求 |
后台 | 应用未置于手机屏幕的顶层,用户无法直接看到,也无法直接操作 | 除规范其对手机硬件设备的使用频率和使用时长外,还规范其对Wake Lock 、 Alarm的使用情况,并在标准环境中的后台耗电情况作为参考标准执行。 |
4.硬件设备
包含范围 | 衡量标准 | |
处理器 | 应用处理器、图像处理器 | 平均每小时的占用时间Wake Lock设置情况 |
屏幕 | 屏幕 |
阻止屏幕变暗或关闭 在屏幕变暗或关闭时点亮屏幕 |
无线网络 | wifi、数据连接、蓝牙、红外等 |
平均每小时传输时间 平均每小时扫描次数 |
音频设备 | 扬声器、麦克风 | 后台使用情况 |
摄像头 | 摄像头 | 后台使用情况 |
位置传感器 | GPS、北斗、气压传感器 | 后台使用情况 |
动作传感器 | 动作传感器、方向传感器、磁场传感器、陀螺仪传感器等 | 后台使用情况 |