Я публикую приложение, используя новый формат пакета приложения (aab). Приложение включает в себя несколько собственных библиотек для armeabi-v7a. Когда я устанавливаю приложение через Google Play на архитектуре arm64-v8a, оно не включает собственные библиотеки, для которых нет файла arm64-v8a, поэтому файл
В соответствии с этим https://stackoverflow.com/a/39622499/534471, библиотека armeabi-v7a должна работать на устройстве arm64-v8a (и она отлично работает при установке через adb, поэтому она действительно работает).
Консоль Google Play показывает различные apk по архитектуре, плотности экрана и т. Д. По размерам apk я могу четко определить, какие из них не содержат нативных библиотек. Я также использую собственное приложение libs monitor для анализа установленного apk, и оно явно не включает в себя нужные мне нативные библиотеки (оно включает нативные библиотеки arm64-v8a, если приложение имеет файл arm64-v8a, но не если есть только armeabi -v7a версия).
Мой файл сборки Gradle содержит небольшой фрагмент кода для конфигурации пакета:
bundle {
language {
enableSplit = false
}
density {
enableSplit = true
}
abi {
enableSplit = true
// include 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
Теперь вот мой вопрос: есть ли способ сказать инструменту сборки, чтобы он включал «следующую лучшую» нативную библиотеку в каждый apk, следующей из которых является ближайшая версия, которая будет работать на конкретной архитектуре?
PS: если я установлю enableSplit = false для abi, то он будет включать собственную библиотеку (как и ожидалось), но, к сожалению, для всех платформ, включая x86, размер которого составляет 20 МБ ...
Для тех, кто еще не видел, как Google Play разбивает пакет приложений на apks, вот скриншот: