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。
准备工作
升级 easyconfig 插件到 2.8.4 版本。
升级 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
节点中所有的provided
和bundle
声明,使用 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
节点中所有的 provided
和 bundle
声明,使用 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 错误 进行排查。
自查
请参见 检查构建脚本配置 文档进行自查。