接入 Android

本文介绍如何集成 mPaaS 提供的开关配置功能。

开关配置是一种在客户端不用发布新版本的情况下,动态修改客户端代码处理逻辑的能力。客户端根据拉取后台动态配置的开关值,来控制相关处理。通过开关配置服务,您可以实现各种开关的配置、修改、推送。开关是指 key-value 的键值对。目前,开关配置支持 原生 AAR 接入mPaaS Inside 接入组件化接入 三种接入方式。

使用开关配置涉及到调用 MDS 的更新发布接口,会产生相应的接口调用费用。有关接口调用的计费说明,参见 产品定价 中的实时发布计费项说明 。

整个过程分为以下三步:

  1. 添加 SDK

  2. 初始化 mPaaS(仅原生 AAR 接入或 mPaaS Inside 接入需要)

  3. 使用 SDK

前置条件

添加 SDK

原生 AAR 方式

参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 开关配置(CONFIGSERVICE)组件。

mPaaS Inside 方式

在工程中通过 组件管理 安装 开关配置(CONFIGSERVICE)组件。

更多信息,参考 添加组件依赖

组件化方式

在 Portal 和 Bundle 工程中通过 组件管理 安装 开关配置(CONFIGSERVICE)组件。

更多信息,参考 管理组件依赖

初始化 mPaaS

如果您使用原生 AAR 接入或 mPaaS Inside 接入方式,则需要初始化 mPaaS。

请在 Application 对象中添加以下代码:

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        // mPaaS 初始化回调设置
        QuinoxlessFramework.setup(this, new IInitCallback() {
            @Override
            public void onPostInit() {
                // 此回调表示 mPaaS 已经初始化完成,mPaaS 相关调用可在这个回调里进行
            }
        });
    }

    @Override
    public void onCreate() {
        super.onCreate();
        // mPaaS 初始化
        QuinoxlessFramework.init();
    }
}

使用 SDK

mPaaS 提供开关配置管理接口 MPConfigService 来实现开关配置。

实现开关配置的操作步骤如下:

  1. 在 mPaaS 控制台的 实时发布 > 配置开关管理 页面中增加需要的开关配置项,并按照平台、白名单、百分比、版本号、机型、Android 版本等信息进行针对性下发配置。具体操作步骤参考 配置管理

  2. 当控制台发布了开关键后,客户端可通过调用接口获取开关键对应的键值。

    开关配置管理接口 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);
     }
阿里云首页 移动开发平台 mPaaS 相关技术圈