阿里云首页 移动开发平台 mPaaS

初始化 mPaaS

在使用 mPaaS 框架前需要进行一些初始化操作对 Application 对象进行改造。由于使用热修复功能后采取不同的初始化内容,因此本文将根据是否使用热修复功能分别向您介绍相应的初始化操作。

不使用热修复功能

不使用 热修复 功能时,只需在 Application 中添加如下代码:

@Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        QuinoxlessFramework.setup(this, new IInitCallback() {
            @Override
            public void onPostInit() {
                // 在这里开始使用 mPaaS 功能
            }
        });
    }

    @Override
    public void onCreate() {
        super.onCreate();
        QuinoxlessFramework.init();
    }

使用热修复

使用 热修复 功能时,除了在 Application 对象中添加代码,还要完成以下操作。

操作步骤

  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"/>