Doze模式时序调研

article/2025/9/15 11:31:03

Doze模式

机型

Light idle

Deep idle 时序

定制白名单

AppStandby

BLE

Scanning管控

华为P20 Pro

开启

64.5分钟进入deep idle

开启

禁止BLE scanning

OPPO F11 Pro

开启

30分钟进入deep idle

开启

允许BLE scanning

小米

MI 8 Pro

开启

64.5分钟进入deep idle

开启

允许BLE scanning

FADI ROM

20190703 ROM2.0,ROM3.0,FADI才开启

44.5分钟进入deep idle

20190703 ROM2.0,ROM3.0,FADI才配置社交应用白名单

20190703 ROM2.0,ROM3.0,FADI才开启

允许BLE scanning

上述:

  1. ROM 的doze 模式,时序可以参考 OPPO进行调整,加快进入doze的时间;
  2. Doze 模式下,参考华为,doze模式禁止蓝牙扫描;
  3. 关于SyncManager, OPPO新增了禁止app 自动同步策略

SyncManager: dispatchSyncOperation: pkg{com.ss.android.article.lite} is not allow to do sync automatically, skip sync!!!

备注:20190703文才进行了 ROM2.0,ROM3.0,FADI 项目doze优化,其他项目的Light idle、App Standby默认为关闭,且无doze定制白名单

1 华为P20 pro

    1. Light idle

Bugreport.zip 日志: mLightEnabled=true  mDeepEnabled=true

DUMP OF SERVICE deviceidle:

  Settings:

    light_after_inactive_to=+3m0s0ms

    light_pre_idle_to=+3m0s0ms

    light_idle_to=+5m0s0ms

    light_idle_factor=2.0

    light_max_idle_to=+15m0s0ms

    light_idle_maintenance_min_budget=+1m0s0ms

    light_idle_maintenance_max_budget=+5m0s0ms

    1. Deep idle 时序

Bugreport.zip 日志,具体配置如下

    inactive_to=+30m0s0ms

    sensing_to=+4m0s0ms

    locating_to=+30s0ms

    location_accuracy=20.0m

    motion_inactive_to=+10m0s0ms

idle_after_inactive_to=+30m0s0ms

 

 

|       |     30分   |     30分    |    4分  | 30秒  |   1小时 |   5分钟 | 1*2小时|5*2分钟 |……ACTIVE       INACTIVE    IDLE_PENDIN    SENSING    LOCATING     IDLE    MAINTENANCE  IDLE   MAINTENANCE

Bugreport.zip 日志,具体配置如下

    inactive_to=+30m0s0ms

    sensing_to=+4m0s0ms

    locating_to=+30s0ms

    location_accuracy=20.0m

    motion_inactive_to=+10m0s0ms

idle_after_inactive_to=+30m0s0ms

通过Battery Historian 中查看,与预设deep idle时序一致

    1. 定制白名单

Adb shell dumpsys deviceidle 日志中查看:配置华为服务、应用、社交应用等

    1. App Standby

Bugreport.zip 日志:

Settings:

  mCheckIdleIntervalMillis=+3h0m0s0ms

  mAppIdleParoleIntervalMillis=+1d0h0m0s0ms

  mAppIdleParoleWindowMillis=+2h0m0s0ms

  mAppIdleParoleDurationMillis=+10m0s0ms

  mExemptedSyncScheduledNonDozeTimeoutMillis=+10m0s0ms

  mExemptedSyncScheduledDozeTimeoutMillis=+4h0m0s0ms

  mExemptedSyncStartTimeoutMillis=+10m0s0ms

mAppIdleEnabled=true

    1. BLE Scanning管控

 

 

BugReport 可知 Doze 模式下禁止 BLE scanning

  1. OPPO F11 Pro

2.1 Light idle

Bugreport.zip 日志: mLightEnabled=true  mDeepEnabled=true

DUMP OF SERVICE deviceidle:

  Settings:

    light_after_inactive_to=+3m0s0ms

    light_pre_idle_to=+3m0s0ms

    light_idle_to=+5m0s0ms

    light_idle_factor=2.0

    light_max_idle_to=+15m0s0ms

    light_idle_maintenance_min_budget=+1m0s0ms

    light_idle_maintenance_max_budget=+5m0s0ms

    min_light_maintenance_time=+5s0ms

2.2 Deep idle 时序

Bugreport.zip 日志,具体配置如下

    inactive_to=+13m45s0ms

    sensing_to=+2m0s0ms

    locating_to=+30s0ms

    location_accuracy=20.0m

    motion_inactive_to=+13m45s0ms

    idle_after_inactive_to=+13m45s0ms

 

      |   13分45秒  |  13分45秒 |    2分  | 30秒  |   1小时 |   5分钟  | 1*2小时|5*2分钟 |……ACTIVE        INACTIVE    IDLE_PENDIN    SENSING   LOCATING     IDLE     MAINTENANCE     IDLE   MAINTENANCE

 

通过Battery Historian 中查看及moble日志查看,与预设deep idle时序一致

Line 149153: 07-14 19:33:09.080493  1288  1288 I device_idle: [1,no activity]

Line 149508: 07-14 19:48:10.218910  1288  1309 I device_idle: [2,s:alarm]

Line 149803: 07-14 20:03:10.191984  1288  1309 I device_idle: [3,s:alarm]

Line 149818: 07-14 20:03:20.260258  1288  1288 I device_idle: [4,s:stationary]

Line 149819: 07-14 20:03:20.271997  1288  1288 I device_idle: [5,s:stationary]

Line 150305: 07-14 20:49:02.541147  1288  1309 I device_idle: [6,s:alarm]

2.3 定制白名单

Adb shell dumpsys deviceidle 日志中查看:配置OPPO服务、应用、社交应用等

2.4 App Standby

Bugreport.zip 日志:

Settings:

  mCheckIdleIntervalMillis=+3h0m0s0ms

  mAppIdleParoleIntervalMillis=+1d0h0m0s0ms

  mAppIdleParoleWindowMillis=+2h0m0s0ms

  mAppIdleParoleDurationMillis=+10m0s0ms

  mExemptedSyncScheduledNonDozeTimeoutMillis=+10m0s0ms

  mExemptedSyncScheduledDozeTimeoutMillis=+4h0m0s0ms

  mExemptedSyncStartTimeoutMillis=+10m0s0ms

  mRusAutoPowerSaveEnable=true

mAppIdleEnabled=true

    1. SyncManager

会对第三方应用进行禁止自更新

07-12 22:15:51.412729  1288  1807 D SyncManager: dispatchSyncOperation: pkg{com.ss.android.article.lite} is not allow to do sync automatically, skip sync!!!

    1. BLE Scanning管控

     

BugReport 可知 Doze 模式下允许 BLE scanning,即不管控

  1. 小米海外版 MI 8 Pro
    1. Light idle

Bugreport.zip 日志: mLightEnabled=true  mDeepEnabled=true

DUMP OF SERVICE deviceidle:

  Settings:

    light_after_inactive_to=+3m0s0ms

    light_pre_idle_to=+3m0s0ms

    light_idle_to=+5m0s0ms

    light_idle_factor=2.0

    light_max_idle_to=+15m0s0ms

    light_idle_maintenance_min_budget=+1m0s0ms

light_idle_maintenance_max_budget=+5m0s0ms

    1. Deep idle 时序

Bugreport.zip 日志,具体配置如下

    inactive_to=+30m0s0ms

    sensing_to=+4m0s0ms

    locating_to=+30s0ms

    location_accuracy=20.0m

    motion_inactive_to=+10m0s0ms

    idle_after_inactive_to=+30m0s0ms

    idle_pending_to=+5m0s0ms

    max_idle_pending_to=+10m0s0ms

 

|       |     30分   |     30分    |    4分  | 30秒  |   1小时 |   5分钟 | 1*2小时|5*2分钟 |……ACTIVE       INACTIVE    IDLE_PENDIN    SENSING    LOCATING     IDLE    MAINTENANCE  IDLE   MAINTENANCE

Bugreport.zip 日志,具体配置如下

    inactive_to=+30m0s0ms

    sensing_to=+4m0s0ms

    locating_to=+30s0ms

    location_accuracy=20.0m

    motion_inactive_to=+10m0s0ms

idle_after_inactive_to=+30m0s0ms

 

    1. 定制白名单

Adb shell dumpsys deviceidle 日志中查看:配置华为服务、应用、社交应用等

    1. App Standby

Bugreport.zip 日志:

Settings:

  mCheckIdleIntervalMillis=+3h0m0s0ms

  mAppIdleParoleIntervalMillis=+1d0h0m0s0ms

  mAppIdleParoleWindowMillis=+2h0m0s0ms

  mAppIdleParoleDurationMillis=+10m0s0ms

  mExemptedSyncScheduledNonDozeTimeoutMillis=+10m0s0ms

  mExemptedSyncScheduledDozeTimeoutMillis=+4h0m0s0ms

  mExemptedSyncStartTimeoutMillis=+10m0s0ms

mAppIdleEnabled=true


http://chatgpt.dhexx.cn/article/XcN3yQnU.shtml

相关文章

Android7.0 Doze模式分析(一)Doze介绍 DeviceIdleController

参考:http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中,Google就引入了Doze模式。它定义了一种全新的、低能耗的状态。 在该状态,后台只有部分任务被允许运行,其它任务都被强制停止。 在之前的博客中分…

android 7.0低电耗Doze模式

从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。 低电耗(Doze)模式通过在设备长时间处于闲置状态时推迟应用的后台 CPU 和网络 Activity 来减少电…

Android O Doze模式的状态

现象 以下是BugReport日志 日志 STATE_ACTIVE 2,006: 11-17 10:24:59.876137 900 900 I DeviceIdleController: updateChargingLocked: chargingtrue 2,007: 11-17 10:24:59.876244 900 900 I DeviceIdleController: becomeActiveLocked, reason charging 2,25…

【Android】Doze模式识别与检测

从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能:Doze模式(官方翻译为低电耗模式)和 App Standby模式(官方翻译为应用待机模式),可通过管理应用在设备未连接…

Android 8.1 Doze模式分析(一)——Doze简介和DeviceIdleController的启动

概述 Doze模式,官方翻译为低电耗模式,是Andoriod6.0增加的一项系统服务,主要目的是为了优化电池性能,增加电池续航时间,Doze模式又分两种模式:深度Doze模式(Deep Doze)和轻度Doze模式(Light Doze)&#xf…

Android 6.0的省电技术Doze作用影响以及避免方法

从android 6.0开始,谷歌引入了两项新的省电技术延长电池使用时间,分别是Doze(休眠)和App Standby(app待命模式),只要app是运行在6.0(api 23)及以上的系统,无论…

Doze模式简介

Doze模式是自Android 6.0开始引入的两项省电功能的其中之一,还有一个就是appstandby,通过管理应用在设备未连接至电源时的行为方式,帮助用户延长电池寿命。当用户长时间未使用设备时,低电耗模式会延迟应用的后台 CPU 和网络活动&a…

Android中的Doze模式

概述 Android 6.0引入的Doze机制在于节省系统耗电量,保护电池,延长电池的使用时间。当设备未连接至电源,且长时间处于闲置状态时,系统会将应用进入Doze,置于App Standby模式。而最终的效果,能提升30%的电量…

Mock工具之Mockito实战

在实际项目中写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖项又会有依赖,导致在单元测试代码里几乎无法完成构建,尤其是当依赖项尚未构建完成时会导致单元测试无法进行。为了解决这类问题我们引入了Mock的概念,简…

Mockito 入门

目录 1.什么是 Mock 测试?2.Mockito简介3.在 SpringBoot 单元测试中使用 Mockito3.1 Maven依赖:3.2 UserService.java3.3 User.java3.4 thenReturn系列方法(测试桩)3.5 thenThrow系列方法3.6 verify 系列方法 4.Spring中mock任何容…

Mock工具之Moco使用教程

目录 一、什么是Moco二、安装&配置三、接口配置&测试3.1 第一个简单的请求:3.2 Get请求:3.3 Post请求:3.4 返回值为Json格式的请求:3.5 带cookie信息才能访问的post请求:3.6 重定向请求:3.7 前后端…

mock功能

目标 了解mock的作用及使用场景; mock使用场景 mock:假的 前端程序员提到的mock数据的含义是:真的假数据 真的:符合接口规范要求的。 假数据:数据是人为创建出来的,不是真正的业务数据。 什么时候需…

mock的介绍

1.什么是mock mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 2.为什么要使用mock 之所以使用mock测试,是因为真实场景很难实现或者短…

Mock介绍

mock的定义(what): mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为 为什么要使用mock(why): 在做单元测试过程中,经常会有以下的…

Mockito单元测试

文章目录 Mockito单元测试为什么要使用Mock?导入依赖import导入包使用Mock模拟测试某个类中的某个方法是否可以成功执行使用Mock模拟某个类的方法,自己给这个方法返回我们指定的值使用Mock模拟某个方法调用后会抛出指定的异常使用Mock模拟测试某个类中的某个方法(加…

javascript 中怎么判断为数字类型

javascript中判断变量是否为数字类型抄的方法有两种: 方法一: function isnum(s) { if(s!null){ var r,re; re /\d*/i; //\d表示数字,*表示匹配多个数字 r s.match(re); return (rs)?true:false; } return false; } 方法二: function isnu…

js判断字符串是不是一个纯数字

1.使用隐式转换判断 使用parseInt()/parseFloat()会把其他类型转换为数值,转换结果为数值或NaN,转换字符串的时候,头部内容有数值就会截取前面,如123456aff789bb转成123456,后面即使有数字也不会转换处理,开头如果是字…

javaScript 判断是否为数值类型的三种方法

第一种方法:isNaN(value) isNaN : isNaN() 函数用于检查其参数是否是非数字值。 返回true则判断为非数值。缺点:空字符串,空格 ,null会做为数字0进行处理,结果为falsehttps://www.w3school.com.cn/js/jsref_isnan.anusp 第二种方法…

JS中判断变量是否为数字方法

推荐教程:《JavaScript视频教程》 JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文档和一致性,我们在使用代码时并不总…

matlab绘制图形中,常用函数调用(num2str,disp,gcf,hold on,plot,axis,subplot,line,stairs,grid,set,gca)

num2str 将数字转换为字符数组 s = num2str(A) 将数字数组转换为表示数字的字符数组。输出格式取决于原始值的大小。 num2str对于使用数值标注和标题绘图非常有用。 s = num2str(A,precision) 返回一个字符数组,表示具有精度指定的最大有效位数的数字。 s = num2str(A,fo…