Android后台的linux一直保持喚醒狀態,不進入睡眠


  由於要做Android手機的電池續航測試,是不能插usb的,所以把case放到sh文件中,之后push到手機里,執行的。

但是出現個問題,假如case中有很長時間的sleep操作,關閉手機屏幕,這樣linux就會進入睡眠狀態,暫停代碼的執行。

直到手動按power鍵點亮屏幕,這時繼續從暫停狀態執行。這嚴重影響自動化測試,所以以下是讓手機即使黑屏也不進入睡眠模式的兩種辦法:

第一種是通過java代碼實現的:

 1 //先定義一個mWakeLock
 2 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 3 
 4 mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this
 5 
 6                 .getClass().getName());
 7 
 8  
 9 
10 //一直保持喚醒的話,就調用
11 
12 mWakeLock.acquire();
13 
14 
15 
16  //恢復正常睡眠
17 
18 mWakeLock.release();

第二種比較簡單,是通過adb命令實現的:

在adb shell端,往/sys/power/wake_lock寫進一個變量,就能讓linux一直喚醒,黑屏也不會睡眠。

echo aaa > /sys/power/wake_lock

關閉一直喚醒,把剛才的值寫進/sys/power/wake_unlock即可
echo aaa > /sys/power/wake_unlock

 


免責聲明!

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



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