Android Doze模式啟用和恢復


博客已遷移至簡書:https://www.jianshu.com/p/445efcc6345d

 

轉載請注明出處: http://www.cnblogs.com/cnwutianhao/p/6638492.html 

 

從Android 6.0(API level 23)開始,Android提出了兩個延長電池使用時間的省電特性給用戶。用戶管理可以在沒有充電的情況下管理app的行為。當用戶一段時間沒有使用手機的時候,Doze模式通過延緩app后台的CPU和網絡活動減少電量的消耗。App Stanbdy延緩用戶最近沒有使用app的后台網絡活動。

作為移動開發人員,我們開發的App需要有推送功能,不希望在鎖屏或者不充電的時候被Doze模式干掉。那么如何檢測手機進入Doze模式之后App的狀態呢?

 

一、模擬未充電狀態

模擬手機在連接USB的狀態下的未充電狀態。

使用adb命令

我們先用 adb shell dumpsys battery 這段命令查看一下手機當前的狀態

可以看到當前手機是連接USB充電

敲入命令 adb shell dumpsys battery unplug 模擬手機未充電狀態

這時我們看到 AC powered 和 USB powered 都已經關閉,證明模擬手機未充電狀態成功。

 

二、IDLE有效化

敲入命令 adb shell dumpsys deviceidle enable 讓IDLE有效化。

 

三、進入IDLE模式方法

有兩種方法。

第一種是,屏幕亮着狀態按下電源按鈕關閉屏幕,敲入命令讓其進入IDLE模式。

(注意:我們在切換狀態的時候要重復輸入幾次命令,直到進入IDLE模式。)

我們可以清晰地看到,手機在重復執行幾次之后已經進入IDLE模式。證明第一種方法好用。

 

第二種是,敲入命令強制讓手機進入IDLE模式。

敲入命令 adb shell dumpsys deviceidle force-idle

我們可以敲入命令查看並驗證當前手機是否已經進入IDLE模式

敲入命令 adb shell dumpsys deviceidle

我們可以看到手機屏幕當前是開啟狀態,但是已經進入IDLE模式。證明第二種方法也好用。

 

四、恢復手機狀態

當我們模擬完狀態之后要恢復回去,以便手機能夠正常使用。

敲入命令 adb shell dumpsys deviceidle disable 和 adb shell dumpsys battery reset 即可讓手機恢復狀態。再敲入 adb shell dumpsys battery 查看一下手機是否已經恢復狀態。

我們可以看到,手機已經從IDLE模式恢復到正常狀態。

 

關注我的新浪微博,獲取更多Android開發資訊!
關注科技評論家,領略科技、創新、教育以及最大化人類智慧與想象力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM