Как создать полный файл APK, включая динамический модуль
В моем проекте есть модуль динамических функций, и я хотел бы создать APK для отладки или выпуска, включая динамическую функцию. В настоящее время я могу получить только базовый APK-файл.
По сути, я бы сгенерировал файл APK как обычное приложение. Но я не мог сделать с динамической функцией. Да, я знаю, что динамическая функция будет работать на основе AAB.
Есть ли способы сделать нормальный (базовый + все модули) APK файл?. Пожалуйста, помогите в этом.
Спасибо
1 ответ
Вы можете указать, должен ли ваш модуль по требованию быть включен в универсальный APK, который обычно генерируется для более старых устройств, а затем вы можете использовать bundletool для генерации Universal APK из комплекта приложений:.
В этом конкретном случае вы можете использовать что-то вроде:
bundletool build-apks --bundle <bundle_file> --output <APKS file> --ks <key_store> --key-pass <jks password> --ks-key-alias <key_alias> --ks-pass <key password> --overwrite --mode=universal
Ключевым моментом является включение --mode=universal
это инструктирует bundletool для создания Universal APK, который будет включать все модули, которые имеют <dist:fusing dist:include="true"/>
в манифесте.
Аналогичным образом, когда вы запускаете проект из Android Studio на устройстве, используя конфигурацию по умолчанию для Run (Deploy = Default APK), он включает все ваши модули по требованию.
Вместо этого, когда вы запускаете приложение из Studio, используя конфигурацию Run (Deploy = APK from AppBundle), вы можете выбрать, какие модули установлены.
Однако в обоих случаях вы не можете проверить загрузку модулей по требованию, если не заходите в магазин Play.
Я не вижу, чтобы это было задокументировано, но инструменты сборки Android Gradle включают в себя задачи по извлечению универсального APK для вас. Вы можете использовать что-то подобное:
./gradlew :yourmodule:packageDebugUniversalApk
Под капотом он использует bundletool и делает по сути то же самое, что и другой ответ, но приятно иметь возможность делать это из Gradle.
Загрузите jar-файл bundletool с Github (Последний выпуск> Активы> файл bundletool-all-version.jar). Переименуйте этот файл в bundletool.jar
- Создайте файл aab из Android Studio, например: myapp-release.aab
- Выполните следующую команду:
java -jar "путь / к /bundletool.jar" build-apks --bundle=myapp-release.aab --output=myapp.apks --ks="/ путь / к /myapp-release.keystore" --ks-pass= пройти:myapp-keystore-pass --ks-key-alias=myapp-alias --key-pass=pass:myapp-alias-pass
- файл myapp.apks будет создан
- Ниже приведена команда для создания универсального apk
java -jar bundletool.jar build-apks --bundle = nhl.aab --output = nhl.apks --mode = универсальный
`