由於要做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
