Doze中的adb命令大全
Android在6.0引入了低电耗模式,也就是俗称的doze,管理应用在设备未连接电源时的行为方式,提升设备续航表现。在doze中有两个状态,分别是light idle、deep idle,二者构成了Android系统的doze机制。
控制设备进入doze状态的命令:
| |
---|
dumpsys deviceidle | 查看doze属性设置、名单配置情况和状态机信息 |
dumpsys deviceidle step light | 满足进入doze的条件下,一步步进入light idle |
dumpsys deviceidle step/(step deep) | 满足doze的条件下。一步步进入到deep idle |
dumpsys deviceidle force-idle/(force-idle deep) | 强制设备进入到deep idle,只要不满足每个阶段的条件,那么就会退出 |
dumpsys deviceidle force-idle light | 强制设备进入到light idle,只要不满足每个阶段的条件,那么就会退出 |
dumpsys deviceidle force-inactive | 尝试让设备变成inactive状态 |
dumpsys deviceidle unforce | 如果设备之前是强制进入到light idle或deep idle的话,并且当前在充电状态且亮屏,那么退出idle状态,变成active状态 |
dumpsys deviceidle get args | 获取设备light idle、deep idle、屏幕、充电状态 |
dumpsys deviceidle motion | 调用motionLocked函数,模拟设备运动 |
dumpsys deviceidle pre-idle-factor 0/1/2 | 设备设备在inactive和idle_pending的停留时长 |
dumpsys deviceidle reset-pre-idle-factor | 恢复设备在inactive和idle_pending的停留时长为30mins |
dumpsys deviceidle dump -h | 查看doze的adb命令帮助文档 |
Doze使能开关命令:
打开设备doze功能:
doze功能默认是打开的。
| |
---|
dumpsys deviceidle enable deep | 使能deep idle功能 |
dumpsys deviceidle enable light | 使能light idle功能 |
dumpsys deviceidle enable | 使能deep、light idle功能 |
dumpsys deviceidle enable all | 使能deep、light idle功能 |
关闭设备doze功能:
| |
---|
dumpsys deviceidle disable deep | 禁止设备进入到deep idle |
dumpsys deviceidle disable light | 禁止设备进入到light idle |
dumpsys deviceidle disable all | 禁止设备进入到deep、light idle状态 |
dumpsys deviceidle disable | 禁止设备进入到deep、light idle状态 |
Doze白名单命令:
Android的doze中存在白名单。白名单内的应用,当设备进入到idle状态时,不受idle模式限制,如限制网络、job等。
doze存在四个名单:sys-whitelist、except-idle、user-whitelist、temp-whitelist,一般来说只需要关注user-whitelist即可。
| |
---|
adb shell dumpsys deviceidle whitelist | 查看doze中的白名单,包括user-whitelist、except-idle、sys-whitelist |
adb shell dumpsys deviceidle except-idle-whitelist | 查看doze中的except-idle白名单 |
adb shell dumpsys deviceidle sys-whitelist | 查看doze中的系统白名单 |
adb shell dumpsys deviceidle tempwhitelist | 查看doze中的临时白名单 |
adb shell dumpsys deviceidle whitelist +pkgName | 将应用加入到user-whitelist白名单中 |
adb shell dumpsys deviceidle whitelist -pkgName | 将应用从user-whitelist白名单中去除 |
adb shell dumpsys deviceidle whitelist =pkgName | 查看该应用是否在user-whitelist白名单中 |
adb shell dumpsys deviceidle sys-whitelist -pkgName | 将应用从sys系统白名单中去除 |
adb shell dumpsys deviceidle sys-whitelist +pkgName | 将应用加入到sys系统白名单中 |
adb shell dumpsys deviceidle except-idle-whitelist +pkgName | 将应用加入到except idle白名单中 |
adb shell dumpsys deviceidle except-idle-whitelist -pkgName | 将应用从except idle白名单中去除 |
adb shell dumpsys deviceidle tempwhitelist -r pkgName | 将应用从doze中的临时白名单去除 |
adb shell dumpsys deviceidle tempwhitelist -u userId -d duration pkgName | 将应用pkgName添加到哪个用户userId 的doze临时白名单中多长时间duration |
四种名单区别:
类别 | 添加方式 | 生效范围 |
---|
except-idle | Google or 芯片厂商在xml文件中预置的以allow-in-power-save-except-idle开头的应用 | 在doze状态下不生效,省电模式下生效 |
sys-whitelist | Google or 芯片厂商在xml文件中预置的以allow-in-power-save开头的应用 | doze状态下生效 |
user-whitelist | 用户可以手动添加的白名单应用 | doze状态下生效 |
temp-whitelist | 应用使用组件调用(如发广播),临时添加到白名单中 | doze状态下生效 |