應用退居後台,如何在低功耗的情況下保證任務正常執行?本文華為軟體功耗專家黃文將分享議題——應用後台功耗經驗。
本文將從安卓綠色聯盟功耗標準2.0、谷歌後台功耗方案、華為後台功耗方案以及開發者資源使用建議和檢測工具五大方面進行全面講解。
安卓綠色聯盟功耗標準2.0
谷歌後台功耗方案
谷歌從android m開始著力改善終端的續航表現。android版本在演進中主要提供如下幾個方案。
1.後台位置限制:
對後台應用獲取使用者當前位置的頻率進行限制。
2.後台服務限制:
限制應用在後台執行服務,並禁止應用通過隱藏/不可見方式呼叫 cpu 或網路資源。
3.後台限制:
當系統檢測到應用出現不良行為時,系統會向使用者詢問是否要限制該應用在後台訪問裝置資源。
4.谷歌後台功耗方案-doze(低耗電模式和應用待機模式)
谷歌在android m版本引入了doze方案,此方案主要針對後台應用在沒有活動的情況下做某些限制。裝置未充電且螢幕關閉處於空閒狀態一段時間後,系統會進入低耗電或者應用待機模式,對應用行為施加相應限制。
如圖所示,以下是doze模式各狀態說明:
active: 裝置活動態
inactive:裝置不活躍(滅屏、不運動) 等待進入idle.
idle_pending: 裝置準備進入下一階段
sensing: 感測器檢測裝置是否運動
locating: 裝置位置變化.
idle: 裝置進入idle,並盡量長時間保持該狀態
idle_maintenance: 退出idle進入「維護期」
谷歌還引入了light-doze(android n)和deep-doze(android m)的概念,具體內容如下:
5.應用待機群組
應用待機群組對應用進行分組管理,不同的分組享有不同的許可權設定,杜絕了對應用一刀切的現象。
應用待機分組:
1)活躍 (active): 應用正在被使用
2)工作 (working set): 應用使用頻率很高
3)常用 (frequent): 應用經常但不是每天被使用
4)極少 (rare): 應用偶爾被使用
5)從不(never):安裝後一次都未被使用過的應用
分組策略:
除錯:通過adb命令將應用手動劃分至某一待機群組。輸入以下命令,更改群組:
$ adb shell am set-standby-bucket packagename active/working_set/frequent/rare
輸入以下命令,檢視應用所處群組:
$ adb shell am get-standby-bucket [packagename]
為促進使用者體驗,谷歌對應用在後台狀態下的建議如下:
華為後台功耗方案
1.華為的功耗方案,主要是在谷歌的基礎上對應用的異常行為進行監控,通過智電機械人,識別後台應用的行為是正常耗電還是異常耗電。
2.華為的優化分為主動優化和異常防護。
主動優化在谷歌執行方案的基礎上增加了冷凍方案,應用退到後台後,在沒有使用者可感知狀態和活動下,將應用所占用的資源包括cpu、軟硬體資源等全部暫停。一旦應用需要執行,資源會啟動恢復流程,這就是主動優化。
華為的盾防系統會監控所有後台資源消耗情況,在使用者未感知的情況下,一旦資源消耗超過華為功耗紅線標準,便會發出高耗電提醒,這就是華為的異常防護。
具體紅線標準請參考《安卓綠色聯盟應用體驗標準2.0---功耗標準》,標準包括持鎖阻止系統休眠、alarm頻繁喚醒系統、後台cpu高負載耗電、長時間網路定位等。
3.華為低功耗power kit包括push+nc和bastet鏈路託管技術。
應用推送遠端通知,可以使用華為push nc。
應用保持長鏈結,可以接入華為鏈路託管技術bastet.
開發者資源使用建議
1.定時任務
2.網路
資源使用檢測工具
1.battery historian
擅長於網路跟蹤
android vitals
對過度喚醒、wifi掃瞄、網路使用、長時間持喚醒鎖、進行監控,並輸出報告
總結為保證應用在低功耗的情況下能夠正常的執行任務,建議使用如下方案:
1.研發階段:
1)推送遠端通知訊息,需使用fcm或華為push nc。
2)保持長鏈結心跳,需使用華為modem鏈路託管技術(華為bastet)
3)使用者觸發的後台業務,需使用前台服務+常駐通知。
讓使用者能夠感知到(可見、可聽),包括聲音、通知欄、widget提示等。
4)非使用者觸發可推遲的任務,需使用jobscheduler/workmanager。
5)合理使用alarm,wakelock,network,gps等軟硬資源。
2.測試驗收:
借助工具,使用battery-historian、 aro、android vitals分析執行時和長待機情況。
3.禁止行為:
應用後台省電秘籍 低功耗狀態下應用如何正常執行?
應用退居後台,如何在低功耗的情況下保證任務正常執行?本文華為軟體功耗專家黃文將分享議題 應用後台功耗經驗。本文將從安卓綠色聯盟功耗標準2.0 谷歌後台功耗方案 華為後台功耗方案以及開發者資源使用建議和檢測工具五大方面進行全面講解。安卓綠色聯盟功耗標準2.0 谷歌後台功耗方案 谷歌從android m...
應用後台省電秘籍 低功耗狀態下應用如何正常執行?
應用退居後台,如何在低功耗的情況下保證任務正常執行?本文華為軟體功耗專家黃文將分享議題 應用後台功耗經驗。本文將從安卓綠色聯盟功耗標準2.0 谷歌後台功耗方案 華為後台功耗方案以及開發者資源使用建議和檢測工具五大方面進行全面講解。安卓綠色聯盟功耗標準2.0 谷歌後台功耗方案 谷歌從android m...
應用前台省電秘籍 這些常見功耗雷坑不要再跳了
使用應用時,有時會出現掉電快 卡頓 過度發熱等問題,影響使用者體驗的同時,也嚴重影響了應用使用時長和使用者留存,如何解決上述問題?本文華為顯示流程功耗優化專家王文華將分享議題 低功耗前台顯示。手機器件包括soc tp modem gps audio camer等主要器件,這些器件在使用時對功耗的影響...