日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

应用后台省电秘籍——低功耗状态下应用如何正常运行?

發(fā)布時(shí)間:2025/3/21 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 应用后台省电秘籍——低功耗状态下应用如何正常运行? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

應(yīng)用退居后臺(tái),如何在低功耗的情況下保證任務(wù)正常運(yùn)行?本文華為軟件功耗專家黃文將分享議題——應(yīng)用后臺(tái)功耗經(jīng)驗(yàn)。

本文將從安卓綠色聯(lián)盟功耗標(biāo)準(zhǔn)2.0、谷歌后臺(tái)功耗方案、華為后臺(tái)功耗方案以及開(kāi)發(fā)者資源使用建議和檢測(cè)工具五大方面進(jìn)行全面講解。

安卓綠色聯(lián)盟功耗標(biāo)準(zhǔn)2.0

《安卓綠色聯(lián)盟應(yīng)用體驗(yàn)標(biāo)準(zhǔn)2.0---功耗標(biāo)準(zhǔn)》詳細(xì)介紹了應(yīng)用后臺(tái)軟資源和硬資源的使用標(biāo)準(zhǔn),查看詳情請(qǐng)?jiān)L問(wèn)安卓綠色聯(lián)盟官網(wǎng)。

谷歌后臺(tái)功耗方案

谷歌從Android M開(kāi)始著力改善終端的續(xù)航表現(xiàn)。Android版本在演進(jìn)中主要提供如下幾個(gè)方案。

1.后臺(tái)位置限制:

對(duì)后臺(tái)應(yīng)用獲取用戶當(dāng)前位置的頻率進(jìn)行限制。

相關(guān)鏈接:https://developer.android.goo...

2.后臺(tái)服務(wù)限制:

限制應(yīng)用在后臺(tái)運(yùn)行服務(wù),并禁止應(yīng)用通過(guò)隱藏/不可見(jiàn)方式調(diào)用 CPU 或網(wǎng)絡(luò)資源。

相關(guān)鏈接:https://developer.android.goo...

3.后臺(tái)限制:

當(dāng)系統(tǒng)檢測(cè)到應(yīng)用出現(xiàn)不良行為時(shí),系統(tǒng)會(huì)向用戶詢問(wèn)是否要限制該應(yīng)用在后臺(tái)訪問(wèn)設(shè)備資源。

相關(guān)鏈接:https://developer.android.goo...

4.谷歌后臺(tái)功耗方案-Doze(低耗電模式和應(yīng)用待機(jī)模式)

谷歌在Android M版本引入了Doze方案,此方案主要針對(duì)后臺(tái)應(yīng)用在沒(méi)有活動(dòng)的情況下做某些限制。設(shè)備未充電且屏幕關(guān)閉處于空閑狀態(tài)一段時(shí)間后,系統(tǒng)會(huì)進(jìn)入低耗電或者應(yīng)用待機(jī)模式,對(duì)應(yīng)用行為施加相應(yīng)限制。

相關(guān)鏈接:https://developer.android.goo...

如圖所示,以下是Doze模式各狀態(tài)說(shuō)明:

ACTIVE: 設(shè)備活動(dòng)態(tài)

INACTIVE:設(shè)備不活躍(滅屏、不運(yùn)動(dòng)) 等待進(jìn)入idle.

IDLE_PENDING: 設(shè)備準(zhǔn)備進(jìn)入下一階段

SENSING: 傳感器檢測(cè)設(shè)備是否運(yùn)動(dòng)

LOCATING: 設(shè)備位置變化.

IDLE: 設(shè)備進(jìn)入idle,并盡量長(zhǎng)時(shí)間保持該狀態(tài)

IDLE_MAINTENANCE: 退出idle進(jìn)入“維護(hù)期”

谷歌還引入了Light-Doze(Android N)和Deep-Doze(Android M)的概念,具體內(nèi)容如下:

5.應(yīng)用待機(jī)群組

應(yīng)用待機(jī)群組對(duì)應(yīng)用進(jìn)行分組管理,不同的分組享有不同的權(quán)限設(shè)置,杜絕了對(duì)應(yīng)用一刀切的現(xiàn)象。

相關(guān)鏈接:https://developer.android.goo...

應(yīng)用待機(jī)分組:

1)活躍 (Active): 應(yīng)用正在被使用

2)工作 (Working set): 應(yīng)用使用頻率很高

3)常用 (Frequent): 應(yīng)用經(jīng)常但不是每天被使用

4)極少 (Rare): 應(yīng)用偶爾被使用

5)從不(Never):安裝后一次都未被使用過(guò)的應(yīng)用

分組策略:

調(diào)試:

通過(guò)adb命令將應(yīng)用手動(dòng)劃分至某一待機(jī)群組。輸入以下命令,更改群組:

$ adb shell am set-standby-bucket packagename active/working_set/frequent/rare

輸入以下命令,查看應(yīng)用所處群組:

$ adb shell am get-standby-bucket [packagename]

為促進(jìn)用戶體驗(yàn),谷歌對(duì)應(yīng)用在后臺(tái)狀態(tài)下的建議如下:

華為后臺(tái)功耗方案

1.華為的功耗方案,主要是在谷歌的基礎(chǔ)上對(duì)應(yīng)用的異常行為進(jìn)行監(jiān)控,通過(guò)智電機(jī)器人,識(shí)別后臺(tái)應(yīng)用的行為是正常耗電還是異常耗電。

2.華為的優(yōu)化分為主動(dòng)優(yōu)化和異常防護(hù)。

主動(dòng)優(yōu)化在谷歌運(yùn)行方案的基礎(chǔ)上增加了冷凍方案,應(yīng)用退到后臺(tái)后,在沒(méi)有用戶可感知狀態(tài)和活動(dòng)下,將應(yīng)用所占用的資源包括CPU、軟硬件資源等全部暫停。一旦應(yīng)用需要運(yùn)行,資源會(huì)啟動(dòng)恢復(fù)流程,這就是主動(dòng)優(yōu)化。

華為的盾防系統(tǒng)會(huì)監(jiān)控所有后臺(tái)資源消耗情況,在用戶未感知的情況下,一旦資源消耗超過(guò)華為功耗紅線標(biāo)準(zhǔn),便會(huì)發(fā)出高耗電提醒,這就是華為的異常防護(hù)。

具體紅線標(biāo)準(zhǔn)請(qǐng)參考《安卓綠色聯(lián)盟應(yīng)用體驗(yàn)標(biāo)準(zhǔn)2.0---功耗標(biāo)準(zhǔn)》,標(biāo)準(zhǔn)包括持鎖阻止系統(tǒng)休眠、alarm頻繁喚醒系統(tǒng)、后臺(tái)CPU高負(fù)載耗電、長(zhǎng)時(shí)間網(wǎng)絡(luò)定位等。

3.華為低功耗Power kit包括PUSH+NC和Bastet鏈路托管技術(shù)。

應(yīng)用推送遠(yuǎn)程通知,可以使用華為PUSH NC。

相關(guān)鏈接:

https://developer.huawei.com/...

應(yīng)用保持長(zhǎng)鏈接,可以接入華為鏈路托管技術(shù)Bastet.

相關(guān)鏈接:

https://developer.huawei.com/...

開(kāi)發(fā)者資源使用建議

1.定時(shí)任務(wù)

推薦綠色機(jī)制:

  • 本地高頻任務(wù),建議使用Handler機(jī)制;
  • 本地低頻定時(shí)任務(wù),建議使用AlarmManager的set()和setInexactRepeating()方法分別處理單次和循環(huán)多次的調(diào)用;
  • 特定條件(網(wǎng)絡(luò)、充電),可延遲定時(shí)任務(wù),推薦JobScheduler/WorkManager。

2.網(wǎng)絡(luò)

推薦綠色機(jī)制:

  • 避免頻繁、零散的網(wǎng)絡(luò)請(qǐng)求,推薦統(tǒng)一批量網(wǎng)絡(luò)請(qǐng)求;
  • 避免在低電量、弱網(wǎng)絡(luò)、移動(dòng)網(wǎng)絡(luò)執(zhí)行過(guò)多的網(wǎng)絡(luò)請(qǐng)求,在充電、wifi網(wǎng)絡(luò)下進(jìn)行大數(shù)據(jù)量請(qǐng)求;
  • 應(yīng)用離開(kāi)界面或進(jìn)入后臺(tái)及時(shí)關(guān)閉不再使用的TCP鏈接,避免出現(xiàn)大量未關(guān)閉狀態(tài)TCP鏈接。

3.Wakelock

推薦綠色機(jī)制:

  • 確保喚醒鎖不再需要時(shí)立即釋放;
  • 申請(qǐng)和釋放必須成對(duì)出現(xiàn);
  • 推薦使用超時(shí)鎖acquire(timeout),提前結(jié)束后主動(dòng)釋放超時(shí)鎖。

資源使用檢測(cè)工具

1.Battery Historian

相關(guān)鏈接:https://developer.android.goo...

  • AT&T Application Resource Optimizer
  • 擅長(zhǎng)于網(wǎng)絡(luò)跟蹤

    相關(guān)鏈接:

    https://developer.att.com/app...

  • Android vitals
  • 對(duì)過(guò)度喚醒、wifi掃描、網(wǎng)絡(luò)使用、長(zhǎng)時(shí)間持喚醒鎖、進(jìn)行監(jiān)控,并輸出報(bào)告

    相關(guān)鏈接:https://developer.android.goo...

    總結(jié)

    為保證應(yīng)用在低功耗的情況下能夠正常的運(yùn)行任務(wù),建議使用如下方案:

    1.研發(fā)階段:

    1)推送遠(yuǎn)程通知消息,需使用FCM或華為PUSH NC。

    2)保持長(zhǎng)鏈接心跳,需使用華為Modem鏈路托管技術(shù)(華為Bastet)

    3)用戶觸發(fā)的后臺(tái)業(yè)務(wù),需使用前臺(tái)服務(wù)+常駐通知。

    • 后臺(tái)下載、播放音樂(lè)、錄音、導(dǎo)航、計(jì)步、騎行記錄軌跡、同步照片等。
    • 讓用戶能夠感知到(可見(jiàn)、可聽(tīng)),包括聲音、通知欄、widget提示等。

    4)非用戶觸發(fā)可推遲的任務(wù),需使用JobScheduler/WorkManager。

    • 需在充電、Wifi環(huán)境、Doze窗口期進(jìn)行。
    • 禁止在低電量(<30%)、省電模式、長(zhǎng)待機(jī)(滅屏超過(guò)30min)、夜間(0:00~6:00)進(jìn)行。

    5)合理使用Alarm,Wakelock,Network,GPS等軟硬資源。

    • 統(tǒng)一使用,避免頻繁使用。
    • 按需使用,及時(shí)釋放。

    2.測(cè)試驗(yàn)收:

    借助工具,使用battery-historian、 ARO、Android vitals分析運(yùn)行時(shí)和長(zhǎng)待機(jī)情況。

    3.禁止行為:

    惡意保活,包括無(wú)聲播放、一像素界面、低流量下載等。

    關(guān)注安卓綠色聯(lián)盟公眾號(hào),回復(fù)“2304”獲取PPT

    總結(jié)

    以上是生活随笔為你收集整理的应用后台省电秘籍——低功耗状态下应用如何正常运行?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。