最近比较喜欢玩手机上的吃鸡游戏,不过玩着玩着手机经常性的发热,耗电也快的飞起。但是如何描述耗电的水平是个比较头疼的问题。
目前测试耗电的方案也比较多.
电流仪:这个需要拆手机
软件方案:不需要拆手机的
因为我实在不舍得拆我的手机,所以只能去研究软件方案了。但是我又不需要知道具体的耗电原因,battery-historian 这款重量级的软件就先不用了。
考虑到我只是想之前当前玩的游戏的能耗等级,就像冰箱上经常贴的能耗等级一样。方案还是简单一点好。
冰箱是按照每天的耗电量,手机 App 能耗等级的话,就按照平均电流(单位 mA)来计算好了。
app 运行时平均电流减去未安装时电流乘以电压 便是耗电功率。根据运行时电流以及电池容量可以推算出可运行时长。
目前有两种方法
通过读取系统中的文件
根据 stackoverflow 的结果,不同手机获取电流值的位置是不同的
https://stackoverflow.com/questions/2439619/getting-the-battery-current-values-for-the-android-phone
/sys/class/power_supply/battery/current_now # nexus one
/sys/class/power_supply/battery/batt_current # htc
/sys/class/power_supply/battery/charger_current # sony ericsson x10
/sys/class/power_supply/battery/smem_text # droid eris
# other ...
实际测试中,发现在部分手机有 10s 以上的延迟,有的延迟还是动态的,实在是不怎么准。直接来看第二种方案。
通过电池电量百分比的下降速度结合电池的总容量计算出来(好是好,就是费时间)
首先需要知道电池总的电量 S。可以通过百度,谷歌手机的品牌可以查到。
部分手机可以通过cat /sys/class/power_supply/battery/charge_full
获取到
dumpsys battery
可以获取到当前电量的百分比。
电量从 x% 到 y% 的时候消耗的时间 T。
那么,这个时间的平均电流 I 为 S * (x-y)% / T。
下面用这种方法测试终结者 2,手机(坚果 Pro)
用 echarts 简单的做了一个图
如图所示,电量从 96% 下降到了 89%,下降了 7% 所用时间 24 分钟。该电池总容量 3496mAh
所以游戏平均电流为 3496*7%/(24/60) = 611mA。
持续打游戏应该可以玩的时间 3496/611 = 5.7h。能玩一下午哎。
游戏的画质默认的是均衡。
再来测试一次。
86% -> 80% 25 分钟 3496*7%/(25/60) = 587mA。误差范围大约 30mA。尚可接受。
第三次改成极高画质
76%-70% 18 分钟 3496*6%/(18/60) = 699mA。比较符合预期,电流升高了。
考虑到时间问题,晚饭还没吃,就只测试一个游戏了。其中一把不小心吃了个鸡,嘿嘿。