Android App Bundle: часто задаваемые вопросы

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

Что такое пакет приложений Android (AAB)?

Запущенный в 2018 году формат Android App Bundle (AAB) — это формат публикации приложений для Android, поддерживаемый Google Play и другими магазинами приложений, а также инструментами сборки, такими как Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity и Unreal.

В чём разница между AAB и APK?

Пакеты приложений предназначены только для публикации и не могут быть установлены на устройства Android. Пакет Android (APK) — это устанавливаемый исполняемый формат приложений Android. Пакеты приложений должны быть обработаны дистрибьютором в APK-файлы, чтобы их можно было установить на устройства.

Является ли AAB проприетарным форматом, который можно использовать только в Google Play?

Нет, AAB не является проприетарным продуктом. Пакет приложений имеет открытый исходный код , поэтому его может поддерживать любой магазин приложений. Пакеты поддерживаются Google Play и некоторыми другими магазинами приложений.

Препятствует ли создание AAB-файлов публикации в других магазинах приложений?

Нет, вам не запрещено публиковать приложения в других магазинах приложений. При разработке приложения вы можете одновременно создавать AAB-файлы и APK-файлы, в зависимости от того, какой формат публикации требуется для каждого магазина приложений.

Сколько усилий требуется для использования AAB?

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

Используют ли уже кто-нибудь из разработчиков AAB-модули?

Да. Более 1 миллиона приложений и игр используют пакеты приложений для публикации своих рабочих версий в Google Play, включая большинство популярных приложений, имеющих миллиарды активных установок. Если вы используете Google Play для установки приложений, многие приложения на вашем устройстве были опубликованы в виде пакетов приложений.

Предотвращает ли AAB установку приложений пользователями «из сторонних источников»?

Нет, форматы AAB не мешают пользователям устанавливать APK-файлы из любых источников. Поскольку AAB — это всего лишь формат публикации, он не меняет принцип работы платформы Android.

Если разработчик использует AAB для распространения оптимизированных APK-файлов, означает ли это, что у пользователей, которые делятся этими APK-файлами, могут возникнуть проблемы?

На Android всегда были редкие случаи, когда APK-файлы не могли быть напрямую перенесены с одного устройства на другое, независимо от того, опубликовано ли приложение через APK или AAB. В частности, если APK-файлы оптимизированы для конкретного устройства (например, для определенной архитектуры чипа), то прямая передача этих APK-файлов на другое устройство может вызвать проблемы, если целевое устройство не соответствует свойствам исходного устройства. В таких ситуациях необходимо установить APK-файл или набор APK-файлов, подходящих для целевого устройства.

Могу ли я опубликовать приложение в нескольких магазинах приложений?

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

Распространяется ли требование AAB на частные приложения, опубликованные в управляемом Google Play?

Да, частные приложения, публикуемые в управляемом Google Play из Play Console, обязаны публиковать AAB (Account-Account-Based Applications).

Публикация APK-файлов по-прежнему поддерживается через iframe Managed Play .

О подписи приложений в Play Store

Что такое подпись приложений в Play Store?

Каждый APK-файл на Android должен быть криптографически подписан ключом подписи приложения, чтобы его можно было установить. Платформа Android использует этот ключ, чтобы гарантировать, что любые обновления приложения соответствуют установленному приложению на устройстве, так что после первоначальной установки каждое обновление приложения будет поступать от одного и того же владельца ключа. Это снижает риск вредоносных обновлений приложений. Запущенная в 2017 году, Play App Signing — это сервис управления ключами Google Play, который защищает и управляет ключами подписи приложений разработчиков Play для их приложений, распространяемых через Play. Кроме того, Play App Signing выполняет операцию подписи APK-файлов, которые Play генерирует из загруженных AAB-файлов. Play App Signing необходим для новых приложений, чтобы они могли использовать AAB-файлы.

Зачем Google запустил технологию подписи приложений в Play Store?

В течение многих лет ключи подписи приложений представляли собой проблему для разработчиков Play. Потеря ключа означала невозможность предоставления обновлений приложения пользователям, а компрометация ключа подвергала пользователей риску вредоносных обновлений. В сфере распространения программного обеспечения принято, чтобы каналы распространения хранили и управляли ключами для распространяемого ими программного обеспечения, поскольку это снижает эти риски. Play App Signing был запущен в 2017 году, чтобы исключить риск потери ключей распространения Play, обеспечить защиту пользователей Play после компрометации ключа и предоставить разработчикам преимущества постоянных инвестиций Google в безопасность.

Как Google обеспечивает безопасность подписи приложений в Play Store?

Google защищает ключи разработчиков с помощью той же передовой и безопасной инфраструктуры, которая используется для защиты собственных ключей Google. Ключи хранятся в зашифрованном виде на защищенных выделенных серверах управления ключами со строгими списками контроля доступа (ACL) и журналами аудита, обеспечивающими защиту от несанкционированного доступа и охватывающими все операции. Подробная информация о мерах безопасности облачных сервисов Google и передовых методах доступна в интернете .

Могу ли я выбрать ключ подписи приложения, который Play Store будет использовать для моего приложения?

Да, при создании нового приложения вы можете либо позволить Google сгенерировать и сохранить ключ подписи приложения от вашего имени, либо выбрать собственный ключ подписи приложения и загрузить его копию.

Я хочу использовать один и тот же ключ подписи приложения для Play Store и других магазинов приложений. Это всё ещё возможно?

Если вы решили использовать один и тот же ключ подписи в нескольких магазинах приложений, учитывая принцип работы обновлений приложений , то это по-прежнему возможно. Помните, это позволит каждому магазину приложений выполнять межмагазинные обновления вашего приложения. У вас есть два варианта:

  • Вы можете сгенерировать ключ локально и загрузить его копию в Play Store. Таким образом, вы сможете использовать тот же ключ, что и в Google Play, при разработке своего приложения для других магазинов приложений.
  • Для подписи приложений в Play Store можно использовать ключ, сгенерированный Google, затем загрузить из Play Console APK-файлы, подписанные этим ключом, и использовать их для распространения в других магазинах приложений или на веб-сайтах.

Могу ли я использовать функцию подписи приложений Play для приложения, созданного до августа 2021 года, без предоставления копии ключа подписи приложения?

Да, Play App Signing поддерживает опцию «обновления ключа» для приложений, созданных до августа 2021 года. Это позволяет приложению начать использовать Play App Signing с новым ключом подписи. Однако, чтобы использовать эту опцию, после обновления вам потребуется загрузить в каждый релиз два компонента: пакет приложения и старый APK-файл, подписанный вашим старым ключом подписи. Play будет использовать ваши AAB-файлы для генерации APK-файлов, подписанных обновленным ключом, для новых установок и их обновлений; одновременно Play будет использовать ваши старые APK-файлы для обновлений приложения для пользователей, у которых уже установлено ваше приложение. Со временем старые установки будут переходить на обновленный ключ (например, когда пользователи переходят на новое мобильное устройство).

Можно ли использовать один и тот же ключ подписи для приложений, созданных до августа 2021 года, и для приложений, созданных после августа 2021 года?

Как правило, не рекомендуется использовать один и тот же ключ подписи для нескольких приложений; безопаснее использовать уникальный ключ для каждого приложения. Однако, если вам необходимо использовать один и тот же ключ подписи для нескольких приложений, это возможно. Вы можете загрузить копию существующего ключа подписи приложения при настройке Play App Signing. Или, если вы не хотите делиться существующим ключом подписи приложения, вы можете использовать предстоящую опцию «обновить ключ» для вашего приложения, выпущенного до августа 2021 года, чтобы начать использовать Play App Signing. Таким образом, и ваше приложение, выпущенное до августа 2021 года, и ваше приложение, выпущенное после августа 2021 года, смогут использовать один и тот же новый ключ.

Можно ли изменить ключ подписи приложения, используемый функцией подписи приложений Play?

Да, приложения могут изменить свой ключ, запросив обновление ключа в Play Console.

Как проверить, не внес ли Google Play неожиданные изменения в мой код?

В любое время вы можете загрузить и проверить артефакты из Google Play, а также из разделов «Последние релизы» и «Пакеты» в Play Console. Кроме того, API для разработчиков Play скоро предоставит возможность проверять APK-файлы перед их добавлением в трек релизов. Вы также можете использовать дополнительную функцию, называемую прозрачностью кода для пакетов приложений . Благодаря прозрачности кода вы и ваши конечные пользователи сможете требовать от магазина приложений, такого как Google Play, ответственности за предоставляемый им код.

Как работает прозрачность кода для пакетов приложений?

Прозрачность кода — это дополнительная функция, позволяющая требовать от магазина приложений, распространяющего ваше приложение, ответственности за предоставленный им код. Для использования прозрачности кода во время сборки вы генерируете в своем приложении файл прозрачности кода, представляющий ваш код (в частности, это файл, содержащий хеши кода вашего приложения). Вы подписываете его своим собственным закрытым ключом прозрачности кода, который есть только у вас. Вам никогда не нужно предоставлять свой ключ прозрачности кода Google. Затем на устройстве вы можете проверить установленный APK-файл и убедиться, что подписанный вами файл прозрачности кода по-прежнему соответствует коду APK. Это дает вам уверенность в том, что даже если сам APK-файл был переподписан во время распространения, код, проверяемый с помощью прозрачности кода, не был изменен. Если есть несоответствие, это свидетельствует о том, что код был изменен во время распространения. Прозрачность кода не заменяет подписи APK и не является частью платформы Android.

Публикация крупных приложений и игр в Google Play

Какие существуют ограничения по размеру приложений в Google Play при использовании AAB?

Максимальный размер сжатого загружаемого файла для базового модуля, сгенерированного из AAB, составляет 200 МБ. То есть, Google Play сначала сгенерирует базовый модуль, а затем любые дополнительные модули функций или пакеты ресурсов из вашего AAB. Затем Google Play проверяет, не превышает ли максимальный суммарный размер сжатых загружаемых файлов для любого отдельного устройства 4 ГБ.

Поддерживает ли Google Play файлы расширения (OBB) для файлов AAB?

Нет, Google Play не поддерживает файлы расширения для AAB-файлов. Файлы расширения (OBB) — это устаревшее решение Google Play, предназначенное для публикации больших приложений и игр с использованием APK-файлов. Существуют альтернативы от Google и сторонних разработчиков для AAB-файлов размером более 200 МБ.

Как опубликовать приложение или игру размером более 200 МБ в Google Play?

Крупные приложения и игры, использующие AAB, могут либо использовать сервисы доставки Play, такие как Play Asset Delivery или Play Feature Delivery, чтобы превысить лимит в 200 МБ, либо использовать сторонние сети доставки контента.

Какие преимущества предлагает Play Asset Delivery по сравнению с файлами расширения (OBB)?

В Google Play для предоставления пользователям дополнительных ресурсов APK-файлы требовали отдельных файлов расширения (OBB). Однако, поскольку OBB-файлы не были подписаны и хранились во внешнем хранилище приложения, они были не очень безопасны. С помощью Play Asset Delivery (PAD) игры размером более 200 МБ могут заменить OBB-файлы, публикуя всю игру как единый пакет приложения в Play Store. Помимо более простого процесса публикации и гибких режимов доставки, PAD означает, что обновления требуют меньше места на устройстве. В результате это может привести к увеличению количества установок. Наконец, поскольку ASTC теперь поддерживается примерно на 80% устройств, функция PAD, позволяющая выбирать формат сжатия текстур, позволяет распространять ASTC на устройства, которые его поддерживают. Вы можете охватить максимально широкий спектр устройств, эффективно используя доступное оборудование и память устройства.

Функции доставки Google Play разблокированы с помощью AAB.

Какие примеры новых функций Play предлагает разработчикам, использующим AAB?

Магазины приложений, такие как Google Play, преобразуют файлы AAB в устанавливаемые APK-файлы. Ответственность за APK-файлы позволяет предлагать новые функции и сервисы, приносящие пользу разработчикам и пользователям. Play уже предлагает такие сервисы, которые широко используются и ценятся разработчиками; два примера — Play Feature Delivery и Play Asset Delivery .

Что такое доставка функций Play?

Одна из особенностей пакетов приложений заключается в возможности разделения приложения на несколько модулей, называемых «функциональными модулями». Эти модули могут динамически доставляться пользователям и устройствам в разное время (в отличие от прошлого, когда все приходилось доставлять одним файлом во время установки). Play Feature Delivery позволяет настраивать, какие функциональные модули доставляются на какое устройство и когда, используя режимы доставки во время установки, условной доставки и доставки по запросу. Это позволяет уменьшить размер приложения, что приведет к увеличению количества установок, и персонализировать пользовательский опыт. Например, вы можете предоставлять редко используемую функцию, такую ​​как поддержка клиентов, по запросу пользователям, которым она необходима, а не во время установки, уменьшая размер первоначальной установки для всех пользователей. Или вы можете предоставлять полный функционал приложения на устройствах высокого класса, а на устройствах начального уровня с ограниченными данными и объемом памяти — меньший по размеру функционал с дополнительными функциями по запросу.

Что такое доставка игровых ресурсов?

Технология Play Asset Delivery позволяет разработчикам игр улучшить пользовательский опыт и сократить время ожидания за счет динамической доставки больших файлов в оптимальное время. Игры, использующие Play Asset Delivery, также могут применять целевой формат сжатия текстур, благодаря чему пользователи получают только те файлы, которые подходят для их устройства, без потери места или пропускной способности.

Доступны ли эти функции доставки приложений из Play Store в других магазинах приложений?

Нет, Play Feature Delivery и Play Asset Delivery предполагают прямое взаимодействие приложений и игр с магазином Google Play. Эти дополнительные сервисы являются примерами того, как Play выделяется как магазин приложений и предоставляет дополнительную ценность и полезность разработчикам и пользователям Play. Другие магазины приложений, использующие пакеты приложений и APK-файлы, предлагают разработчикам собственные сервисы для размещения приложений.