2011-08-30 128 views
2

持有cpu部分喚醒鎖的規則非常模糊。有人可以解釋何時以及爲什麼我們應該獲得一個?系統什麼時候可以決定在線程上進行一些工作時應該暫停服務?服務什麼時候進入睡眠狀態?

我想了解cpu調度程序/活動/服務管理器的詳細信息。

是android源代碼最好的地方嗎?如果是的話哪個包?

回答

3

有人可以解釋何時以及爲什麼我們應該獲得一個?

當您需要CPU保持運行以完成一些工作時,您會獲得一個。工作完成後,您可以釋放它。

因此,例如,假設您有IntentServiceAlarmManager觸發。您希望IntentService爲您的電子郵件客戶端檢查新電子郵件。你會想要獲得一個WakeLock,這樣當你處於這個過程中時,CPU就不會入睡,然後確保釋放它。這種模式是爲什麼我創建了WakefulIntentService

什麼時候系統可以決定在線程上做一些工作時應該暫停服務?

事實上,你正在做的「線程上的一些工作」是無關緊要的。 CPU將根據用戶處於非活動狀態而入睡。如果用戶不讓設備保持清醒狀態,並且您沒有讓設備保持清醒狀態,設備將會睡着。

讓CPU入睡對於功耗非常重要。比如說,如果你決定讓CPU保持全天候運行,電池將會相對快速地運行。

+0

感謝您的明確解釋。我也有興趣閱讀處理這類東西的Android平臺的源代碼。任何想法在哪裏找到它? – Erdal

+0

@Erdal:我不知道,對不起。 – CommonsWare

相關問題