android设备什么时候进入睡眠模式?

我正在搜索SO和网络,但我找不到足够的答案来解决我的问题。 好的,我们走了:

每个用户都可以在android上修改屏幕超时。 (当屏幕空闲时关闭__秒/分钟 – 用户选择)。 但是用户只能修改屏幕超时,而不能在设备实际进入睡眠状态时修改。 我在这里发现了当设备进入睡眠状态时会发生什么:( CommonsWare非常好的答案) Android睡眠/待机模式

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

Solutions Collecting From Web of "android设备什么时候进入睡眠模式?"

您永远无法确定设备是否已进入睡眠状态。 充其量,我可以给你一个列表,确保设备没有进入睡眠状态:

  • 屏幕打开 – 需要CPU和GPU,因此RAM保持活动状态
  • 任何持有唤醒锁的应用程序 – 即使最低的唤醒锁也可以保持CPU开启,但屏幕可能会关闭

除此之外,即使没有握挂唤醒锁,也无法保证设备在屏幕关闭后n秒钟进入睡眠状态。 这取决于OEM,他们可以改变这一点。

请记住,Android设备可以选择在屏幕进入睡眠状态后将设备解锁一段时间。

将手机与笔记本电脑进行比较时,功耗会有很小的差异。 笔记本电脑大多数时候通过充电器直接供电。 (大部分我们带笔记本电脑)。 手机主要使用电池供电。 (我们很少带充电器)。

通过记住这一点,Android设计的方式是,如果用户没有与手机交互,手机将不会消耗电池电量。 这是为了增加用户的电池备用时间。

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

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

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

你的问题 :我怎么知道我的手机何时会入睡? – Ans :简单,当LCD电源关闭时,它会进入睡眠模式,只需几秒钟。

您的问题 :特定设备的睡眠模式与品牌设备不同 – :由于Android是开源的,任何OEM都可以采用驱动程序层,这是GPU许可证并且可以修改电源管理器驱动器以表现不同。 所有这些睡眠模式和唤醒锁最终都在Linux内核层的Power Manager驱动程序的控制之下。

要在Android 6.0中测试睡眠模式/打瞌睡,您应该使用下一个命令:

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

更多信息请参见此处: 针对Doze和App Standby进行优化