mPaaS フレームワークを使用する前に、Hotpatch 機能が有効になっているかどうかによって、アプリケーション オブジェクトを初期化する必要があります。このトピックでは、両方の場合の初期化プロセスについて説明します。
Hotpatch が無効になっている場合
Hotpatch 機能が無効になっている場合は、アプリケーション オブジェクトに次のコードを追加するだけで済みます。
@Override
public void onCreate() {
super.onCreate();
MP.init(
this,
MPInitParam.obtain().setCallback(new MPInitParam.MPCallback() {
@Override
public void onInit() {
Log.d("TAG", "mPaaS Init finish");
}
})
);
}Kotlin を統合する場合は、mPaaS が提供する mPaaS KTX の mPaaS Kotlin 拡張機能 を使用できます。
QuinoxlessFramework 初期化メソッドを引き続き使用する必要がある場合、呼び出しは一切影響を受けず、コードやビジネスに変更を加える必要はありません。
MP.init メソッドを使用する前にプロセスをフィルタリングしないでください。メイン プロセスの他に、初期化コードはツールとプッシュの子プロセスでも実行する必要があります。
Hotpatch が有効になっている場合
ホットパッチ 機能が有効になっている場合は、次の手順を実行します。
手順
アプリケーション オブジェクトで、
QuinoxlessApplicationLikeを再継承し、このクラスを難読化から除外します。次のコードでは、MyApplication オブジェクトを例として使用しています。@Keep public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks { private static final String TAG = "MyApplication"; @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); Log.i(TAG, "attacheBaseContext"); } @Override public void onCreate() { super.onCreate(); Log.i(TAG, "onCreate"); registerActivityLifecycleCallbacks(this); } @Override public void onMPaaSFrameworkInitFinished() { 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オブジェクトを継承していることを確認します。次に、生成された MyApplication クラスを、キーがmpaas.quinoxless.extern.applicationであるmeta-dataに追加します。次のサンプルコードをご参照ください。<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 ) または Hotpatch を使用する場合、Apache HTTP クライアントの機能を呼び出す必要があります。したがって、
AndroidManifest.xmlファイルに次のコードを追加します。詳細については、「Apache HTTP クライアントを使用する」をご参照ください。<uses-library android:name="org.apache.http.legacy" android:required="false"/>