Подготовьте приложение к выпуску

Чтобы подготовить приложение к выпуску, вам необходимо настроить, собрать и протестировать релизную версию вашего приложения. Задачи настройки включают базовую очистку кода и задачи модификации кода, которые помогают оптимизировать ваше приложение. Процесс сборки аналогичен процессу сборки отладки и может выполняться с помощью инструментов 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 . Но для загрузки AAB в Play Console вам по-прежнему потребуется подписать его сертификатом разработчика. Старые приложения по-прежнему могут самоподписываться, но независимо от того, используете ли вы подпись приложений Play или самостоятельно подписываете, вы должны подписать свое приложение, прежде чем сможете его загрузить.

Дополнительные сведения о требованиях к сертификатам см. в разделе Подпишите свое приложение .

Важно! Ваше приложение должно быть подписано криптографическим ключом, срок действия которого заканчивается после 22 октября 2033 г.

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

Значок приложения

Значок вашего приложения помогает пользователям идентифицировать ваше приложение на главном экране устройства и в окне запуска. Он также появляется в «Управлении приложениями», «Моих загрузках» и других местах. Кроме того, издательские службы, такие как Google Play, отображают ваш значок пользователям. Убедитесь, что у вас есть значок приложения и он соответствует рекомендуемым рекомендациям по использованию значков .

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

Лицензионное соглашение с конечным пользователем

Рассмотрите возможность подготовки лицензионного соглашения с конечным пользователем (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++, файлы заголовков или файлы makefile. Каталог 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.

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