本文介绍如何集成 mPaaS 提供的开关配置功能。
开关配置是一种在客户端不用发布新版本的情况下,动态修改客户端代码处理逻辑的能力。客户端根据拉取后台动态配置的开关值,来控制相关处理。通过开关配置服务,您可以实现各种开关的配置、修改、推送。开关是指 key-value 的键值对。目前,开关配置支持 原生 AAR 接入 和 组件化接入 两种接入方式。
使用开关配置涉及到调用 MDS 的更新发布接口,会产生相应的接口调用费用。有关接口调用的计费说明,参见 产品定价 中的实时发布计费项说明 。
整个过程分为以下三步:
前置条件
若采用原生 AAR 方式接入,需要先 mPaaS添加到您的项目中。
若采用组件化方式接入,需要先完成 接入流程。
添加 SDK
原生 AAR 方式
参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 开关配置(CONFIGSERVICE)组件。
组件化方式
在 Portal 和 Bundle 工程中通过 组件管理 安装 开关配置(CONFIGSERVICE)组件。
更多信息,参考 管理组件依赖。
初始化 mPaaS
如果您使用原生 AAR 接入方式,则需要初始化 mPaaS。
请在 Application
对象中添加以下代码:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// mPaaS 初始化
MP.init(this);
}
}
详情请参考:初始化 mPaaS。
使用 SDK
mPaaS 提供开关配置管理接口 MPConfigService
来实现开关配置。
实现开关配置的操作步骤如下:
在 mPaaS 控制台的 实时发布 > 配置开关管理 页面中增加需要的开关配置项,并按照平台、白名单、百分比、版本号、机型、Android 版本等信息进行针对性下发配置。具体操作步骤参考 配置管理。
当控制台发布了开关键后,客户端可通过调用接口获取开关键对应的键值。
开关配置管理接口
MPConfigService
对外暴露了很多接口,根据命名就能了解接口的含义,以下为各个接口及注释。重要监听器会以软引用形式存在,当内存较低时,系统会进行回收。因此请尽量避免使用全局监听,而是采用随时注册、用完移除的方式使用开关监听。
public class MPConfigService { /** * 获取开关 * * @param key * @return */ public static String getConfig(String key); /** * 加载开关,默认达到半小时间隔才会去服务端拉取最新开关。 */ public static void loadConfig(); /** * 马上加载开关 * * @param delay 加载开关的延迟时间,单位毫秒,0 为立刻加载 */ public static void loadConfigImmediately(long delay); /** * 注册开关改变监听器 * @param configChangeListener 监听器 * @return */ public static boolean addConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); /** * 移除开关改变监听器 * @param configChangeListener 监听器 */ public static void removeConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); }