在构建 Android App Bundle 时,是否可以针对不同的 API 级别使用不同的依赖项?
Is it possible to use different dependencies for different API levels when building an Android App Bundle?
我目前构建了两个单独的 APK 文件,一个用于 API 16-20 级,另一个用于 API 21+ 级。
对于 API 16-20,我使用 'com.squareup.okhttp3:okhttp:3.12.0',这是 API 20 及更低版本支持的最后一个版本。对于 API 21+ 我使用最新版本。
我正在使用构建风格实现这个,见下文:
productFlavors {
...
api21plus
{
dimension "apiLevel"
minSdkVersion 21
versionCode = 514
versionName = '1.514'
}
api16to20
{
dimension "apiLevel"
minSdkVersion 16
maxSdkVersion 20
versionCode = 513
versionName = '1.513'
}
}
...
dependencies {
api21plusImplementation 'com.squareup.okhttp3:okhttp:4.9.1'
api16to20Implementation 'com.squareup.okhttp3:okhttp:3.12.0'
}
我想迁移到 Android App Bundle 格式,但我不确定如何实现相同的结果。有什么方法可以为不同的 ABI 拆分\ API 级别指定不同的依赖关系?
您可以上传两个针对不同 Android 版本的 App Bundle,类似于上传两个针对 Android 版本的不同 APK。
这是唯一的方法,因为 AAB 不支持 Android SDK 版本的代码定位。
我目前构建了两个单独的 APK 文件,一个用于 API 16-20 级,另一个用于 API 21+ 级。
对于 API 16-20,我使用 'com.squareup.okhttp3:okhttp:3.12.0',这是 API 20 及更低版本支持的最后一个版本。对于 API 21+ 我使用最新版本。
我正在使用构建风格实现这个,见下文:
productFlavors {
...
api21plus
{
dimension "apiLevel"
minSdkVersion 21
versionCode = 514
versionName = '1.514'
}
api16to20
{
dimension "apiLevel"
minSdkVersion 16
maxSdkVersion 20
versionCode = 513
versionName = '1.513'
}
}
...
dependencies {
api21plusImplementation 'com.squareup.okhttp3:okhttp:4.9.1'
api16to20Implementation 'com.squareup.okhttp3:okhttp:3.12.0'
}
我想迁移到 Android App Bundle 格式,但我不确定如何实现相同的结果。有什么方法可以为不同的 ABI 拆分\ API 级别指定不同的依赖关系?
您可以上传两个针对不同 Android 版本的 App Bundle,类似于上传两个针对 Android 版本的不同 APK。
这是唯一的方法,因为 AAB 不支持 Android SDK 版本的代码定位。