О пакетах приложений для Android
Что такое пакет приложений Android (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.
О подписании приложений Google Play
Что такое подписание приложений Play?
Чтобы его можно было установить, каждый APK-файл на Android должен быть криптографически подписан ключом подписи приложения. Платформа Android использует ключ, чтобы гарантировать, что все обновления приложения соответствуют установленному приложению на устройстве, поэтому после первоначальной установки каждое обновление приложения поступает от одного и того же владельца ключа. Это снижает риск вредоносных обновлений приложений. Служба подписи приложений Google Play , запущенная в 2017 году, — это служба управления ключами Google Play, которая защищает и управляет ключами подписи приложений разработчиков Play для их приложений, распространяемых Play. Кроме того, функция подписи приложений Play выполняет операцию подписи APK-файлов, которые Play создает из загруженных файлов AAB. Подписание приложений Play требуется для новых приложений, чтобы они могли использовать 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 поддерживает опцию «обновления ключа» для приложений, созданных до августа 2021 года. Это позволяет приложению начать использовать подпись приложений Play с новым ключом подписи приложения. Однако, чтобы использовать эту опцию, после выполнения обновления вам необходимо будет загрузить две вещи в каждую версию: пакет приложения и устаревший APK, подписанный вашим старым ключом подписи приложения. Play будет использовать ваши AAB-файлы для создания APK-файлов, подписанных обновленным ключом, для новых установок и их обновлений; в то же время Play будет использовать ваши устаревшие APK-файлы для обновлений приложений для пользователей, у которых ваше приложение уже установлено. Со временем устаревшие установки будут перенесены на обновленный ключ (например, когда пользователи переходят на новое мобильное устройство).
Есть ли способ использовать один и тот же ключ подписи приложения для приложений, созданных до августа 2021 года, и приложений, созданных после августа 2021 года?
Как правило, не рекомендуется использовать один и тот же ключ подписи приложения для нескольких приложений. Более безопасно использовать уникальный ключ для каждого приложения. Однако это возможно, если вам нужно использовать один и тот же ключ подписи приложения для нескольких приложений. Либо вы можете загрузить копию существующего ключа подписи приложения при настройке подписи приложений Play. Или, если вы не хотите делиться существующим ключом подписи приложения, вы можете использовать предстоящую опцию «обновление ключа» для своего приложения, выпущенного до августа 2021 года, чтобы начать использовать подпись приложения Play. Таким образом, как приложение, выпущенное до августа 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 дает вам возможность настроить, какие функциональные модули будут доставляться на какое устройство и когда, с помощью режимов доставки во время установки, условной доставки и доставки по требованию. Это позволяет уменьшить размер приложения, что приведет к увеличению количества установок, и адаптировать его работу под нужды пользователя. Например, вы можете предоставить редко используемую функцию, такую как поддержка клиентов, по требованию пользователей, которые в ней нуждаются, а не во время установки, уменьшив размер первоначальной установки для всех пользователей. Или вы можете предоставить полную версию приложения на устройствах высокого класса, одновременно предоставляя меньшую версию приложения с дополнительными функциями по требованию на устройствах начального уровня, у которых есть ограничения по объему данных и памяти устройства.
Что такое доставка игровых ресурсов?
Play Asset Delivery позволяет разработчикам игр улучшить взаимодействие с пользователем и сократить время ожидания пользователя за счет динамической доставки больших ресурсов в оптимальное время. Игры, использующие Play Asset Delivery, также могут использовать таргетинг на формат сжатия текстур, поэтому ваши пользователи получают только те ресурсы, которые подходят для их устройства, без потери места или пропускной способности.
Доступны ли эти функции доставки Play в других магазинах приложений?
Нет, доставка функций Play и доставка активов Play включают в себя приложения и игры, напрямую взаимодействующие с Google Play Store. Эти дополнительные услуги являются примерами того, как Play дифференцируется как магазин приложений и приносит дополнительную ценность и полезность разработчикам и пользователям Play. Другие магазины приложений, использующие пакеты приложений и APK-файлы, предлагают разработчикам собственные услуги магазина приложений.