что такое наборы app bundle
Что такое Android App Bundle и в чём его отличие от APK
Наверное, все знают, что APK – это формат, в котором приложения для Android размещаются в Google Play и на сторонних платформах. Но если при загрузке из официального каталога установка происходит автоматически, и пользователь никак не взаимодействует с установочным файлом, то при использовании альтернативных площадок, всё происходит несколько иначе. Сначала вы скачиваете сам APK-файл и уже вручную его устанавливаете. Но некоторое время назад на альтернативных платформах, помимо привычных APK-файлов, стали появляться какие-то Android App Bundles. Разбираемся, что это и зачем вообще нужно.
Android App Bundle — это как APK, только лучше
Android App Bundle – это новый, так называемый «пакетный», формат приложений для Android. В отличие от APK, которые для успешной установки должны соответствовать параметрам смартфона, на который их устанавливают, AAB – это универсальный формат, который уже содержит в себе сведения обо всех устройствах и разных сочетаниях железа сразу.
Если вы откроете APKMirror – пожалуй, самый популярный альтернативный сайт с приложениями, — и перейдёте на страницу любого приложения, то увидите, что у него есть несколько разных версий APK. Каждая из них соответствует смартфонам с определёнными особенностями. Обычно это версия Android, тип процессора или показатель DPI, но бывают и другие.
Как установить Android App Bundle
Посмотрите, сколько APK-файлов у Instagram. Их все заменяет один пакет AAB
Android App Bundle представлены только в единственном экземпляре. Потому что они изначально созданы универсальными и совместимыми с различными устройствами, независимо от сочетаний их аппаратного обеспечения и технических характеристик. При установке пакет сам выдаст смартфону подходящий установочный файл, и тот его установит.
Что такое Camera2 API, зачем это нужно и как узнать, поддерживает ли её ваш смартфон
Поскольку Android App Bundle – это пакет различных компонентов, то они поставляются не в виде целостного файла, а в виде ZIP-архива. Это несёт как минимум одно существенное ограничение – AAB нельзя установить так же просто, как обычные APK-файлы просто по нажатию. С AAB это не прокатывает. Поэтому для их установки необходим специальный клиент, который всё распакует и установит вам на устройство.
Я для этой цели пользуюсь клиентом APKMirror. С ним установка Android App Bundle выглядит вот так:
Установить AAB как обычный APK-файл нельзя
Чем Android App Bundle лучше APK
Несмотря на то что что пакет AAB содержит базовый APK-файл, даже распаковав архив вручную, вы всё равно не сможете его установить. Дело в том, что пакет обычно включает в себя ещё ряд дополнительных компонентов, которые необходимы приложению для нормальной установки. Поэтому тут строго обязательно нужно-приложение установщик, которое работает со сторонними AAB. Так что Google Play для этой роли точно не годится.
В августе 2021 года Google полностью переходит на формат AAB
Может показаться, что всё это слишком сложно и запоминать всю последовательность действий, описанных выше, не имеет смысла. Однако это большое заблуждение, потому что уже в августе 2021 года Google откажется от использования классических APK. То есть все новые приложения и те, которые обновятся к тому времени, уже не будут иметь выделенных APK, а будут представлены на сторонних площадках только в виде AAB.
Google настаивает на использовании Android App Bundle, потому что они, несмотря на универсальность, более легковесны, чем классические APK, и их легче поддерживать. Формат AAB позволяет разработчикам создать только одну сборку приложения, которую будет проще обновлять, контролировать и совершенствовать. Так что учитесь работать с «бандлами», иначе останетесь без стороннего ПО.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Как вы просыпаетесь по утрам? Наверное, тяжело. А что вас будит? Ну, конечно, будильник, который вы ставите на телефоне. Во-первых, это удобно, потому что не нужно иметь дополнительный атрибут в виде аналогового будильника. Во-вторых, это комфортно, потому что на Android, в отличие от iPhone, будильники срабатывают более мягко, аккуратно выводя вас из состояния сна. Но бывает и такое, что будильник может попросту не сработать. Недавно я сам столкнулся с подобной проблемой. Рассказываю, что делать.
На этой неделе Apple представила пакет услуг iCloud+ для подписчиков своего облачного сервиса. В его состав входят три инструмента безопасности: безлимит для видео с камер HomeKit, Private Relay для шифрования интернет-трафика и функция подмены адресов электронной почты. Несмотря на то что iCloud на Android работает вполне исправно в виде прогрессивного веб-приложения, получить доступ к iCloud+ можно только на iOS. Но если заменить Private Relay можно и обычным VPN, а видео с камер видеонаблюдения можно грузить на Яндекс.Диск, то вот где взять функцию, скрывающую настоящий адрес электронной почты?
С тех пор, как США запретили Huawei использовать сервисы Google на своих смартфонах, их владельцы почувствовали, каково это – быть в полной изоляции. Их лишили возможности не только скачивать софт из Google Play, но и многих других обыденных вещей, привычных рядовому пользователю Android. Им даже запретили расплачиваться за покупки бесконтактным способом при помощи Google Pay. В результате они были вынуждены переходить на какие-то суррогатные сервисы вроде «Кошелёк Pay» или SberPay с ограниченным спектром поддерживаемых карт. Но теперь у пользователей Huawei появилась альтернатива.
Новый способ публикации приложений с помощью Android App Bundle
На недавно прошедшей Google I/O 2018, среди множества нововведений, объявили также о добавлении нового формата приложений.
Этот формат получил название Android App Bundle и представляет собой улучшенный способ сборки вашего приложения. С его помощью можно легко оптимизировать размер приложения, при этом не нужно будет вносить какие-либо изменения в код. Android App Bundle включает весь скомпилированный код и ресурсы, отсеивая затем то, что не нужно конкретному устройству.
Важно! На данный момент Android App Bundle работает только в preview-версии Android Studio. Последняя версия Android Studio 3.2 Canary доступна здесь.
Формат Android App Bundle
Android App Bundle представляет собой файл (с расширением .aab), который загружается в Google. Каждый бандл включает скомпилированный код и ресурсы для всех модулей приложения и поддерживаемых конфигураций устройств.
Проще говоря, бандлы это подписанные ZIP-файлы, которые упорядочивают код и ресурсы приложения в модули.
Из этих модулей Google Play генерирует различные APK, которые предоставляются пользователям, такие как: базовые APK, dynamic feature APK, конфигурационные APK и (для устройств, которые не поддерживают разделённые APK) мульти-APK. Каталоги, окрашенные в синий цвет, представляют собой код и ресурсы, которые Google Play использует для создания конфигурационного APK для каждого модуля.
Примечание: бандл нужно создавать для каждого уникального приложения или applicationID. То есть, если вы используете несколько product flavor в своём приложении для создания различных APK, и каждая из этих веток использует уникальный applicationID, то вам нужно будет создать отдельный бандл для каждой ветки.
Код и ресурсы для каждого модуля организованы аналогично стандартным APK, и это логично, поскольку каждый из этих модулей может быть сгенерирован как отдельный APK. Ниже можно увидеть более подробное описание некоторых файлов и каталогов Android App Bundle:
Сборка App Bundle с помощью Android Studio
Создание бандла с помощью Android Studio очень похоже на создание APK. Для сборки достаточно выбрать в меню Build — Build Bundle(s)/APK(s) > Build Bundle(s) и IDE создаст бандл для выбранного варианта сборки и разместит его в каталоге
Если создаётся бандл для debug-версии приложения, Android Studio автоматически подпишет бандл с помощью отладочного ключа подписи. Для загрузки бандла в Google Play он должен быть подписан.
После того, как Android Studio завершит создание подписанного бандла, его можно будет открыть и проанализировать. Анализ бандла позволяет проверить содержимое и работает аналогично APK Analyzer.
Для создания App Bundle IDE использует тот же инструмент с открытыми исходным кодом, называемый bundletool, который Google Play использует для последующего преобразования бандла в подписанные APK.
Прежде чем загрузить бандл в консоль Google Play, его нужно подписать. Чтобы создать подписанный App Bundle, нужно выполнить следующие действия:
После того, как Android Studio завершит создание подписанного бандла, его можно будет найти и проанализировать, выбрав соответствующую опцию во всплывающем уведомлении. Если был выбран экспорт ключа подписи, то к нему можно будет быстро перейти, щёлкнув по стрелке вниз в правом нижнем углу всплывающего уведомления, чтобы развернуть его, и затем выбрав Show Exported Key File.
Загрузка App Bundle в консоль Google Play
После того, как бандл создан, его можно загрузить в Google Play для проверки, тестирования или публикации приложения. Прежде чем приступить к работе, следует соблюсти следующие условия:
Анализ APK с помощью проводника
Когда бандл загружен, Google Play автоматически генерирует разделённые APK и мульти-APK для всех конфигураций устройств, поддерживаемых приложением. В Play Console можно можно использовать App Bundle Explorer для просмотра всех вариантов APK, сгенерированных Google Play; анализа данных, таких как поддерживаемые устройства и экономия размера APK; загрузки созданных APK для тестирования.
Обновление приложения
После загрузки приложения в Play Console, для обновления приложения достаточно повысить код версии, а также создать и загрузить новый бандл. Затем Google Play сгенерирует обновлённые APK с новым кодом версии и будет предоставлять их по мере необходимости.
Заключение
Использование Android App Bundle даёт большие преимущества для оптимизации APK приложений. С помощью этого способа мы обновили одно из наших приложений, «Менеджер паролей от Wi-Fi сетей«, заменив в нём стандартный APK на App Bundle. Таким образом, размер APK файлов уменьшился на целый мегабайт, что является очень хорошим результатом.
Кроме того, Google на данный момент тестирует дополнение к App Bundle, Dynamic feature modules, с помощью которого можно разбивать базовый APK на части, которые будут докачиваться при необходимости, пока что эта технология находится в бета-версии.
Возможно, единственным недостатком банлдов на данный момент назвать необходимость использовать preview-версию Android Studio, однако эта проблема временная.
Что такое Android App Bundle (AAB)
Возможно, Вы слышали термин «APK». Однако все более распространенным становится новый термин «Android App Bundle» (AAB). Так что же такое AAB и заменит ли он APK?
Что такое Android App Bundle
Начиная с августа 2021 года, Google будет требовать, чтобы все приложения Android, опубликованные в Play Store, использовали формат «Android App Bundle». Раньше приложения могли использовать формат AAB или старый формат APK.
AAB имеет все те же ресурсы, но также включает компоненты, называемые «Динамические функции» и «Пакеты активов». Преимущества этих функций заставляют Google отказываться от APK в пользу AAB.
Проще говоря, App Bundle включает в себя все компоненты для создания APK. Когда Вы загружаете App Bundle из Play Store, он создает APK, предназначенный для Вашего конкретного устройства.
Каковы преимущества AAB
Android App Bundle имеют несколько преимуществ. Прежде всего, AAB создают APK-файлы меньшего размера. Поскольку Bundle создает приложение специально для Вашего устройства, могут потребоваться не все компоненты, что приведет к уменьшению размеров файлов.
Также не все эти компоненты нужно загружать заранее. Концепция «динамической доставки» означает, что Вы изначально получаете приложение, которое может загружать и устанавливать новые функции по мере необходимости. Поэтому, если Вы никогда не используете определенные функции, они не загружаются на Ваше устройство.
Короче говоря, преимущество AAB в том, что они просто более гибкие и динамичные. Меньшие размеры файлов, более простая предварительная загрузка и предоставление компонентов по мере необходимости делают APK-файлы более разумными.
Заменят ли App Bundles файлы APK
Когда Google объявил, что для Play Store потребуются пакеты Android App Bundle вместо APK, возникло общее недоразумение: означает ли это, что Вы больше не сможете устанавливать APK на свое устройство? Ответ — нет.
Фактически, как объяснялось в разделе выше, App Bundle создают APK-файлы. APK — это то, что запускает Android, но AAB — это то, что разработчик загружает в Play Store.
App Bundles могут заменять APK-файлы в Play Store, но не на самих устройствах Android. Вы по-прежнему можете загружать APK-файлы на свое устройство, как всегда. Фактически, Вы также можете загружать неопубликованные файлы AAB. Будьте уверены, что это всего лишь изменение в Play Store, а не в том, как ОС Android работает с файлами приложений.
Заметки из Зазеркалья
Внимание! С августа 2021 года публиковать новые приложения в Google Play можно будет только в виде Android App Bundle (AAB).
Android App Bundle включает в себя весь скомпилированный код и ресурсы вашего приложения, а также перекладывает создание APK и подписки на Google Play. Конечные APK-файлы под конкретные устройства и архитектуры процессоров в этом случае магазин собирает сам. В случае необходимости их можно будет получить потом из консоли разработчика. Пакет Android App Bundle позволяет упростить работу по сборке приложения меньшего размера, что может повысить успешность установки и сократить количество удалений. Пакет имеет расширение файла «.aab».
Магазин уже больше года принимает приложения для загрузки в формате AAB и теперь начинается постепенный отказ от публикации приложений в формате APK, который используется для установки приложений на устройство.
Переходить на новую мобильную платформу 8.3.19 сейчас нет никакой срочности, если вы не планируете выпускать новое приложение в магазине. Обновлять в формате APК существующие приложения можно будет в течение нескольких месяцев и после августа 2021.
Следите за сообщениями от Google.
Сборщик мобильных приложений подготовлен для сборки нового формата. В новой версии разработчику необходимо создать ключ загрузки в настройках поставщика и собрать приложение в новом формате на мобильной платформе версии 8.3.19.52 и выше.
Также исправлен и описан процесс автоматической загрузки результатов сборки приложения как в формате APK, так и в формате AAB.
В документации по сборщику мобильных приложений можно найти новую информацию по ключам подписи и загрузки в настройках поставщика, о сборке приложения в новом формате и об автоматической загрузке приложения в магазин Google Play:
Справка Google по публикации приложений в магазине:
Переход на сборку Android App Bundle в сборщике мобильных приложений и публикацию в магазине Google Play
Прежде всего, обновите сборщик мобильных приложений на версию из последних дистрибутивов мобильной платформы 8.3.19.
После этого загрузите в него непосредственно дистрибутив мобильной платформы 8.3.19. Именно в такой последовательности.
В противном случае старый сборщик может неправильно загрузить в базу новый дистрибутив, что потенциально приведет к ошибкам сборки.
Перевод существующей публикации на сборку Android App Bundle
Шаг 1. Зарегистрируйтесь в сервисе подписания приложений Google Play
1. Откройте Play Console.
2. Выберите приложение.
После этого будет открыта «Программа подписания приложений».
Шаг 2. Отправьте оригинальный ключ подписи приложения в Google
1. В «Программе подписания приложений» выберите «Экспортировать и загрузить ключ из Java Keystore«.
2. Оригинальный ключ подписи приложения следует выгрузить в сборщике мобильных приложений:
3. Полученный файл с расширением «.pepk» загрузите на странице «Программа подписания приложений» в Play Console.
Внимание! Не рекомендуется создавать ключ подписи в магазине Google Play, поскольку его нельзя получить из магазина и использовать в сборщике мобильных приложений.
Внимание! Включение автоматической подписки приложения распространяется на весь срок действия вашего приложения.
В целях обеспечения безопасности после регистрации в программе подписания вы не сможете получить копию ключа подписи вашего приложения и не сможете удалить его с серверов Google, не удалив само приложение.
Шаг 3. Создайте ключ загрузки
1. Создайте ключ загрузки:
1) В сборщике мобильных приложений в меню «Сервис» выберите команду «Настройка параметров поставщика«.
2) Откройте вкладку «Параметры для ОС Android» и в группе «Ключ загрузки приложения» нажмите ссылку «Экспорт сертификата ключа«.
2. Полученный файл с расширением «.pem» загрузите в Play Console в «Программе подписания приложений«, там же, где загружали ключ подписи.
В качестве ключа загрузки можно также использовать ключ подписи приложения, но этот способ не рекомендуется, т.к. является менее безопасным.
Внимание! Если вы потеряете свой ключ загрузки или если он будет скомпрометирован, то чтобы отозвать свой старый ключ загрузки и сгенерировать новый, следует связаться с техподдержкой Google.
Поскольку ключ подписи вашего приложения защищен Google, вы можете продолжать загружать новые версии своего приложения в качестве обновлений исходного приложения, даже если вы измените ключи загрузки.
Шаг 4. Завершите регистрацию в сервисе подписания приложений Google Play
1. В программе подписания в магазине нажмите кнопку «Сохранить«.
2. Далее следует принять «Условия использования«.
После этого обновления приложения можно загружать в магазин Google Play только в формате AAB (Android App Bundle).
Шаг 5. Соберите мобильное приложение и отправьте его в Google Play с помощью ключа загрузки
1. В новом сборщике мобильных приложений, в карточке приложения на закладке «Для ОС Android» для отправки приложения в магазин Google Play следует выбрать результат сборки приложения (APK, AAB или собирать все).
Выберите «Все варианты результирующих файлов» или «Только aab-файл (пакет для магазина)«.
2. Сборщик соберет пакет для магазина и подпишет его ключом загрузки.
3. Собранный AAB-файла опубликуйте в магазине.
4. Подготовьте и разверните выпуск вашего приложения в магазине.
Создание публикации нового приложения
Шаг 1. Создайте ключ загрузки и соберите приложение
1. Если еще не создали, то создайте ключ загрузки в настройках поставщика на закладке «Параметры для ОС Android» в сборщике мобильных приложений.
2. Соберите приложение в формате AAB.
Шаг 2. Подготовьте выпуск
1. Подготовьте и внедрите выпуск приложения в магазине Google Play, следуя инструкциям магазина.
2. Выбрав тип версии (закрытая, альфа, бета и т.д.), настройте параметры подписания приложений в разделе «Разрешите Google защищать ключ подписи приложения и управлять им«.
3. Выберите «Экспортировать и загрузить ключ из Java Keystore«.
4. Найдите оригинальный ключ подписи приложения. Его можно выгрузить из настроек поставщика на закладке «Параметры для ОС Android» в сборщике мобильных приложений с помощью команды «Экспорт закрытого ключа«.
5. Полученный файл с расширением «.pepk» загрузите в магазин.
6. Найдите оригинальный ключ загрузки. Его можно выгрузить из настроек поставщика на закладке «Параметры для ОС Android» в сборщике мобильных приложений с помощью команды «Экспорт сертификата«.
7. Полученный файл с расширением «.pem» загрузите в магазин в «Программу подписания приложений» там же, где загружали ключ подписи.
8. Выберите «Обновить».
9. Чтобы продолжить, нужно принять Условия использования и зарегистрироваться в сервисе подписания приложений.
10. Собранный AAB-файл выгрузите из сборщика и опубликуйте в магазине, в созданном выпуске.
Отличие Android App Bundle (.aab) от APK файла
Традиционно приложения Android были доступны в формате APK, но все стало меняться с появлением Android App Bundle и различных дополнительных расширений, таких как APKM, XAPK или файлы ZIP с несколькими APK.
Что такое Android App Bundle (.aab)
В наборах приложений для Android нет ничего нового. Google представил их нам на Google I/O в 2018 году как новый формат публикации, который уменьшит размер загрузок для пользователей, что, согласно исследованиям Google, приводит к большему количеству загрузок и меньшему количеству удалений.
По сути, App Bundle содержит все ресурсы приложения, хотя его нельзя установить непосредственно на мобильный телефон. То есть включены база и остальная часть рекурсора, такая как графика, макеты и тексты для всех возможных конфигураций.
То же приложение, опубликованное в App Bundle, занимает больше, чем в APK, но не файл, который пользователи будут скачивать в Google Play.
На самом деле это намного проще, чем кажется. Если разработчик создает приложение и публикует его в формате APK, это нормально, что включены все ресурсы, например графика на 30 языках, поддерживаемых приложением. Для простоты, если размер каждого изображения составляет 100 КБ, в указанном APK-файле будет 3000 КБ.
Что, если пользователь позже изменит язык мобильного телефона? К счастью, все предусмотрено. В таком случае Google Play загружает дополнительные языковые файлы из вашего магазина. То же самое относится к модульным дополнительным функциям, которые включены в приложение и которые могут быть загружены позже, но не включены в первоначальную загрузку.
Чем APK отличается от Android App Bundle (.aab)?
До сих пор мы много говорили о App Bundle с точки зрения разработчиков приложений, но как пользователь, чем один отличается от другого? Вопрос действительно сложный, потому что как пользователь вы не должны сталкиваться с App Bundles: это пакет для разработчиков, которые публикуют свои приложения в Google Play. Как пользователь, вы ничего не можете с этим поделать, по крайней мере, без необходимых инструментов и знаний.
И все же мы находим их в конкретном случае: когда мы хотим установить приложения из-за пределов Google Play (на сторонних сайтах), и они доступны не в APK, а в App Bundle. То, что мы здесь загружаем, на самом деле не является оригинальным пакетом приложений, а представляет собой набор APK-файлов, созданных Google для различных конфигураций.
То есть, в то время как приложения, опубликованные с помощью APK, представляют собой один APK, приложения, опубликованные как App Bundle, имеют базовый APK и несколько APK для разных конфигураций, называемых разделенными APK. Это усложнило жизнь веб-сайтам для загрузки приложений Android, которым пришлось создавать альтернативы, такие как формат APKM для APKMirror или XAPK, на trashbox.ru и других сайтах.
APKM, XAPK или ZIP, полный APK, не являются пакетом приложений, хотя и являются их побочным эффектом. Все они представляют собой ZIP-файл, который включает в себя базовый APK и дополнительные APK для поддерживаемых архитектур, языков или любого другого доступного варианта. Они не могут быть установлены сами по себе, как APK, но требуется специальное приложение-установщик, способное устанавливать «фрагменты» вместе.
То есть App Bundle является заменой APK при публикации приложения в Google Play, но не при его установке. Файлы APK продолжают устанавливаться на мобильный телефон, хотя и не один, а несколько, включая только то, что необходимо для его работы на вашем мобильном телефоне.
С помощью App Bundle, который загружает разработчик, Google генерирует бесчисленное количество пользовательских APK-файлов, которые позволяют ускорить загрузку приложений. App Bundle и APK не противоположны, а дополняют друг друга. Это хорошее изобретение, хотя, несомненно, усложняет установку приложений из внешних источников.