为应对可能发生的连续启动崩溃的情况,mPaaS 建立了数据清理的机制。该数据清理机制支持定制,通过配置实现在不同情况下对 SharedPreference 、Database 数据库的清理,在极特殊情况下清空整个应用的数据,以保证应用的正常运行。目前该机制已经覆盖了 10.1.32、10.1.60 和 10.1.68 系列基线。
为满足保护重要数据的需求,mPaaS 在数据清理机制中提供了清理白名单功能。通过将目标文件加入清理白名单后即可保护该文件不被清理。
说明:只有 组件化接入方式(Portal Bundle) 存在数据清理机制。
清理白名单方案 1.0 是在合适的时机调用 MPFramework
中的接口来动态设置白名单列表。
清理白名单方案 1.0 支持 10.1.32、10.1.60 和 10.1.68 系列基线。
如果在设置白名单之前已经因为崩溃触发了清理机制,那么清理白名单方案 1.0 将不能生效。如果您使用的是 10.1.32 系列基线,那么建议您升级基线到 10.1.60 或 10.1.68,以使用升级后的清理白名单方案 2.0。更多信息,请参见 清理白名单方案 2.0。
只需在合适的时机调用设置清理白名单的接口即可。接口如下:
/**
* 设置 SharedPreference 白名单。若之前已经设置过,那么会把之前的数据清空。
*/
public static void setSPWhiteList(List<String> whiteList);
/**
* 添加 SharedPreference 白名单,以追加的方式添加。
*
* @param whiteList
*/
public static void addSPWhiteList(List<String> whiteList);
/**
* 获取设置的数据库白名单列表。
*
* @return
*/
public static List<String> getDBWhiteList();
/**
* 设置数据库白名单。若之前已经设置过,那么会把之前的数据清空。
*/
public static void setDBWhiteList(List<String> whiteList) ;
/**
* 添加数据库白名单,以追加的方式添加。
*
* @param whiteList
*/
public static void addDBWhiteList(List<String> whiteList);
清理白名单方案 2.0 是在触发到清理机制时,框架通过反射加载开发者配置的白名单来设置类,优先读取自定义的清理策略。
清理白名单方案 2.0 支持 10.1.60 和 10.1.68 系列基线。其中:
com.mpaas.framework.adapter.api.ClearDataStrategy
,实现相关接口。
public abstract class ClearDataStrategy {
public ClearDataStrategy() {
}
/**
* 是否开启清理机制。
* 若返回 false,则什么文件都不清理。
* 若返回 true,则会执行清理策略。可以通过 getSPWhiteList,getDBWhiteList 返回需要保证的文件列表。
*
* @return
*/
public abstract boolean enableClearDataStrategy();
/**
* 若开启了清理机制,通过该接口返回需要保护的 SharedPreference 文件。
*
* @return
*/
public List<String> getSPWhiteList() {
return null;
}
/**
* 若开启了清理机制,通过该接口返回需要保护的 db 文件。
*
* @return
*/
public List<String> getDBWhiteList() {
return null;
}
}
2.在 Portal 的 AndroidManifest
中配置策略类的信息。
ClearDataStrategy
,所以不能混淆ClearDataStrategy
。
<meta-data
android:name="ClearDataStrategy"
android:value="com.mpaas.demo.launcher.ClearDataStrategy" />
在文档使用中是否遇到以下问题
更多建议
匿名提交