О пакетах приложений Android

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, обратитесь к следующим ресурсам.

Сообщения в блоге

Видео