Android性能優化(八)電量優化

一、耗電量

  手機各個硬件模塊的耗電量是不一樣的,有些模塊非常耗電比如移動蜂窩網絡、GPS,而有些模塊則相對顯得耗電量小很多。

  電量測試,就是測試移動設備電量消耗快慢的一種測試方法。一般用平均電流來衡量電量消耗速度。平均電流越小,說明設備使用時間越長。但是平均電流多大才說明不耗電卻沒有一個統一標準。

 

硬件測試:

  利用硬件設備測試被測設備的電流,統計一段時間內(使用某個功能模塊)的平均電流值。

 

軟件測試

  利用系統工具導出分析報告  

 

  二、Battery Historian

Battery Historian是google開源的電池歷史數據分析工具。

https://github.com/google/battery-historian

bugreport

 

導出分析數據 

對於SDK25開始 bugreport 必須在7.0以上設備才能使用。

下載舊版本:

http://mirrors.zzu.edu.cn/android/repository/

如:下載r20的platform-tools

 

 

參考文章:

https://blog.csdn.net/ykmeory/article/details/90552856

https://blog.csdn.net/weixin_30318645/article/details/94818141

 

三、優化建議

後臺處理三個原則:

  1、減少;我們需要減少後臺處理

  2、延遲;當設備充電時候再去執行

  3、合併;把多個處理任務合併在一起。

 

1、注意wakelock,根據情況可以使用Jobscheduler/Alarm替代

  

2、及時關閉不再需要的功能,如GPS、網絡請求超時設置

 

3、在使用wifi/充電狀態下執行某些任務

  JobScheduler、主動/被動獲取狀態

 

四、Doze

https://developer.android.google.cn/training/monitoring-device-state/doze-standby.html?hl=zh-cn

Android 6.0 “打盹兒”

進入條件

  設備未插接電源

  處於靜止狀態一段時間

  屏幕關閉

 

五、Standby

未主動使用應用、一段時間未觸摸應用進入

 

以下情況不會進入:

  用戶顯式啓動應用。

  應用當前有一個進程位於前臺(表現爲 Activity 或前臺服務形式,或被另一 Activity 或前臺服務佔用)。

  應用生成用戶可在鎖屏或通知托盤中看到的通知。

 

通過運行以下命令強制應用進入應用待機模式:

  $ adb shell dumpsys battery unplug

  $ adb shell am set-inactive <packageName> true

 

 

使用以下命令模擬喚醒應用:

  $ adb shell am set-inactive <packageName> false

  $ adb shell am get-inactive <packageName>

 

六、白名單

強制系統在低電耗模式之間循環切換:

  $ adb shell dumpsys battery unplug

  $ adb shell dumpsys deviceidle step

<uses-permission-sdk-23 
android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章