最近比較喜歡玩手機上的吃雞遊戲,不過玩著玩著手機經常性的發熱,耗電也快的飛起。但是如何描述耗電的水平是個比較頭疼的問題。
目前測試耗電的方案也比較多.
電流儀:這個需要拆手機
軟體方案:不需要拆手機的
詳解 Android 耗電量 API(https://testerhome.com/topics/3503)
Android 獲取詳細功耗(https://testerhome.com/topics/10098)
搬運:Battery Historian 2.0(https://testerhome.com/topics/3733)
深入淺出 Android App 耗電量統計(https://testerhome.com/topics/2331)
因為我實在不捨得拆我的手機,所以只能去研究軟體方案了。但是我又不需要知道具體的耗電原因,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。比較符合預期,電流升高了。
考慮到時間問題,晚飯還沒吃,就只測試一個遊戲了。其中一把不小心吃了個雞,嘿嘿。