この記事では、mPaaS が提供するスイッチ構成機能を統合する方法について説明します。
スイッチ構成とは、新しいバージョンをリリースせずに、クライアントコードの処理ロジックを動的に変更する機能です。クライアントは、バックグラウンドの動的構成からプルされたスイッチ値に基づいて、関連する処理を制御します。スイッチ構成サービスを使用すると、さまざまなスイッチを構成、変更、およびプッシュできます。スイッチとは、キーと値のペアを指します。現在、スイッチ構成機能の統合は、Native AAR モードまたは Portal & Bundle モードをサポートしています。
完全な統合プロセスには、主に次の 3 つのステップが含まれます。
mPaaS を初期化する (Native AAR の場合のみ必要)
前提条件
Native AAR モードでスイッチ構成を統合する場合は、最初に 前提条件 を完了していることを確認してください。
Portal & Bundle モードでスイッチ構成を統合する場合は、一般的な手順 を完了していることを確認してください。
SDK を追加する
Native AAR モード
AAR コンポーネント管理 の手順に従って、コンポーネント管理 (AAR) を使用して、プロジェクトにスイッチ構成コンポーネント CONFIGSERVICE をインストールします。
Portal & Bundle モード
コンポーネント管理 (AAR) を使用して、Portal プロジェクトと Bundle プロジェクトにスイッチ構成コンポーネント CONFIGSERVICE をインストールします。
詳細については、「コンポーネントの依存関係の管理 > コンポーネントの依存関係を追加/削除する」をご参照ください。
mPaaS を初期化する
Native AAR を使用して MAS を統合する場合は、mPaaS を初期化する必要があります。
オブジェクト Application に次のコードを追加します。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// mPaaS の初期化
MP.init(this);
}
}詳細については、「mPaaS を初期化する」をご参照ください。
SDK を使用する
mPaaS は、スイッチ構成管理 API MPConfigService を提供して、スイッチ構成を実装します。
スイッチ構成を実装するには、次の手順を実行します。
mPaaS コンソールで、モバイルデリバリーサービス > 構成の管理 ページに移動し、必要なスイッチ構成項目を追加し、プラットフォーム、ホワイトリスト、パーセンテージ、バージョン番号、モデル、Android バージョンなどの情報に基づいて対象配信構成を設定します。詳細については、「構成管理」をご参照ください。
コンソールでスイッチキーがリリースされた後、クライアントは指定された API を呼び出してスイッチキーの値を取得できます。
スイッチ構成管理 API
MPConfigServiceは、多くの API を外部に提供します。各 API の機能はその名前から理解できます。インターフェースとコメントを以下に示します。重要リスナーはソフトリファレンスとして存在し、メモリが少ない場合はシステムによってリサイクルされます。そのため、グローバルリスナーの使用は避け、いつでも登録して使用後に削除することで、スイッチリスナーを使用するようにしてください。
public class MPConfigService { /** * スイッチ構成を取得する * * @param key * @return */ public static String getConfig(String key); /** * スイッチ構成を読み込む。最新のスイッチ構成は、デフォルトで 30 分ごとに取得されます。 */ 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); }