Чтобы подготовить приложение к выпуску, необходимо настроить, собрать и протестировать его релизную версию. Задачи настройки включают в себя базовую очистку и модификацию кода, которые помогают оптимизировать приложение. Процесс сборки аналогичен процессу отладочной сборки и может быть выполнен с использованием инструментов JDK и Android SDK.
Тестирование — это своего рода финальная проверка, помогающая убедиться, что ваше приложение работает ожидаемым образом в реальных условиях. 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 DevTools. Чтобы отключить отладку, используйте метод WebView.setWebContentsDebuggingEnabled()
.
Очистите каталоги вашего проекта
Очистите свой проект и убедитесь, что он соответствует структуре каталогов, описанной в разделе «Обзор проектов» . Наличие в проекте ненужных или потерянных файлов может помешать компиляции приложения и привести к его непредсказуемому поведению. Как минимум, выполните следующие действия по очистке:
- Проверьте содержимое каталогов
cpp/
,lib/
иsrc/
. Каталогcpp/
должен содержать только исходные файлы, связанные с Android NDK , такие как исходные файлы C или C++, заголовочные файлы или make-файлы. Каталогlib/
должен содержать только файлы сторонних библиотек или файлы частных библиотек, включая готовые общие и статические библиотеки. Каталогsrc/
должен содержать только исходные файлы вашего приложения (файлы Java, Kotlin и AIDL). Каталогsrc/
не должен содержать JAR-файлов. - Проверьте свой проект на наличие личных или проприетарных файлов данных, которые ваше приложение не использует, и удалите их. Например, найдите в каталоге
res/
вашего проекта старые файлы рисования, файлы макетов и файлы значений, которые вы больше не используете, и удалите их. - Проверьте каталог
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.
В качестве отправной точки для тестирования см. раздел «Основное качество приложения» . После завершения тестирования и подтверждения корректности работы релизной версии приложения вы можете выпустить его для пользователей. Подробнее см. в разделе «Выпуск приложения для пользователей» .