我有关于Android打盹模式(Android N [deep Doze]和M)的问题。根据Android官方文档,一旦设备进入休眠模式,它就会停止通过GPS或网络接收位置更新。
要退出休眠模式,屏幕打开或电源插入。但是
呢?1)如果移动设备但屏幕保持关闭,则处于休眠模式。移动时设备会退出休眠模式吗?
2)在瞌睡模式下,陀螺仪或加速度计等传感器是否工作或也停止了?
- 当然,设备将离开休眠模式。因为在Android的打盹文档中,只有当设备处于静止状态时,设备才会处于打盹模式。
-
有两种类型的传感器
- 唤醒传感器:确保它们的数据独立于SoC的状态交付。
- 非唤醒传感器:不阻止SoC进入挂起模式,也不唤醒SoC报告数据。
加速度计和陀螺仪是非唤醒传感器,因此它们将被停止。
这是一个非常好的问题。首先,要知道瞌睡模式有两种状态:轻度和深度。
1)这是可能的。首先使用"step"命令进入深度休眠模式,将状态设置为idle_maintenance。然后直接摇晃你的手机。如果您打印历史记录(参见下面的命令),您将看到如下内容:
- 深度空闲:-23s222ms
- 深度维护:-16s621ms
- 正常:-12s431ms(运动)
2)当使用adb强制休眠模式时,传感器仍在进行采集。那是肯定的。但仍然不确定这种强制模式是否与让设备自行进入休眠模式完全相似。
这些是我用来进入深度睡眠模式的命令。
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step deep
[... each time you change the state of deep mode - several states]
adb shell dumpsys battery reset
您还可以通过输入以下命令来检查瞌睡模式的参数和历史记录:
adb shell dumpsys deviceidle