【问题标题】:Does Deep sleep really exist in Android?深度睡眠真的存在于 Android 中吗?
【发布时间】:2019-05-20 05:35:57
【问题描述】:

您好,我开始对 Android 中的深度睡眠感到好奇。因为我在搜索处理程序时在 android 文档中发现了这个术语“深度睡眠”。

public final boolean postDelayed (Runnable r, long delayMillis)

使 Runnable r 添加到消息队列中,在经过指定的时间后运行。可运行对象将在附加此处理程序的线程上运行。时基是 SystemClock.uptimeMillis()。在深度睡眠中花费的时间会增加执行的额外延迟。

所以我试图找出深度睡眠是什么,它何时发生以及在此期间发生了什么。但我找不到任何相关的官方文件,但找到了打盹模式。因此..我猜深度睡眠是采用Doze模式之前使用的一个旧术语。

我的问题是“深度睡眠真的存在于 Android 系统中吗?深度睡眠和打瞌睡有什么区别?”。还有“如果它存在,那么它什么时候发生,在深度睡眠期间会发生什么?”

感谢您阅读此问题。

【问题讨论】:

标签: android android-doze sleep-mode


【解决方案1】:

确实很难找到这方面的文档,但从可用的文档来看,通过深度睡眠,它们指的是处理器设置为可能的最低频率时的状态。

这与打瞌睡的主要区别在于对应用程序没有限制:唤醒锁仍然有效,警报仍然发生,网络仍然可用,等等。但是,如果您不持有唤醒锁,您将无法获得足够的 CPU 时间来做任何有意义的事情。深度睡眠仍然相关,因为您的系统可能未处于打盹模式,但已经处于深度睡眠状态。

【讨论】:

  • 非常感谢您的回答! :-) 嗯.. 我还有一个问题。你知道如何从任何东西(例如,dumpstate ....)知道处理器是否处于深度睡眠状态吗?我想观察这种状态并不容易,因为处理器应该是真的空闲才能成为这种状态?
  • @wannnnnnn Battery historian 可以显示 CPU 何时运行,所以我假设它不是处于深度睡眠状态的时间。如果可能的话,从应用程序内部进行检测显然很困难。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2017-09-29
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
相关资源
最近更新 更多