当前位置: 首页 > news >正文

AOSP的Doze模式-LightIdle初识

前言

从Android 6.0开始,谷歌引入了Doze模式(打盹模式)的省电技术延长电池使用时间。根据第三方测试显示,两台同样的Nexus 5,开启的Doze的一台待机能达到533小时,而未开启Doze的一台待机只能达到200小时。Doze省电效果十分明显。

Doze省电技术原理

Doze模式细分light idle和deep idle,本文主要介绍light idle

操作

低电耗模式-deep idle

轻度低电耗模式-light idle

触发器

屏幕关闭、电池供电(未插电)、静止

屏幕关闭、电池供电(未插电)

计时

随维护时段依次增加

随维护时段反复持续 N 分钟

限制

无法访问网络、唤醒锁定和 GPS/WLAN 扫描;闹钟和作业/同步被延迟

无法访问网络;作业/同步被延迟(维护窗口除外)

行为

仅接收优先级较高的推送通知消息

接收所有实时消息(即时消息、致电等);优先级较高的推送通知消息可以暂时访问网络

退出

动作、屏幕开启或闹钟响铃

屏幕开启

Doze技术原理主要分为Doze状态机+省电管控(后台 CPU 和网络活动)措施,延长待机续航的效果。

其中状态机的目的主要识别用户长时间未使用设备场景并标记Idle状态,省电管控措施主要是Idle状态内限制应用后台 CPU 和网络活动

Light idle 状态机时序图

0

从上述状态流转图来看,正常情况(手机有网络)下最快16mins进入light idle模式,每隔5mins进入1min的维护窗口期。

Light idle 状态机流转图

0

Light Idle 状态机状态转换表

状态 (State)

进入条件 (Entry Conditions)

触发方法/逻辑

LIGHT_STATE_ACTIVE

屏幕开启 OR 正在充电 OR 即将触发闹钟 OR 有紧急呼叫活跃。

初始状态,通过 becomeActiveLocked() 激活。

LIGHT_STATE_INACTIVE

屏幕关闭 AND 未充电 AND 无紧急呼叫。

从 LIGHT_STATE_ACTIVE 通过 becomeInactiveIfAppropriateLocked() 进入。

LIGHT_STATE_IDLE

设备空闲一段时间(无用户交互或运动)。

从 LIGHT_STATE_INACTIVE 通过超时(some time transpires)自动进入。

LIGHT_STATE_WAITING_FOR_NETWORK

从 LIGHT_STATE_IDLE 退出时,检测到无网络连接。

从 LIGHT_STATE_IDLE 通过条件分支(no network)进入。

LIGHT_STATE_IDLE_MAINTENANCE

空闲维护窗口(短暂唤醒以执行任务)。

从 LIGHT_STATE_IDLE 或 LIGHT_STATE_WAITING_FOR_NETWORK 通过默认转换进入。

LIGHT_STATE_OVERRIDE

设备进入 Deep Idle 的 STATE_IDLE 状态,Light Idle 状态机被冻结。

由 Deep Idle 状态机触发(deep goes to STATE_IDLE)。

相对Light Idle我更关注Doze的Deep Idle,目前大部分友商主要是对deep idle进行深度定制。

http://www.dtcms.com/a/143326.html

相关文章:

  • 测试基础笔记第六天
  • 『Linux_网络』 第二章 UDP_Socket编程
  • 从《周游记3》演绎歌剧版《菊花台》,周杰伦婚礼曲目意大利文版惊喜亮相
  • docker 搭建nacos 2.2.1版本单机版
  • 下一代互联网
  • java怎么完善注册,如果邮箱中途更换,能否判断
  • 2025/4/19 数据库的流程控制函数
  • Redis客户端下载使用
  • 【操作系统原理01】操作系统引论
  • Mysql从入门到上手(二)-全面了解增删改查(CRUD).
  • 《目标检测双雄:YOLO与Faster R-CNN,谁主沉浮?》
  • 文本生成与采样策略 (Text Generation Sampling)
  • c# 字典存储的委托失效?
  • 结合建筑业务讲述TOGAF标准处理哪种架构
  • 毕业论文超清pdf带标签导出
  • goc命令大全
  • spring boot应用部署IIS
  • 【软件测试】
  • Docker安装与介绍(一)
  • Trae,字节跳动推出的 AI 编程助手插件
  • 进程控制(下)【Linux操作系统】
  • linux下C++性能调优常用的工具
  • AcWing 11:背包问题求方案数 ← 0-1背包
  • 科学研究:怎么做
  • [密码学基础]国密算法深度解析:中国密码标准的自主化之路
  • 计算机软考中级 知识点记忆——排序算法 冒泡排序-插入排序- 归并排序等 各种排序算法知识点整理
  • 腾讯云对象存储m3u8文件使用腾讯播放器播放
  • React 文章列表
  • 2024-04-19| Java: Documented注解学习 JavaDoc
  • 高可靠 ZIP 压缩方案兼容 Office、PDF、TXT 和图片的二阶段回退机制