全部产品
云市场
云游戏

初始化 mPaaS

更新时间:2020-07-06 10:52:41

关于本文

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

不使用热修复功能

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

  1. @Override
  2. protected void attachBaseContext(Context base) {
  3. super.attachBaseContext(base);
  4. QuinoxlessFramework.setup(this, new IInitCallback() {
  5. @Override
  6. public void onPostInit() {
  7. // 在这里开始使用 mPaaS 功能
  8. }
  9. });
  10. }
  11. @Override
  12. public void onCreate() {
  13. super.onCreate();
  14. QuinoxlessFramework.init();
  15. }

使用热修复

使用 热修复 功能时,还需要完成以下操作。

操作步骤

  1. 使 Application 对象重新继承 QuinoxlessApplicationLike,并注意将此类防混淆。此处以 “MyApplication” 为例。

    1. @Keep
    2. public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks {
    3. private static final String TAG = "MyApplication";
    4. @Override
    5. protected void attachBaseContext(Context base) {
    6. super.attachBaseContext(base);
    7. Log.i(TAG, "attacheBaseContext");
    8. }
    9. @Override
    10. public void onCreate() {
    11. super.onCreate();
    12. Log.i(TAG, "onCreate");
    13. registerActivityLifecycleCallbacks(this);
    14. }
    15. @Override
    16. public void onMPaaSFrameworkInitFinished() {
    17. LoggerFactory.getTraceLogger().info(TAG, getProcessName());
    18. }
    19. @Override
    20. public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
    21. Log.i(TAG, "onActivityCreated");
    22. }
    23. @Override
    24. public void onActivityStarted(Activity activity) {
    25. }
    26. @Override
    27. public void onActivityResumed(Activity activity) {
    28. }
    29. @Override
    30. public void onActivityPaused(Activity activity) {
    31. }
    32. @Override
    33. public void onActivityStopped(Activity activity) {
    34. }
    35. @Override
    36. public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    37. }
    38. @Override
    39. public void onActivityDestroyed(Activity activity) {
    40. }}
  2. AndroidManifest.xml 文件中将 Application 对象指向 mPaaS 提供的Application对象。 将生成的 “MyApplication” 类添加到 key 为 mpaas.quinoxless.extern.applicationmeta-data 中。示例如下:

    1. <application
    2. android:name="com.alipay.mobile.framework.quinoxless.QuinoxlessApplication" >
    3. <meta-data
    4. android:name="mpaas.quinoxless.extern.application"
    5. android:value="com.mpaas.demo.MyApplication"
    6. />
    7. </application>
  3. 引入 Apache HTTP 客户端。

    在使用 RPC 或者热修复功能的时候,需要调用到 Apache HTTP 客户端相关的功能。只需在 AndroidManifest.xml 加入如下代码。更多信息,请参见 使用 Apache HTTP 客户端

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