在Doze模式下,指定app到白名单

处于Doze模式时,进行了以下操作。
1.网络接入被暂停
2.系统忽略wakelocks
3.标准的AlarmManageralarms被延缓到下一个maintenancewindow
4.如果你需要在Doze状态下启动设置的alarms,使用setAndAllowWhileIdle()或者setExactAndAllowWhileIdle()。
5.当有setAlarmClock()的alarms启动时,系统会短暂退出Doze模式
6.系统不会扫描Wi-Fi
7.系统不允许syncadapters运行
8.系统不允许JobScheduler运行

怎么将非系统app预置到Doze的白名单中
按步骤1-4操作后,然后全编译。
1.在framework/base/data创建一个data目录
2.在framework/base/data/data下创建deviceidle.xml, 并把要放入白名单的应用按格式写入到该文件

 <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<config>
<wl n="com.android.printspooler"/>#package of whitelist app,per package a line 
<wl n="com.tenxu.qq"/>
</config>

3.在 framework/base/data/data下创建一个 android.mk

LOCAL_PATH := $(my-dir)

########################
include $(CLEAR_VARS)

LOCAL_MODULE := deviceidle.xml

LOCAL_MODULE_CLASS := DATA

# This will install the file in /data/system
#
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/system

LOCAL_SRC_FILES := $(LOCAL_MODULE)

include $(BUILD_PREBUILT)

4.在build/target/base.xml 声明deviceidle.xml

 # Base modules (will move elsewhere, previously user tagged)
PRODUCT_PACKAGES += \
.......
bugreportz \
cameraserver \
content \
deviceidle.xml \ #add this line 
dnsmasq \

怎么将系统app预置到Doze的白名单中
参照/system/etc/sysconfig/google.xml,在该文件内添加allow-in-power-save 属性 或者另创建一个xml文件预置到/system/etc/sysconfig/

doze原理分析源码frameworks/base/services/core/java/com/android/server/DeviceIdleController.java

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值