2011-08-30 76 views
2

持有cpu部分唤醒锁的规则非常模糊。有人可以解释何时以及为什么我们应该获得一个?系统什么时候可以决定在线程上进行一些工作时应该暂停服务?服务什么时候进入睡眠状态?

我想了解cpu调度程序/活动/服务管理器的详细信息。

是android源代码最好的地方吗?如果是的话哪个包?

回答

3

有人可以解释何时以及为什么我们应该获得一个?

当您需要CPU保持运行以完成一些工作时,您会获得一个。工作完成后,您可以释放它。

因此,例如,假设您有IntentServiceAlarmManager触发。您希望IntentService为您的电子邮件客户端检查新电子邮件。你会想要获得一个WakeLock,这样当你处于这个过程中时,CPU就不会入睡,然后确保释放它。这种模式是为什么我创建了WakefulIntentService

什么时候系统可以决定在线程上做一些工作时应该暂停服务?

事实上,你正在做的“线程上的一些工作”是无关紧要的。 CPU将根据用户处于非活动状态而入睡。如果用户不让设备保持清醒状态,并且您没有让设备保持清醒状态,设备将会睡着。

让CPU入睡对于功耗非常重要。比如说,如果你决定让CPU保持全天候运行,电池将会相对快速地运行。

+0

感谢您的明确解释。我也有兴趣阅读处理这类东西的Android平台的源代码。任何想法在哪里找到它? – Erdal

+0

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

相关问题