全部產品
Search
文件中心

Mobile Platform as a Service:初始化 mPaaS

更新時間:Jul 13, 2024

在使用 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 子進程中也需要執行初始化代碼。

使用熱修複功能

使用 熱修複 功能時,需要完成以下操作。

操作步驟

  1. 使 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) {
    
      }}
  2. AndroidManifest.xml 檔案中將 Application 對象指向 mPaaS 提供的 Application 對象。 將產生的 “MyApplication” 類添加到 key 為 mpaas.quinoxless.extern.applicationmeta-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>
  3. 引入 Apache HTTP 用戶端。

    在使用 RPC 或者熱修複功能的時候,需要調用到 Apache HTTP 用戶端相關的功能。只需在 AndroidManifest.xml 加入如下代碼。更多資訊,請參見 使用 Apache HTTP 用戶端

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>