升级组件化/mPaaS Inside 接入方式到 AAR 接入方式

AAR 接入方式 是指基本采用原生接入的方案。在采用 AAR 接入方式时,由于对 mPaaS 基线管理的需要,请使用最新稳定版的 Android Gradle Plugin 和 Gradle Wrapper。建议使用 Android Gradle Plugin 3.5.3 和 Gradle Wrapper 5.6 以上版本,目前稳定版是 Android Gradle Plugin 3.6.x 和 Gradle Wrapper 6.3。

准备工作

  1. 升级 easyconfig 插件到 2.8.4 版本。

  2. 升级 Gradle 到 5.0 以上。

升级组件化接入方式到 AAR 接入方式

插件变化

  • 更改 Gradle Wrapper 和 Android Gradle Plugin 到您需要的版本。Gradle 应为 5.0 或以上版本。

  • 在所有项目的根目录的 build.gradle 文件中,移除 classpath 'com.alipay.android:android-gradle-plugin'

  • 在 bundle 中移除所有的 com.android.application 插件,所有的 bundle 使用原生项目里的 com.android.library

  • 移除 bundle 中所有的 com.alipay.bundle 插件。

  • 移除 bundle 中的 bundle {} DSL 定义,移除 public.xml 定义(如果有特别需要,可以保留)。

  • 移除 portal 中所有的 com.alipay.portal 插件。

  • 移除 portal 中的 portal {} DSL 定义,移除 public.xml 定义(如果有特别需要,可以保留)。

  • 更改 apply plugin: 'com.alipay.apollo.baseline.update'apply plugin: 'com.alipay.apollo.baseline.config'

依赖变化

  • 移除 dependencies 节点中所有的 providedbundle 声明,使用 BOM 方式引入 AAR 依赖。

        implementation 'com.mpaas.android:push'
        implementation 'com.mpaas.android:nebula'
        implementation 'com.mpaas.android:push-hms5'
        implementation platform("com.mpaas.android:mpaas-baseline:$(latest)")
    
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test.ext:junit:1.1.1'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    $(latest) 这个变量是 mPaaS 发布的最新基线。如果是标准基线,则不需要更改 mpaas-baseline 的值;否则需要改成对应的定制基线的 artifact

  • 移除加载框架与定制。更多关于加载框架和定制的信息,请参见 加载框架与定制

通用组件使用变化

如果使用了 metainfo.xml 方式定义通用组件,请参见文档 使用 mPaaS 框架通用组件

热修复使用变化

如果使用了热修复功能,则需要将 portal 工程中的 com.alipay.mobile.quinox.LauncherApplication 替换为 com.alipay.mobile.framework.quinoxless.QuinoxlessApplication,并按照在 AAR 接入方式下使用热修复的流程进行初始化,更多信息,请参见 使用热修复功能。如果没有使用热修复,则替换为 android.app.Application

文件变化

不再需要 slinks 文件和 res_slinks 文件。

可能存在的问题

因为高版本默认禁用了 v1 签名,可能导致在 v1 签名不存在的情况下无线保镖报错,请参见 如何解决运行时出现的 608 错误或 libsgmain 的 native 错误 进行排查。

自查

请参见 检查构建脚本配置 文档进行自查。

升级 mPaaS Inside 接入方式到 AAR 接入方式

插件变化

  • 更改 Gradle Wrapper 和 Android Gradle Plugin 到您需要的版本。Gradle 应为 5.0 或以上版本。

  • 在所有项目的根目录的 build.gradle 文件中,移除 classpath 'com.alipay.android:android-gradle-plugin'

  • 移除 portal 中所有的 com.alipay.portal 插件

  • 移除 portal 中的 portal {} DSL 定义,移除 public.xml 定义(如果有特别需要,可以保留)。

  • ​更改 apply plugin: 'com.alipay.apollo.baseline.update'apply plugin: 'com.alipay.apollo.baseline.config'

依赖变化

移除 dependencies 节点中所有的 providedbundle 声明,使用 BOM 方式引入 AAR 依赖。

    implementation 'com.mpaas.android:push'
    implementation 'com.mpaas.android:nebula'
    implementation 'com.mpaas.android:push-hms5'
    implementation platform("com.mpaas.android:mpaas-baseline:$(latest)")

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

$(latest) 这个变量是 mPaaS 发布的最新基线。如果是标准基线,则不需要更改 mpaas-baseline 的值;否则需要改成对应的定制基线的 artifact

通用组件使用变化

如果使用了 metainfo.xml 方式定义通用组件,请参见文档 使用 mPaaS 框架通用组件

gradle.properties 变化

不再需要设定 quinoxless=true,已有的 quinoxless=true 配置可以保留也可以删除。

可能存在的问题

因为高版本默认禁用了 v1 签名,可能导致在 v1 签名不存在的情况下无线保镖报错,请参见 如何解决运行时出现的 608 错误或 libsgmain 的 native 错误 进行排查。

自查

请参见 检查构建脚本配置 文档进行自查。

使用 AAR 接入

  1. 将 mPaaS SDK 添加到项目中

  2. 在各个 Module 中添加需要使用的组件