展锐平台 省电管理 vendor/sprd/modules/power/fw-power-config/appPowerSaveConfig.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<app_powersave_config>
<package name="com.pp.assistant" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="1" secondarylaunch="1" lockscreencleanup="1" consumertype="0" />
<package name="com.spreadtrum.itestapp" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
<package name="com.comcat.activity" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
<package name="com.sprd.sleepwakeuptest" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
<package name="sprdtest.message" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
<package name="com.greenpoint.android.mc10086.activity" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
<package name="com.jio.emiddleware" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />
</app_powersave_config>
- optimize:是否应用电池优化,其中 0 表示白名单(不优化),1 表示黑名单(优化)
- alarm:是否待机唤醒优化,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
- wakelock:是否待机休眠,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
- network:是否数据联网限制,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
- autolaunch:是否自启动管理,其中 1 表示黑名单(禁止),2 表示白名单(允许)
- secondarylaunch:是否关联启动,其中 1 表示黑名单(禁止),2 表示白名单(允许)
- lockscreencleanup:是否锁屏清理,其中 0 表示黑名单,1 表示白名单
- consumertype:对应该应用的耗电情况,0对应耗电情况未知。其他值意义如下:0x01: 表示alarm频繁唤醒;0x02:表示长时间持锁; 0x04: 表示长时间使用gps
实际值可能为上述各值的组合
实际在我们的代码中AppPowerSaveConfig.java中
public AppPowerSaveConfig() {
for (int i = 0; i < ConfigType.TYPE_MAX.value; i++) {
setConfigWithType(this , i, mDefConfig[i]);
}
}
mDefConfig数组为默认值
private static int[] mDefConfig = {VALUE_OPTIMIZE, // for optimize
VALUE_AUTO, // for alarm
VALUE_AUTO, // for wakelock
VALUE_AUTO, // for network
VALUE_OPTIMIZE, // for autolaunch
VALUE_OPTIMIZE, // for 2ndlaunch
VALUE_AUTO, // for lockscrenn cleanup
POWER_CONSUMER_TYPE_NONE}; // for powerConsumerType
public static final int VALUE_INVALID = -1;
public static final int VALUE_AUTO = 0;
public static final int VALUE_OPTIMIZE = 1;
public static final int VALUE_NO_OPTIMIZE = 2;
如果第三方应用没有单独配置,默认VALUE_OPTIMIZE
第三方应用调用开机广播自动启动时,查看log会发现,应用会被加入black list
Line 20877: S004E19 06-19 06:41:22.633 621 796 D PowerController.BgClean: judgeAppLaunchAllowed : com.quectel.findnetwork(uid:1000), callingPackage = null(uid:1000), reason = send-broadcast
Line 20879: S004E1B 06-19 06:41:22.633 621 796 D PowerController.BgClean: in apppowerconfig autolaunch black list: com.quectel.findnetwork
Line 20880: S004E1C 06-19 06:41:22.633 621 796 D PowerController.BgClean: in autolaunch black list: com.quectel.findnetwork, callingPackage = null, reason = send-broadcast denyed!
因此需要把我们对应的应用加入到白名单中
在appPowerSaveConfig.xml中添加如下代码
<package name="com.quectel.findnetwork" optimize="1" alarm="0" wakelock="0" network="0" autolaunch="2" secondarylaunch="2" lockscreencleanup="2" consumertype="0" />