Открыть сервис

Android App Bundles

Android App Bundle (AAB) — это формат публикации приложений в магазине Google Play, разработанный компанией Google. Он представляет собой архив, содержащий все скомпилированные ресурсы и код приложения, но не предназначенный для непосредственной установки на устройство. Вместо этого Google Play использует AAB для генерации и доставки пользователю только тех файлов (так называемого APK-файла), которые соответствуют конфигурации его конкретного устройства (разрешение экрана, язык, архитектура процессора, версия Android и т. д.). Формат был представлен в 2018 году, а с августа 2021 года стал обязательным для новых приложений, публикуемых в Google Play.

История

До появления AAB разработчики публиковали приложения в виде универсальных APK-файлов, которые содержали все возможные ресурсы для всех типов устройств. Это приводило к избыточному размеру устанавливаемого приложения: на устройство загружались и занимали место, например, изображения для экранов с высокой плотностью пикселей, даже если у пользователя был экран с низкой плотностью, или библиотеки для всех архитектур процессоров, хотя устройство использовало только одну.

Проблема усугублялась с ростом числа языков, разрешений экранов и архитектур. Google начала искать решение, которое позволило бы уменьшить размер устанавливаемого приложения без усложнения процесса разработки. В 2018 году на конференции Google I/O был представлен Android App Bundle как альтернатива традиционному APK. В мае 2021 года Google объявила, что с августа 2021 года все новые приложения должны публиковаться в формате AAB, а существующие приложения должны перейти на этот формат до ноября 2021 года (позже срок был продлён до августа 2023 года для некоторых категорий). Это решение вызвало критику со стороны разработчиков, особенно тех, кто распространял приложения вне Google Play, так как AAB привязан к инфраструктуре Google.

Принцип работы

Android App Bundle не является устанавливаемым файлом. Это контейнер, который содержит:

Когда пользователь нажимает «Установить» в Google Play, сервер Google Play анализирует AAB и на основе информации об устройстве (полученной от Google Play Services) генерирует оптимизированный APK-файл, который содержит только необходимые ресурсы и код. Этот процесс называется динамической доставкой (Dynamic Delivery).

Виды APK, генерируемых из AAB

Google Play может создавать несколько типов APK:

Структура AAB

Файл AAB имеет расширение .aab и представляет собой ZIP-архив с определённой структурой папок:

Каждый модуль содержит поддиректории:

Преимущества

Недостатки и критика

Инструменты для работы с AAB

Применение

Формат AAB используется исключительно для публикации приложений в Google Play. Он не применяется для распространения приложений через другие каналы (например, Amazon Appstore, F-Droid, прямые загрузки с сайтов). Для side-loading или установки на эмуляторы разработчики могут генерировать универсальный APK из AAB с помощью bundletool.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →