Android Doze模式

时间:2017-01-05 12:15:03

标签: android

文档说:

  

如果用户将设备拔出并静止一段时间,屏幕关闭,设备将进入打盹模式。在打盹模式下,系统会通过限制应用程序来尝试节省电池电量。访问网络和CPU密集型服务。它还可以防止应用程序访问网络并延迟其作业,同步和标准警报。

究竟什么是静止的?如果电话在移动的汽车中静止不动,电话会进入打盹吗?我正在开发一个应用程序,可以将位置更新发送到服务器,如果手机进入打盹模式,则可以在汽车中进行无法完成的操作。

3 个答案:

答案 0 :(得分:3)

静止意味着字面上静止,没有陀螺仪活动,屏幕关闭,没有连接到充电器。就汽车移动而言,手机不会进入打盹模式。

Android developers: Optimizing for Doze and App Standby

答案 1 :(得分:1)

如果设备处于移动车辆的情况下,Android M打盹模式将不会被踢入。

但是在Android N中,引入了轻度打盹模式,不需要设备完全静止或等待激活。它在屏幕关闭且设备未充电后不久启动,仅等待在应用限制之前几分钟,只是为了确保用户已经停止使用他们的手机。

如果手机是Android N,它可能会进入轻度打盹模式。

答案 2 :(得分:0)

应该注意的是,Android N进一步扩展了打盹模式。对于“较轻”的打瞌睡版本,设备不需要“绝对静止” - 允许唤醒锁但限制网络访问 - 启动。

校长是要真正利用这一点,如果手机在用户的口袋中,那么它需要节省电池才能“未使用”,但可能不会静止。

原始的棉花糖'深度打瞌睡'仍然存在于N中,所以一旦手机静止了很长时间[屏幕关闭+没有充电已经符合标准]它将进入原来的打瞌睡wifi扫描和gps扫描[位置更新],唤醒锁,作业调度程序,同步适配器和网络访问受到限制。

为了回答你关于位置更新的问题,android有一个精确的运动检测传感器,可确保设备静止不动地,然后再潜入更深层次的打瞌睡。因此,对于这个特定的用例,您应该很高兴,但您仍应使用新引入的Job scheduler api进行批量更新。我确信获取位置是一个方面,您也希望将其上传到您的服务器。两种版本的打盹模式都限制了网络访问。

的引用 https://plus.google.com/+AndroidDevelopers/posts/gwA68kaVJQ8 https://www.youtube.com/watch?v=VC2Hlb22mZM