持有cpu部分喚醒鎖的規則非常模糊。有人可以解釋何時以及爲什麼我們應該獲得一個?系統什麼時候可以決定在線程上進行一些工作時應該暫停服務?服務什麼時候進入睡眠狀態?
我想了解cpu調度程序/活動/服務管理器的詳細信息。
是android源代碼最好的地方嗎?如果是的話哪個包?
持有cpu部分喚醒鎖的規則非常模糊。有人可以解釋何時以及爲什麼我們應該獲得一個?系統什麼時候可以決定在線程上進行一些工作時應該暫停服務?服務什麼時候進入睡眠狀態?
我想了解cpu調度程序/活動/服務管理器的詳細信息。
是android源代碼最好的地方嗎?如果是的話哪個包?
有人可以解釋何時以及爲什麼我們應該獲得一個?
當您需要CPU保持運行以完成一些工作時,您會獲得一個。工作完成後,您可以釋放它。
因此,例如,假設您有IntentService
由AlarmManager
觸發。您希望IntentService
爲您的電子郵件客戶端檢查新電子郵件。你會想要獲得一個WakeLock
,這樣當你處於這個過程中時,CPU就不會入睡,然後確保釋放它。這種模式是爲什麼我創建了WakefulIntentService
。
什麼時候系統可以決定在線程上做一些工作時應該暫停服務?
事實上,你正在做的「線程上的一些工作」是無關緊要的。 CPU將根據用戶處於非活動狀態而入睡。如果用戶不讓設備保持清醒狀態,並且您沒有讓設備保持清醒狀態,設備將會睡着。
讓CPU入睡對於功耗非常重要。比如說,如果你決定讓CPU保持全天候運行,電池將會相對快速地運行。
感謝您的明確解釋。我也有興趣閱讀處理這類東西的Android平臺的源代碼。任何想法在哪裏找到它? – Erdal
@Erdal:我不知道,對不起。 – CommonsWare