全部產品
Search
文件中心

Mobile Platform as a Service:接入 Android

更新時間:Jul 13, 2024

本文介紹如何整合 mPaaS 提供的開關配置功能。

開關配置是一種在用戶端不用發布新版本的情況下,動態修改用戶端代碼處理邏輯的能力。用戶端根據拉取後台動態配置的開關值,來控制相關處理。通過開關佈建服務,您可以實現各種開關的配置、修改、推送。開關是指 key-value 的索引值對。目前,開關配置支援 原生 AAR 接入組件化接入 兩種接入方式。

使用開關配置涉及到調用 MDS 的更新發布介面,會產生相應的介面調用費用。有關介面調用的計費說明,參見 產品定價 中的即時發布計費項目說明 。

整個過程分為以下三步:

  1. 添加 SDK

  2. 初始化 mPaaS(僅原生 AAR 接入需要)

  3. 使用 SDK

前置條件

添加 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 來實現開關配置。

實現開關配置的操作步驟如下:

  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);
     }