mPaaS を初期化するには、Application オブジェクトを変更する必要があります。手順は、ホットパッチ機能を使用するかどうかによって異なります。
ホットパッチ機能を使用しない場合
前提条件:アプリにカスタムの Application クラスがあること。この手順では難読化の設定は不要です。
Application クラスで onCreate() をオーバーライドし、MP.init() を呼び出します:
@Override
public void onCreate() {
super.onCreate();
MP.init(
this,
MPInitParam.obtain().setCallback(new MPInitParam.MPCallback() {
@Override
public void onInit() {
Log.d("TAG", "mPaaS init finished");
}
})
);
}
Kotlin と統合する場合は、mPaaS KTX 拡張機能を使用してください。詳細については、「mPaaS Kotlin extension」をご参照ください。
QuinoxlessFrameworkの初期化方法を引き続き使用する場合でも、呼び出しは影響を受けません。コードやビジネスロジックの変更は不要です。
MP.init を呼び出す前にプロセスをフィルタリングしないでください。初期化コードは、メインプロセス、ツールの子プロセス、プッシュの子プロセスで実行する必要があります。
ホットパッチ機能を使用する場合
前提条件:プロジェクトで ProGuard または R8 が構成されていること。@Keep アノテーションが使用できること。
-
Application オブジェクトを変更して
QuinoxlessApplicationLikeを継承します。難読化を防ぐために、クラスに@Keepアノテーションを付与します。この例では、クラス名として
MyApplicationを使用します:@Keep // 必須: このクラスが ProGuard/R8 によって難読化されるのを防ぎます public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks { private static final String TAG = "MyApplication"; @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); // 必須: mPaaS はここで base context にフックします Log.i(TAG, "attacheBaseContext"); } @Override public void onCreate() { super.onCreate(); Log.i(TAG, "onCreate"); registerActivityLifecycleCallbacks(this); } @Override public void onMPaaSFrameworkInitFinished() { // mPaaS フレームワークの初期化が完了したときに呼び出されます LoggerFactory.getTraceLogger().info(TAG, getProcessName()); } @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { Log.i(TAG, "onActivityCreated"); } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { }} -
AndroidManifest.xmlファイルで、アプリケーションを mPaaS 提供のApplicationオブジェクトに設定し、meta-dataキーmpaas.quinoxless.extern.applicationにMyApplicationを登録します:<application android:name="com.alipay.mobile.framework.quinoxless.QuinoxlessApplication" > <meta-data android:name="mpaas.quinoxless.extern.application" android:value="com.mpaas.demo.MyApplication" /> </application> -
Apache HTTP クライアントをインポートします。
RPC とホットパッチ機能には Apache HTTP クライアントが必要です。次のコードを
AndroidManifest.xmlファイルに追加します。詳細については、「Use the Apache HTTP client」をご参照ください。<uses-library android:name="org.apache.http.legacy" android:required="false"/>