Android App Bundle — это формат публикации, который включает в себя весь скомпилированный код и ресурсы вашего приложения, а также откладывает генерацию APK и подписание в Google Play.
Google Play использует ваш App Bundle для создания и предоставления оптимизированных APK-файлов для каждой конфигурации устройства, поэтому для запуска вашего приложения загружаются только те код и ресурсы, которые необходимы для конкретного устройства. Вам больше не нужно создавать, подписывать и управлять несколькими APK-файлами для оптимизации поддержки различных устройств, а пользователи получают более компактные и оптимизированные загрузки.
Для большинства проектов приложений создание пакетов приложений, поддерживающих обслуживание оптимизированных APK-файлов, не потребует больших усилий. Если вы уже организовали код и ресурсы своего приложения в соответствии с установленными правилами, создаёте подписанные пакеты Android App Bundles с помощью Android Studio или командной строки и загружаете их в Google Play , то оптимизированное обслуживание APK-файлов станет для вас очевидным преимуществом.
При публикации приложения в формате App Bundle вы также можете воспользоваться функцией Play Feature Delivery , которая позволяет добавлять функциональные модули в проект приложения. Эти модули содержат функции и ресурсы, которые включаются в приложение только при соблюдении указанных вами условий или становятся доступны для загрузки позднее во время выполнения с помощью библиотеки Play Core Library .
Разработчики игр, публикующие свои приложения с помощью пакетов приложений, могут использовать Play Asset Delivery : решение Google Play для доставки больших объемов игровых ресурсов, которое предлагает разработчикам гибкие методы доставки и высокую производительность.
Посмотрите следующее видео, чтобы узнать, почему вам следует публиковать свое приложение с помощью Android App Bundles.
Ограничение размера сжатой загрузки
Публикация с помощью Android App Bundles помогает пользователям устанавливать ваше приложение, используя минимально возможные загрузки, и увеличивает размер сжатой загрузки . То есть, когда пользователь загружает ваше приложение, общий размер сжатых APK-файлов, необходимых для установки приложения (например, базовый APK + APK конфигурации), не должен превышать 4 ГБ. Любые последующие загрузки, такие как загрузка модуля функции (и его APK конфигурации) по запросу, также должны соответствовать этому ограничению на размер сжатой загрузки. Пакеты ресурсов не влияют на это ограничение, но у них есть другие ограничения .
Если Play Console обнаружит, что размер любой из возможных загрузок вашего приложения или его функций по запросу превышает максимально допустимый размер , вы получите сообщение об ошибке.
Имейте в виду, что пакеты приложений Android не поддерживают файлы расширения APK ( *.obb ) . Если вы столкнулись с этой ошибкой при публикации пакета приложений, воспользуйтесь одним из следующих ресурсов для уменьшения размера загружаемого сжатого APK-файла:
- Убедитесь, что вы включили все APK-файлы конфигурации, установив
enableSplit = trueдля каждого типа APK-файла конфигурации. Это гарантирует, что пользователи будут загружать только тот код и ресурсы, которые им необходимы для запуска вашего приложения на своих устройствах. - Обязательно сократите размер приложения , удалив неиспользуемый код и ресурсы.
- Следуйте рекомендациям, чтобы еще больше уменьшить размер приложения .
- Рассмотрите возможность преобразования функций, используемых лишь некоторыми пользователями, в модули функций , которые ваше приложение сможет загружать позже по запросу. Имейте в виду, что это может потребовать рефакторинга вашего приложения, поэтому сначала попробуйте другие предложенные рекомендации.
Другие соображения
Ниже перечислены известные проблемы, возникающие при создании или обслуживании приложений с помощью Android App Bundles. Если у вас возникли проблемы, которые здесь не описаны, сообщите об ошибке .
- Частичная установка сторонних приложений, то есть приложений, которые устанавливаются не через Google Play Маркет и в которых отсутствует один или несколько обязательных раздельных APK-файлов, невозможна на всех сертифицированных Google устройствах и устройствах под управлением Android 10 (уровень API 29) или выше. При загрузке приложения через Google Play Маркет Google гарантирует установку всех необходимых компонентов.
При использовании инструментов, динамически изменяющих таблицы ресурсов, APK-файлы, созданные из пакетов приложений, могут вести себя непредсказуемо. Поэтому при сборке пакета приложений рекомендуется отключить такие инструменты.
В конфигурации сборки функционального модуля можно настроить свойства, конфликтующие со свойствами базового (или других) модулей. Например, можно установить
buildTypes.release.debuggable = trueв базовом модуле и установить значениеfalseв функциональном модуле. Такие конфликты могут привести к проблемам сборки и выполнения. Имейте в виду, что по умолчанию функциональные модули наследуют некоторые конфигурации сборки из базового модуля. Поэтому убедитесь, что вы понимаете, какие конфигурации следует сохранить, а какие — исключить в конфигурации сборки функционального модуля .
Дополнительные ресурсы
Чтобы узнать больше о пакетах приложений Android, обратитесь к следующим ресурсам.
Записи в блоге
- Создание вашего первого пакета приложений
- Что означает новый формат публикации для будущего Android
- Новые функции, которые помогут вам разрабатывать, выпускать и развивать свой бизнес в Google Play
- Последние обновления Android App Bundle, включая API дополнительных языков
- Лоскутный плед — история модульности
- Google Santa Tracker — переход на Android App Bundle
- Инструменты разработчика в Play Console
Видео
- Все, что нужно знать о подписании приложений в Play
- Создание вашего первого пакета приложений
- App Bundles: тестирование с помощью Bundletool и Play Console
- Настраиваемая доставка с помощью App Bundle и простой обмен тестовыми сборками
- Новые инструменты для оптимизации размера вашего приложения и увеличения числа установок в Google Play