このトピックでは、mPaaS のスイッチ構成機能を Android アプリに統合する方法について説明します。
スイッチ構成を使用すると、新しいアプリバージョンをリリースすることなくクライアントの動作を変更できます。クライアントは、設定可能なスケジュールでバックエンドからスイッチ値をプルし、ご利用のコードはランタイム時にキーでこれらの値を読み取ります。スイッチはキーと値のペアです。スイッチ構成は、ネイティブ AAR 統合およびコンポーネントベース統合の 2 種類の接続タイプをサポートしています。
スイッチ構成の使用には MDS 更新・公開 API が呼び出されるため、料金が発生します。請求明細については、「料金」のリアルタイム公開の課金項目をご参照ください。
手順は次の 3 ステップで構成されています。
mPaaS の初期化(ネイティブ AAR 統合のみ)
前提条件
作業を開始する前に、次の要件を満たしていることを確認してください。
ネイティブ AAR 統合の場合:プロジェクトへの mPaaS の追加
コンポーネントベース統合の場合:統合プロセスを完了していること
SDK の追加
ネイティブ AAR 統合
コンポーネント管理 (AAR) を使用して、プロジェクトに スイッチ構成 (CONFIGSERVICE) コンポーネントをインストールします。詳細については、「AAR コンポーネント管理」をご参照ください。
コンポーネントベース統合
Portal プロジェクトおよび Bundle プロジェクトで、コンポーネント管理 を使用して スイッチ構成 (CONFIGSERVICE) コンポーネントをインストールします。詳細については、「コンポーネント依存関係の管理」をご参照ください。
mPaaS の初期化
ネイティブ AAR 統合では、明示的な初期化が必要です。Application オブジェクトに次のコードを追加します。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize mPaaS
MP.init(this);
}
}
詳細については、「mPaaS の初期化」をご参照ください。
SDK の使用
mPaaS は、スイッチ構成管理用に MPConfigService インターフェイスを提供します。
スイッチ構成を実装するには、次の手順に従います。
mPaaS コンソールで、リアルタイムリリース > スイッチ構成管理 に移動します。必要なスイッチ構成項目を追加し、プラットフォーム、ホワイトリスト、パーセンテージ、バージョン番号、デバイスモデル、Android バージョンに基づいてターゲットを指定した構成を公開します。詳細については、「Android/iOS 構成管理」をご参照ください。
-
コンソールでスイッチを公開したら、ご利用のアプリで
MPConfigServiceAPI を呼び出して値を読み取り、変更に応じて対応します。利用可能な API は次の表のとおりです。
メソッド
説明
getConfig(String key)キーで指定されたスイッチの現在の値を返します。クライアントが初回同期をまだ完了していない場合は、最後にキャッシュされた値を返します。
loadConfig()サーバーから最新のスイッチをプルします。デフォルトでは、クライアントが 30 分間隔で自動的にこのメソッドを呼び出します。
loadConfigImmediately(long delay)即時プルをトリガーします。
delayに0を設定すると待機せずにロードし、ミリ秒単位の値を渡すと遅延させることができます。addConfigChangeListener(ConfigService.ConfigChangeListener)スイッチ値が変更されたときに発火するリスナーを登録します。登録が成功した場合は
trueを返します。removeConfigChangeListener(ConfigService.ConfigChangeListener)以前に登録したリスナーを登録解除します。
重要リスナーはソフトリファレンスとして保持されるため、メモリ圧力が高い状況下でシステムによって回収される可能性があります。グローバルリスナーを使用せず、必要な場合にのみリスナーを登録し、不要になったら登録を解除してください。
public class MPConfigService { /** * Gets a switch. * * @param key * @return */ public static String getConfig(String key); /** * Loads switches. By default, the latest switches are pulled from the server-side at a 30-minute interval. */ public static void loadConfig(); /** * Loads switches immediately. * * @param delay The delay time for loading switches, in milliseconds. A value of 0 means load immediately. */ public static void loadConfigImmediately(long delay); /** * Registers a switch change listener. * @param configChangeListener The listener. * @return */ public static boolean addConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); /** * Removes a switch change listener. * @param configChangeListener The listener. */ public static void removeConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); }