移动性能测试 移动端相关功耗测试杂谈

天行 · February 22, 2014 · Last modified by admin 天行 · 2015 hits
本帖已被设为精华帖!

看完 kasi大哥 写的,我也写一点点儿我知道的~

为什么要测功耗?测功耗的实际意义有哪些?
ROM级别的,测功耗(包括其自带的应用)是必然的(毕竟rom的耗电决定待机时间长短,这是手机的很重要卖点之一,也是用户比较关心的一个指标)。一般官方宣传的手机资料时,里面写的待机时间多少分钟、2G/3G通话/上网多少分钟、wifi上网/听音乐/播放视频的最大时长,就是测耗电量再经过计算得来的。
单个App级别的,大家都知道,耗电量的增加,也就意味着内存/CPU占用的增加。正所谓,透过现象看本质,如果增幅较之前版本过大,那很有可能是代码出问题了(即便不影响功能使用,这种问题即便不修正不优化,但最好能做到知道哪有问题);比之前版本过小,时间精力够的话最好去找找导致差异过大的原因。
(PS:像ROM级别的功耗测试这肯定是各个厂商都会做的,咱们普通小老百姓基本无需操心这些。非系统自带的App,尤其是安卓平台,在海量的ROM下,用户量比较大的应用,可以去着重在各种ROM上看看耗电量还可以;一般的应用,我个人愚见,测耗电量的意义和回报不太大,还不如多关注UI设计、优化内存CPU的占用、优化各功能的响应时间的更有意义,因此测App的功耗视需求而定。)

测功耗大致过程是怎样?
测功耗,一般是选取(经过细致评估的App或ROM的功能性能)比较稳定的版本来做一轮功耗测试,测时用两三个硬件没什么问题的手机、刷个干净稳定的系统,让手机、假电池、电流表串联(即假电池连接到电流表的电流输出口,然后再安到手机上模拟日常用的电池来给手机供电,这样保证三者电流一致),和然后放上SIM卡(一般是移动的),然后去测各种功能下的耗电量。
比如,测理论上的手机2G通话的最大时长,打几个十分钟的电话,采集并计算这段时间系统的电流的平均值,然后再用该手机配备的电池的容量除以这个电流值即得出理论上的2G最大通话时间。测单个功能的功耗,只要减掉手机待机时的电流值即得到单个功能的功耗。
(PS:因为是在偏绝对的环境下测出的,所以是理论值。等到实际使用环境肯定比测试时复杂,so 我们的手机平日里能使用的时长肯定比理论值要小。)

一些杂项(上面写的其实测的思路,基本上是固定的好多年没变过,但是测的过程中意外时有发生):
1、硬件的检查:手机的硬件最好靠谱些。反之,硬件有问题,测出的电流值完全没意义。
2、系统设置的检查:要刷的ROM版本不要看错,蓝牙、wifi、移动数据之类的没让开之前千万不要开,反之,测出的数据偏差太大,只能设置好之后重跑。(之前同事有干过~后果略严重~)
3、其他的检查:假电池、手机、电流表的连接处触点是否生锈(生锈即影响电阻,进而影响电流值);SIM卡保持话费充足,服务类电话、短信能取消的取消,一旦测通话时电话没费导致通话时长不足、测的过程中来了其他的电话短信,这些都会严重影响电流值,一旦碰到,起码这条用例得重新来过;手机信号不能太弱,信号不稳势必会导致发射接受频率的提升,进而导致系统电流值不稳定,故尽可能保持手机信号满格和稳定,同理wifi信号、网速亦是如此;测的时候冒出Bug,没好办法,抓Log报Bug,然后重跑用例。。。
4、关于假电池,一般是一块电路板,大小与手机电池近似但不绝对,绝对的是整体的电阻、触点都是仿照真实的电池来做的,目的也是为了尽可能的模拟真实电池给手机供电时的情况,进而得出较为靠谱的电流值。
5、测偏绝对环境下理论的理论值的原因,是因为用户的使用环境场景千差万别无法进行模仿,只能从最基础最单一最简单情景下进行电流值的测量,然后采用以小见大(或是以偏概全)的方法来计算出那些所谓的理论值。
6、电流表的选取,主要在于构造(当然是越贵的测的越精准~几百到几十万不等~)对电流会造成一定的硬性影响,视具体需求而定。

总结:标准的测功耗,环境就是要尽可能的干净不受干扰,以上是小弟做过的一点总结~欢迎各路英雄多多指点斧正拍砖~

共收到 0 条回复 时间 点赞
1Floor has been deleted
2Floor has been deleted
3Floor has been deleted
4Floor has been deleted
5Floor has been deleted
6Floor has been deleted
恒温 《Android 性能测试初探》合集 中提及了此贴 08 Mar 15:55
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up