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

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

Что такое Android App Bundle (AAB)?

Android App Bundle (AAB), запущенный в 2018 году, представляет собой формат публикации для 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, могут публиковаться как с APK, так и с AAB. При создании нового частного приложения вы можете выбрать Изменить ключ подписи приложения и отказаться от подписи приложений Play, если вы хотите опубликовать самоподписанный частный APK.

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

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

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

Почему Google запустила функцию подписания приложений в Play?

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

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

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

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

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

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

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

  • Вы можете сгенерировать ключ локально и загрузить его копию в Play. Таким образом, вы можете использовать тот же ключ, который используется в Google Play, когда вы создаете свое приложение для других магазинов приложений.
  • Вы можете использовать сгенерированный Google ключ для подписания приложений в Play, а затем загрузить APK-файлы для распространения из Play Console, подписанные сгенерированным Google ключом, и использовать эти 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 App Signing?

Да, приложения могут изменить свой ключ, запросив обновление ключа в 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 МБ.

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

Крупные приложения и игры, использующие 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 Asset Delivery?

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

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

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