看板 AndroidDev 關於我們 聯絡資訊
寶傑好 大家好 各位版友午安 最近在研究android的休眠狀態 爬了網路上的文章之後,大部分都是歸類下列三種狀態 USER_AWAKE, //Full on status USER_NOTIFICATION, //Early suspended driver but CPU keep on USER_SLEEP // CPU enter sleep mode 平時使用者操作時都是在AWAKE 狀態下 當按下螢幕鎖,或者休眠時間一到,會先進入notification模式 之後會查看有沒有app使用 wake lock 當所有 wake lock都釋放之後,系統才會真正進入休眠 當系統偵測到Wakeup source之後才會回到AWAKE狀態 -------------------以上為目前做功課得知的知識 那我的問題如下: 何者為Wakeup source ??? 當使用者按下電源鍵 = 觸發Wakeup source ?? 來電時會觸發Wakeup source ??? 使用者按下電源鍵會觸發這完全可以理解 但是來電時也會喚醒手機 那不就代表著手機根本沒有休眠嗎... 因為接通電話的APP可能一直使用PARTIAL WAKE LOCK ?? 想請教各位何種狀態下,才算真正進入休眠 而那些訊號算是wakeup source呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.2.55
chiel:Radio side is another cpu. So application cpu can sleep. 02/17 23:26
issuemylove:可以請問一下我寫了一個app有接線看DDMS的時候 02/18 17:32
issuemylove:它運行是正常的,但是拔掉usb線運行就會掛掉 02/18 17:32
issuemylove:這會是跟手機休眠有關係嗎? 02/18 17:33
issuemylove:或是這兩個情況有甚麼差異? (運行都是有壓電源鍵) 02/18 17:33
likecyndi:如果是你寫一個app~然後有插著usb的話 系統應該不進入 02/18 18:04
likecyndi:真正的suspend,這時候應該有wakelock 頂多到earlysuspe 02/18 18:05
likecyndi:但是你拔掉USB的時候 系統沒有wakelock 所以會suspend 02/18 18:06
likecyndi:系統都進入suspend了 你的app自然就沒辦法運行 02/18 18:06
issuemylove:可是我的app本身就有寫 wake lock 呢? 02/18 18:46
issuemylove:還是說系統的 wake lock比較猛? 02/18 18:46
likecyndi:你可以從sys/power/wakelock底下check 02/18 19:27
likecyndi:照理說 只要有wakelock就不會suspend 所以你的意思是 02/18 19:30
likecyndi:你有註冊wakelock系統仍然可以進suspend嗎? 02/18 19:31
chiel:插usb會拉住wake lock沒錯 02/18 22:31
chiel:你可以用adb shell dumpsys power | grep WAKE_LOCK 02/18 22:31
chiel:去看當下是不是有人拉住 02/18 22:32