Я планирую перейти с разделения ABI на функцию App Bundle.В настоящее время я использую этот код:
def versionCodesAbi = ['x86': 1, 'x86_64': 2, 'armeabi-v7a': 3, 'arm64-v8a': 4]
splits {
abi {
enable true
reset()
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
// "armeabi", "mips", "mips64" last three not needed and not supported currently
universalApk true
}
}
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def abi = versionCodesAbi.get(output.getFilter(OutputFile.ABI))
if (abi != null) {
output.versionCodeOverride =
abi * 1000 + variant.versionCode
}
}
}
, который дает 4 APK на ABI (+ универсальный).Причиной использования этого кода является уменьшение размера приложения из-за PanoWidget (использует NDK) и
renderscriptTargetApi 28
renderscriptSupportModeEnabled true
после удаления конфигурации разбиений (от +4001 до versionCode
) и построения BundleЯ получил файл .aab, который преобразован в .apks (используя bundletool ), содержит папку standalones/
.Внутри у меня есть четыре "вида" APK для x86, x86_64, armeabi-v7a и arm64-v8a ABI.На данный момент все выглядит хорошо.
Теперь я заметил, что код приложений вообще не использует RenderScript
, поэтому я считаю излишним использование supportMode
и targetApi
.Я удалил эти две строки, протестировал на устройствах / эмуляторе, все работает отлично.Итак, в следующий раз я создаю Bundle, и теперь у него нет версии x86_64 APK внутри архива .apks ... Должен ли он быть пропущен без поддержки RenderScript
?Я все еще использую VrPanoramaView
, и он, вероятно, имеет определенный код NDK для каждого ABI (не вижу на GitHub) ... К сожалению, у меня нет устройства x86 (32 или 64) для тестирования, и я небоюсь выпустить этот комплект ... Мне не хватает чего-нибудь, мне вообще нужна версия _64?