【背景】
目前输出的 app 已经出现多次因为资源释放不当导致的异常耗电,严重的影响了用户在F 产品使用中的体验。性能测试虽然引入了耗电量测试,但是当前的手段效率相对较低(通过长时间使用来观察耗电状况)。
【解决思路】
- 软件监控 app 解决思路,目前已经有市面上的开源项目供使用,F 技术组也有针对的做了引入和优化,但是使用软件做换算,存在测试误差,且工具本身存在兼容性。
- 硬件耗电电量测量,更可靠的方案是购买安捷伦,不过太贵了,以下使用一种相对便宜的解决方案来硬件测试耗电量。
【耗电量测试要点】
- 引用资源时,不存在过分的使用和无效的使用 — 表现在耗电量上,使用功能时有较高的使用电流。
- 功能关闭时,释放掉运用的资源 — 表现在,关闭应用后,还有较高的电量消耗。【操作指南】
可变恒压电源一个,https://item.taobao.com/item.htm 某宝上 350 块的某产品一个。电压控制范围 0~15v。调整间隔 0.1V。电流进度 1ma。别问我为啥不考虑安捷伦,我都强调某宝上 350 了。
不过 0.1v 的电压精度,1ma 的电流进度对于测试来说已经足够了,这个误差已经比软件实现的测试方案高很多了。如下图,本身输出的电压也还是比较精准的。如下图,在4v 的电压输出时,输出大约是 3.99。误差已经很小了。
操作步骤第一步,确定手机的正反接线柱。如图所示,参考电池连接的位置即可。电源关机连接线。
开机,确定输出的电压设置为 4v。如果不是 4v,按 9 增加电压,按 3 降低电压。需要说明下,通常手机电池的电压输出再 3.7~4.2。但是并不是绝对的,有的手机比如三星会到 4.35。另外说明一下,手机的电量是通过电压的变化来换算的,但是电压变化不是线性的,不同的厂商定义的计算方式都不同。会在不少手机上看到充满 100%之后第一个百分点能用很久,或者最后几个百分点能用很久。确定连接无误之后,启动手机开机就可以了。如下图左侧显示的就是当前手机显示的耗电量了。开机后,启动本身耗电量是比较大的,等待一分钟左右,耗电量会处于一个稳定状态,如下图大约降到 209mA,这个值需要记下来,这是手机处于 idle 且开启屏幕的耗电量。
然后开始测试我们的 app,如测试某谷直销银行在启动时的耗电量。当然了本身启动的过程是不同的进程交汇的结果,耗电上自然也不是绝对的一条直线,而是有一定的抖动,这个阶段我们可以使用拍照方式,取下这段时间的数据求均值。如下面前三个图片,耗电量约在 360mA,减去 idle 状态的耗电 209,启动瞬间的耗电量大约为 150mA。而在加载完毕后,耗电量会有所下降。如下图四
刚已经有说明,耗电量测试主要是测两点,资源是不是有过渡使用,另外就是是否正确被释放。所以接下来就是分别测试 app 到后台的耗电状况,以及 app 退出的耗电状况。如下图,app 退出后,耗电量降到 213mA,和启动前相当。
在 app 使用中直接锁屏,等待若干秒后,耗电量下降到 5mA。不要问我为什么之前耗电不是要看半小时用多少电量么。那我得说,距离等于速度乘以时间。
iOS 的操作也是一样的,发个截图瞅瞅