android - 深度睡眠真的存在于 Android 中吗?
问题描述
嗨,我开始对 Android 中的深度睡眠感到好奇。因为我在搜索处理程序时在 android 文档中发现了这个术语“深度睡眠”。
public final boolean postDelayed (Runnable r, long delayMillis)
使 Runnable r 添加到消息队列中,在经过指定的时间后运行。可运行对象将在附加此处理程序的线程上运行。时基是 SystemClock.uptimeMillis()。在深度睡眠中花费的时间会增加执行的额外延迟。
所以我试图找出深度睡眠是什么,它何时发生以及在此期间发生了什么。但我找不到任何相关的官方文件,但找到了打盹模式。因此..我猜测深度睡眠是采用打盹模式之前使用的一个旧术语。
我的问题是“Android系统中真的存在深度睡眠吗?深度睡眠和打瞌睡有什么区别?”。还有“如果它存在,那么它什么时候发生,在深度睡眠期间会发生什么?”
感谢您阅读这个问题。
解决方案
确实很难找到这方面的文档,但从可用的文档来看,通过深度睡眠,它们指的是处理器设置为尽可能低的频率时的状态。
这与打瞌睡的主要区别在于对应用程序没有限制:唤醒锁仍然有效,警报仍然发生,网络仍然可用等等。但是,如果您不持有唤醒锁,您将无法获得足够的 CPU 时间来做任何有意义的事情。深度睡眠仍然相关,因为您的系统可能未处于打盹模式,但已经处于深度睡眠状态。
推荐阅读
- python - 如何在 MongoDB $projection 中使用 $map
- c# - 有没有办法在 C# 中获取禁用/启用的网络接口列表
- apache-spark - 火花纱:要求的容器太多
- ruby-on-rails - RoRails~5:与自定义数据库字段名称的关联
- django - 将通过 django-mailbox 获取的电子邮件恢复到 Gmail 收件箱
- python - django过滤器链式选择
- reactjs - React Redux Localize 只返回第一个字母
- node.js - 为什么 array.push() 不能正常工作?
- css - 如何修复 Flexbox 中的 marginHorizontal 属性不起作用?
- mongodb - 所有的猫鼬事件是什么,它们记录在哪里?