Android设备何时进入睡眠模式?

我正在search和networking,但我无法find足够的答案,我的特定问题。 好的,我们走吧:

每个用户都可以在android上修改屏幕超时。 (当屏幕closures__秒/分钟的空闲时间 – 用户select)。 但用户可以修改只有屏幕超时,而不是设备实际上睡觉时。 我在这里发现当设备进入睡眠状态时会发生什么:(由CommonsWare真的很好的答案) Android睡眠/待机模式

好吧,我的问题很简单。 我怎么知道我的手机什么时候睡觉? 关掉屏幕后会立即睡觉吗? 屏幕closures后,它会保持“清醒”状态吗? 最重要的是:特定设备的睡眠模式与品牌设备(制造商如何实现这一点)有所不同,或者取决于ROM版本(例如,所有ICS供电的设备将在屏幕closures后X秒钟hibernate)?

Solutions Collecting From Web of "Android设备何时进入睡眠模式?"

你永远不能确定设备是否已经入睡。 充其量,我可以给你一个确保设备没有进入睡眠状态的清单:

  • 正在开启屏幕 – 需要CPU和GPU,因此需要RAM保持活动状态
  • 任何应用程序持有一个唤醒锁 – 即使最低的唤醒锁保持CPU,虽然屏幕可能被closures

除此之外,不能保证在屏幕closures后的n秒钟内设备将会进入睡眠状态,即使没有持有唤醒锁。 这是OEM,他们可以改变这一点。

请记住,Android设备有一个选项,可以在屏幕进入睡眠状态后让设备解锁一定的时间。

当您将手机与笔记本电脑进行比较时,功耗差别不大。 笔记本电脑大部分时间都是通过充电器直接供电的。 (大多数我们携带笔记本电脑)。 手机主要靠电池供电。 (我们很less携带充电器)。

考虑到这一点,androiddevise的方式是,如果用户没有与手机进行交互,手机将不会消耗电池电量。 这是为了增加用户的电池备份时间。

这就是为什么当LCD屏幕电源closures(这意味着用户不与手机交互),在几秒钟内,CPU也将进入一个模式(睡眠模式),在那里它做最小的工作,并节省电池电量。 当CPU处于睡眠模式时,它仅接受来自RIL(无线电接口层)的命令,该命令基本上是SMS和呼叫function以及警报。 除此之外,CPU将停止执行其他应用程序function。

注意:如果任何应用程序在CPU处于睡眠模式时需要CPU时间进行紧急工作,则可以使用WAKE LOCKS来请求CPU时间。

例如:即使用户closures了LCD屏幕,MP3应用程序也必须继续播放歌曲。 这意味着MP3应用程序的服务通过使用WAKE LOCKS来请求CPU时间。

你的问题 :我怎么知道我的手机什么时候会睡觉? – 答案 :简单,当液晶电源closures时,进入睡眠模式,以秒为单位。

您的问题 :特定设备的睡眠模式是否因品牌而异? 回答 :由于android是开源的,任何OEM都可以采用驱动程序层,这是GPU许可证,可以修改电源pipe理器驱动器的行为。 所有这些睡眠模式和唤醒锁终于在Linux内核层的Power Manager驱动程序的控制之下。

为了在Android 6.0中testing睡眠模式/打盹,你应该使用下面的命令:

 $ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step 

更多信息请参阅此处: 优化打盹和应用程序待机