在使用 mPaaS 框架前需要進行一些初始化操作對 Application 對象進行改造。由于是否使用熱修復功能后采取不同的初始化內容,因此本文將根據是否使用熱修復功能分別向您介紹相應的初始化操作。
不使用熱修復功能
不使用 熱修復 功能時,只需在 Application 中添加如下代碼:
@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 方法前過濾進程,除主進程外,在 tools 和 push 子進程中也需要執行初始化代碼。
使用熱修復功能
使用 熱修復 功能時,需要完成以下操作。
操作步驟
使 Application 對象重新繼承
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
文件中將 Application 對象指向 mPaaS 提供的Application
對象。 將生成的 “MyApplication” 類添加到 key 為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 或者熱修復功能的時候,需要調用到 Apache HTTP 客戶端相關的功能。只需在
AndroidManifest.xml
加入如下代碼。更多信息,請參見 使用 Apache HTTP 客戶端。<uses-library android:name="org.apache.http.legacy" android:required="false"/>
文檔內容是否對您有幫助?