Для подготовки приложения к выпуску необходимо настроить, собрать и протестировать его релизную версию. Задачи по настройке включают в себя базовую очистку и модификацию кода, которые помогают оптимизировать приложение. Процесс сборки аналогичен процессу отладочной сборки и может быть выполнен с использованием инструментов JDK и Android SDK.
навыки Android
Просмотреть на GitHubОзнакомьтесь с политикой Google Play.
play-policy-insights для Android, чтобы проверить ваше приложение на соответствие политике Google Play.android skills add play-policy-insightsТестирование служит заключительной проверкой, помогая убедиться, что ваше приложение работает должным образом в реальных условиях. Firebase предлагает большой набор физических и виртуальных тестовых устройств через Firebase Test Lab , которые вы можете использовать для повышения качества вашего приложения.
После завершения подготовки приложения к выпуску у вас будет подписанный APK-файл, который вы можете распространять напрямую пользователям или через магазины приложений, такие как Google Play .
В этом документе кратко изложены основные задачи, которые необходимо выполнить для подготовки вашего приложения к выпуску. Описанные здесь задачи применимы ко всем приложениям для Android, независимо от способа их выпуска или распространения среди пользователей. Если вы выпускаете свое приложение через Google Play, прочтите раздел «Выпускайте с уверенностью» .
Примечание: В качестве рекомендации убедитесь, что ваше приложение соответствует всем критериям выпуска по функциональности, производительности и стабильности, прежде чем выполнять задачи, описанные на этой странице.

Рисунок 1. Подготовка к выпуску — это обязательная задача разработки и первый шаг в процессе публикации.
Задачи по подготовке к выпуску
Для выпуска вашего приложения пользователям необходимо создать готовый к выпуску пакет, который пользователи смогут установить и запустить на своих устройствах под управлением Android. Готовый к выпуску пакет содержит те же компоненты, что и отладочный APK-файл — скомпилированный исходный код, ресурсы, файл манифеста и т. д. — и собирается с использованием тех же инструментов сборки. Однако, в отличие от отладочного APK-файла, готовый к выпуску APK-файл подписан вашим собственным сертификатом и оптимизирован с помощью инструмента zipalign .

Рисунок 2. Существует пять основных задач по подготовке вашего приложения к выпуску.
Задачи подписи и оптимизации обычно выполняются без проблем, если вы собираете приложение с помощью Android Studio. Например, вы можете использовать Android Studio с файлами сборки Gradle для одновременной компиляции, подписи и оптимизации вашего приложения. Вы также можете настроить файлы сборки Gradle таким образом, чтобы они выполняли те же действия при сборке из командной строки. Для получения более подробной информации об использовании файлов сборки Gradle см. раздел «Настройка сборки» .
Для подготовки приложения к выпуску обычно выполняется пять основных задач, как показано на рисунке 2. Каждая основная задача может включать одну или несколько более мелких задач, в зависимости от способа выпуска приложения. Например, если вы выпускаете приложение через Google Play, вам может потребоваться добавить специальные правила фильтрации в манифест во время настройки приложения для выпуска. Аналогично, чтобы соответствовать рекомендациям Google Play по публикации, вам может потребоваться подготовить скриншоты и создать рекламный текст во время сбора материалов для выпуска.
Задачи, перечисленные на рисунке 2, обычно выполняются после тщательной отладки и тестирования приложения. Android SDK содержит несколько инструментов, которые помогут вам тестировать и отлаживать приложения для Android. Для получения дополнительной информации см. разделы «Отладка приложения» и «Тестирование приложения» .
Соберите материалы и ресурсы.
Для подготовки вашего приложения к выпуску вам необходимо собрать несколько вспомогательных материалов. Как минимум, это должны быть криптографические ключи для подписи вашего приложения и иконка приложения. Возможно, вам также понадобится включить лицензионное соглашение с конечным пользователем.
Криптографические ключи
Android требует, чтобы все APK-файлы были подписаны цифровой подписью с помощью сертификата перед установкой на устройство или обновлением. Для Google Play Store все приложения, созданные после августа 2021 года, должны использовать функцию подписи приложений Play App Signing . Однако для загрузки вашего AAB-файла в Play Console по-прежнему требуется подписать его с помощью сертификата разработчика. Более старые приложения могут использовать самоподпись, но независимо от того, используете ли вы Play App Signing или самоподпись, вы должны подписать свое приложение, прежде чем сможете его загрузить.
Чтобы узнать о требованиях к сертификатам, см. раздел «Подпишите свое приложение» .
Важно: Ваше приложение должно быть подписано криптографическим ключом, срок действия которого истекает после 22 октября 2033 года.
Вам также может потребоваться получить другие ключи для выпуска, если ваше приложение обращается к сервису или использует стороннюю библиотеку, которая требует использования ключа, основанного на вашем закрытом ключе.
значок приложения
Значок вашего приложения помогает пользователям идентифицировать его на главном экране устройства и в окне запуска. Он также отображается в разделе «Управление приложениями», «Мои загрузки» и в других местах. Кроме того, издательские сервисы, такие как Google Play, отображают ваш значок пользователям. Убедитесь, что у вашего приложения есть значок, соответствующий рекомендуемым стандартам .
Примечание: Если вы публикуете свое приложение в Google Play, вам необходимо создать версию значка в высоком разрешении. Дополнительную информацию см. в разделе «Добавление элементов предварительного просмотра для демонстрации вашего приложения» .
Лицензионное соглашение с конечным пользователем
Рекомендуется подготовить лицензионное соглашение с конечным пользователем (EULA) для вашего приложения. EULA поможет защитить вашу личность, организацию и интеллектуальную собственность, и мы рекомендуем предоставить его вместе с вашим приложением.
Различные материалы
Вам также может потребоваться подготовить рекламные и маркетинговые материалы для продвижения вашего приложения. Например, если вы выпускаете приложение в Google Play, вам нужно будет подготовить рекламный текст и создать скриншоты вашего приложения. Для получения дополнительной информации см. раздел «Добавление элементов предварительного просмотра для демонстрации вашего приложения» .
Настройте приложение для выпуска.
После того, как вы соберете все необходимые вспомогательные материалы, вы можете приступить к настройке приложения для выпуска. В этом разделе приведено краткое описание изменений конфигурации, которые мы рекомендуем внести в исходный код, файлы ресурсов и манифест приложения перед его выпуском.
Хотя большинство изменений конфигурации, перечисленных в этом разделе, являются необязательными, они считаются хорошими практиками программирования, и мы рекомендуем вам их внедрить. В некоторых случаях вы, возможно, уже внесли эти изменения конфигурации в рамках процесса разработки.
Выберите подходящий идентификатор приложения.
Убедитесь, что вы выбрали идентификатор приложения, подходящий на протяжении всего жизненного цикла вашего приложения. Вы не сможете изменить идентификатор приложения после того, как распространите приложение среди пользователей. Чтобы установить его, используйте свойство applicationId в файле build.gradle или build.gradle.kts на уровне модуля. Дополнительную информацию см. в разделе «Установка идентификатора приложения» .
Отключите отладку
Чтобы настроить возможность отладки APK-файла, используйте флаг debuggable для Groovy или флаг isDebuggable для скриптов Kotlin:
Котлин
android { ... buildTypes { release { isDebuggable = false ... } debug { isDebuggable = true ... } } ... }
Классный
android { ... buildTypes { release { debuggable false ... } debug { debuggable true ... } } ... }
Включите и настройте уменьшение размера приложения.
Многие из следующих оптимизаций можно автоматизировать, включив функцию сжатия для вашей релизной сборки. Например, вы можете добавить правила ProGuard для удаления сообщений логирования, и программа сжатия выявит и удалит неиспользуемый код и ресурсы. Программа сжатия также может заменять имена классов и переменных более короткими именами для дальнейшего уменьшения размера DEX-файла.
Отключите ведение журнала.
Перед сборкой приложения для выпуска отключите логирование. Это можно сделать, удалив вызовы методов Log из исходных файлов. Также удалите все файлы логов или статические тестовые файлы, созданные в вашем проекте.
Кроме того, удалите все вызовы трассировки Debug , которые вы добавили в свой код, такие как вызовы методов startMethodTracing() и stopMethodTracing() .
Важно: Убедитесь, что вы отключили отладку для вашего приложения, если используете WebView для отображения платного контента или если используете интерфейсы JavaScript, поскольку отладка позволяет пользователям внедрять скрипты и извлекать контент с помощью инструментов разработчика Chrome. Чтобы отключить отладку, используйте метод WebView.setWebContentsDebuggingEnabled() .
Упорядочьте каталоги ваших проектов.
Приведите свой проект в порядок и убедитесь, что он соответствует структуре каталогов, описанной в разделе «Обзор проектов» . Оставление лишних или «осиротевших» файлов в проекте может помешать компиляции приложения и привести к его непредсказуемому поведению. Как минимум, выполните следующие задачи по очистке:
- Проверьте содержимое каталогов
cpp/,lib/иsrc/. Каталогcpp/должен содержать только исходные файлы, связанные с Android NDK , такие как исходные файлы C или C++, заголовочные файлы или make-файлы. Каталогlib/должен содержать только файлы сторонних библиотек или файлы частных библиотек, включая предварительно скомпилированные разделяемые и статические библиотеки. Каталогsrc/должен содержать только исходные файлы вашего приложения (файлы Java, Kotlin и AIDL). Каталогsrc/не должен содержать никаких JAR-файлов. - Проверьте свой проект на наличие закрытых или проприетарных файлов данных, которые ваше приложение не использует, и удалите их. Например, найдите в каталоге
res/вашего проекта старые файлы drawable, layout и values, которые вы больше не используете, и удалите их. - Проверьте каталог
lib/на наличие тестовых библиотек и удалите их, если они больше не используются вашим приложением. - Проверьте содержимое каталогов
assets/иres/raw/на наличие необработанных файлов ресурсов и статических файлов, которые необходимо обновить или удалить перед релизом.
Проверьте и обновите манифест и параметры сборки Gradle.
Убедитесь, что следующие параметры манифеста и файлов сборки заданы правильно:
- элемент
<uses-permission>Указывайте только те разрешения, которые актуальны и необходимы для вашего приложения.
- атрибуты
android:iconиandroid:labelНеобходимо указать значения для этих атрибутов, которые находятся в элементе
<application>. - Свойства
versionCodeиversionNameРекомендуем указывать значения для этих свойств в файлах
build.gradleилиbuild.gradle.kts, расположенных на уровне модуля приложения. Дополнительную информацию см. в разделе «Версионирование приложения» .
При публикации приложения в Google Play можно задать несколько дополнительных элементов файла сборки. Например, атрибуты minSdk и targetSdk , которые находятся в файле build.gradle или build.gradle.kts на уровне модуля приложения. Дополнительную информацию об этих и других настройках Google Play см. в разделе «Фильтры в Google Play» .
Устранены проблемы совместимости.
Android предоставляет множество инструментов и методов для обеспечения совместимости вашего приложения с широким спектром устройств. Чтобы сделать ваше приложение доступным для наибольшего числа пользователей, рассмотрите следующие варианты:
- Добавить поддержку конфигураций с несколькими экранами.
- Убедитесь, что вы соблюдаете лучшие практики поддержки нескольких экранов . Поддержка нескольких конфигураций экранов позволит создать приложение, которое будет корректно работать и хорошо выглядеть на любом из размеров экранов, поддерживаемых Android.
- Оптимизируйте ваше приложение для больших экранов.
- Вы можете оптимизировать свое приложение для корректной работы на устройствах с большими экранами, таких как планшеты и складные устройства. Например, макеты с пошаговым отображением информации могут улучшить удобство использования на больших экранах.
- Рекомендуется использовать библиотеки Jetpack.
- Jetpack — это набор библиотек, помогающих разработчикам следовать передовым практикам, сокращать количество шаблонного кода и писать код, который стабильно работает на разных версиях Android и устройствах.
Обновите URL-адреса серверов и служб.
Если ваше приложение обращается к удалённым серверам или службам, убедитесь, что вы используете рабочий URL-адрес или путь к серверу или службе, а не тестовый URL-адрес или путь.
Внедрить лицензирование для Google Play.
Если вы выпускаете платное приложение через Google Play, рассмотрите возможность добавления поддержки лицензирования Google Play. Лицензирование позволяет контролировать доступ к вашему приложению в зависимости от того, приобрел ли его текущий пользователь. Использование лицензирования Google Play необязательно, даже если вы выпускаете приложение через Google Play.
Для получения дополнительной информации о сервисе лицензирования Google Play и о том, как использовать его в своем приложении, см. раздел «Лицензирование приложений» .
Разработайте приложение для выпуска.
После завершения настройки приложения вы можете собрать его в готовый к выпуску APK-файл, который будет подписан и оптимизирован. JDK включает инструменты для подписи APK-файла (Keytool и Jarsigner); Android SDK включает инструменты для компиляции и оптимизации APK-файла. Если вы используете Android Studio или систему сборки Gradle из командной строки, вы можете автоматизировать весь процесс сборки. Для получения дополнительной информации о настройке сборок Gradle см. раздел «Настройка вариантов сборки» .
Если вы используете систему непрерывной интеграции , вы можете настроить задачу для автоматизации процесса выпуска. Это не ограничивается сборкой APK-файла или AAB-архива для выпуска. Вы также можете настроить автоматическую загрузку артефактов сборки в Play Console.
Создайте проект с помощью Android Studio.
Вы можете использовать систему сборки Gradle, интегрированную с Android Studio, для создания готового к выпуску APK-файла, подписанного вашим закрытым ключом и оптимизированного. Чтобы узнать, как настроить и запустить сборку из Android Studio, см. раздел «Сборка и запуск приложения» .
Процесс сборки предполагает наличие у вас сертификата и закрытого ключа, подходящих для подписи вашего приложения. Если у вас нет подходящего сертификата и закрытого ключа, Android Studio поможет вам их сгенерировать. Для получения дополнительной информации о процессе подписи см. раздел «Подпись приложения» .
Подготовьте внешние серверы и ресурсы.
Если ваше приложение использует удаленный сервер, убедитесь, что он защищен и настроен для работы в производственной среде. Это особенно важно, если вы внедряете в приложение встроенные платежи и выполняете проверку подписи на удаленном сервере.
Кроме того, если ваше приложение получает контент с удаленного сервера или из сервиса реального времени (например, из ленты контента), убедитесь, что предоставляемый вами контент актуален и готов к использованию в производственной среде.
Протестируйте свое приложение перед выпуском.
Тестирование релизной версии вашего приложения помогает убедиться в его корректной работе в реалистичных условиях эксплуатации и работы сети. В идеале, протестируйте приложение как минимум на одном устройстве размером с мобильный телефон и одном планшете, чтобы проверить правильность размеров элементов пользовательского интерфейса, а также приемлемую производительность и энергопотребление приложения. Firebase Test Lab также может быть полезен для тестирования на различных устройствах и версиях Android OS.
В качестве отправной точки для тестирования см. раздел «Качество основного приложения» . После завершения тестирования и подтверждения корректной работы релизной версии приложения вы можете выпустить его для пользователей. Для получения дополнительной информации см. раздел «Выпуск приложения для пользователей» .