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