Android Doze模式啟用和恢復(fù)詳解
從Android 6.0(API level 23)開(kāi)始,Android提出了兩個(gè)延長(zhǎng)電池使用時(shí)間的省電特性給用戶(hù)。用戶(hù)管理可以在沒(méi)有充電的情況下管理app的行為。當(dāng)用戶(hù)一段時(shí)間沒(méi)有使用手機(jī)的時(shí)候,Doze模式通過(guò)延緩app后臺(tái)的CPU和網(wǎng)絡(luò)活動(dòng)減少電量的消耗。App Stanbdy延緩用戶(hù)最近沒(méi)有使用app的后臺(tái)網(wǎng)絡(luò)活動(dòng)。
作為移動(dòng)開(kāi)發(fā)人員,我們開(kāi)發(fā)的App需要有推送功能,不希望在鎖屏或者不充電的時(shí)候被Doze模式干掉。那么如何檢測(cè)手機(jī)進(jìn)入Doze模式之后App的狀態(tài)呢?
一、模擬未充電狀態(tài)
模擬手機(jī)在連接USB的狀態(tài)下的未充電狀態(tài)。
使用adb命令
我們先用 adb shell dumpsys battery 這段命令查看一下手機(jī)當(dāng)前的狀態(tài)

可以看到當(dāng)前手機(jī)是連接USB充電
敲入命令 adb shell dumpsys battery unplug 模擬手機(jī)未充電狀態(tài)

這時(shí)我們看到 AC powered 和 USB powered 都已經(jīng)關(guān)閉,證明模擬手機(jī)未充電狀態(tài)成功。
二、IDLE有效化
敲入命令 adb shell dumpsys deviceidle enable 讓IDLE有效化。
三、進(jìn)入IDLE模式方法
有兩種方法。
第一種是,屏幕亮著狀態(tài)按下電源按鈕關(guān)閉屏幕,敲入命令讓其進(jìn)入IDLE模式。
(注意:我們?cè)谇袚Q狀態(tài)的時(shí)候要重復(fù)輸入幾次命令,直到進(jìn)入IDLE模式。)

我們可以清晰地看到,手機(jī)在重復(fù)執(zhí)行幾次之后已經(jīng)進(jìn)入IDLE模式。證明第一種方法好用。
第二種是,敲入命令強(qiáng)制讓手機(jī)進(jìn)入IDLE模式。
敲入命令 adb shell dumpsys deviceidle force-idle

我們可以敲入命令查看并驗(yàn)證當(dāng)前手機(jī)是否已經(jīng)進(jìn)入IDLE模式
敲入命令 adb shell dumpsys deviceidle

我們可以看到手機(jī)屏幕當(dāng)前是開(kāi)啟狀態(tài),但是已經(jīng)進(jìn)入IDLE模式。證明第二種方法也好用。
四、恢復(fù)手機(jī)狀態(tài)
當(dāng)我們模擬完?duì)顟B(tài)之后要恢復(fù)回去,以便手機(jī)能夠正常使用。
敲入命令 adb shell dumpsys deviceidle disable 和 adb shell dumpsys battery reset 即可讓手機(jī)恢復(fù)狀態(tài)。再敲入 adb shell dumpsys battery 查看一下手機(jī)是否已經(jīng)恢復(fù)狀態(tài)。

我們可以看到,手機(jī)已經(jīng)從IDLE模式恢復(fù)到正常狀態(tài)。
以上所述是小編給大家介紹的Android Doze模式啟用和恢復(fù)詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
android開(kāi)發(fā)中使用java觀察者模式
遇到android程序中后入棧的一個(gè)Activity需要更新之前一個(gè)或者兩個(gè)以上Activity中的數(shù)據(jù)時(shí)使用,或者需要在adapter中修改Activity或者fragment的數(shù)據(jù)和ui等2014-02-02
Android UI實(shí)現(xiàn)廣告Banner輪播效果
這篇文章主要為大家詳細(xì)介紹了Android UI實(shí)現(xiàn)廣告Banner輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
ERROR/AndroidRuntime(17121)的問(wèn)題解決
ERROR/AndroidRuntime(17121)的問(wèn)題解決,需要的朋友可以參考一下2013-05-05
Android實(shí)現(xiàn)App中導(dǎo)航Tab欄懸浮的功能
相信大家在玩手機(jī)的過(guò)程中應(yīng)該會(huì)注意到很多的app都有這種功能,比如說(shuō)外賣(mài)達(dá)人常用的“餓了么”。所以這篇文章給大家分享了Android如何實(shí)現(xiàn)app中的導(dǎo)航Tab欄懸浮的功能,有需要的朋友們可以參考借鑒。2016-10-10
Android Studio finish()方法的使用與解決app點(diǎn)擊“返回”(直接退出)
這篇文章主要介紹了Android Studio finish()方法的使用與解決app點(diǎn)擊“返回”(直接退出),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

