ATX 通过电池电量评测安卓 App 的耗电水平

codeskyblue · 2017年12月09日 · 最后由 codeskyblue 回复于 2017年12月20日 · 4855 次阅读
本帖已被设为精华帖!

背景

最近比较喜欢玩手机上的吃鸡游戏,不过玩着玩着手机经常性的发热,耗电也快的飞起。但是如何描述耗电的水平是个比较头疼的问题。

目前测试耗电的方案也比较多.

因为我实在不舍得拆我的手机,所以只能去研究软件方案了。但是我又不需要知道具体的耗电原因,battery-historian 这款重量级的软件就先不用了。
考虑到我只是想之前当前玩的游戏的能耗等级,就像冰箱上经常贴的能耗等级一样。方案还是简单一点好。

设计测试方案

冰箱是按照每天的耗电量,手机 App 能耗等级的话,就按照平均电流(单位 mA)来计算好了。

测试方法

准备

  • 卸载所有的应用
  • 充满电
  • 保持手机最高亮度(只是为了固定一个值,方便对比)
  • 关闭蓝牙
  • 拔掉电源,打开一个常亮 App,测试正常情况下的平均电流值

开始

  • 安装待测试 app,重新充满电。
  • 进去待测试场景,连续运行 10 分钟,记录一次电流值。

计算

app 运行时平均电流减去未安装时电流乘以电压 便是耗电功率。根据运行时电流以及电池容量可以推算出可运行时长。

电流该如何计算?

目前有两种方法

  1. 通过读取系统中的文件

    根据 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 以上的延迟,有的延迟还是动态的,实在是不怎么准。直接来看第二种方案。

  2. 通过电池电量百分比的下降速度结合电池的总容量计算出来(好是好,就是费时间)

    首先需要知道电池总的电量 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。比较符合预期,电流升高了。

考虑到时间问题,晚饭还没吃,就只测试一个游戏了。其中一把不小心吃了个鸡,嘿嘿。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

腾讯好像有自己的玩法,可以借鉴下,他们研究的挺深入,我觉得还是用关键硬件的 api 调用计算更合适。

详细的硬件调用用 battery-historian 也可以获取到,但只是感觉有点复杂,没有这个来的简单

思寒_seveniruby 将本帖设为了精华贴 12月11日 23:05

作为手机系统开发者,我想告诉你电量的百分比并不是准确的,手机显示的电量不能真实反应实际电量,所以你的这个方法只能大概看出变化,不能实时准确的监控.

wumian 回复

本意其实就是测出大概的就好了,因为手机上还运行着其他应用,就算电流仪也免不了干扰

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册