Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Экспортирование для ОС Android

См.также

This page describes how to export a Godot project to Android. If you're looking to compile export template binaries from source instead, read Compiling for Android.

Экспорт для Android имеет меньше требований, чем компиляция Godot для Android. В следующих шагах подробно описано, что необходимо для настройки Android SDK и движка.

Внимание

Projects written in C# can be exported to Android as of Godot 4.2, but support is experimental and some limitations apply.

Установка OpenJDK 17

Скачайте и установите OpenJDK 17.

Загрузите Android SDK

Скачайте и установите Android SDK.

  • Вы можете установить Android SDK, используя Android Studio версии 4.1 или старше.

    • Запустите её один раз чтобы завершить установку SDK по инструкциям.

    • Убедитесь, что все необходимые пакеты установлены правильно.

      • Android SDK Platform-Tools версии 30.0.5 или новее

      • Android SDK Build-Tools version 33.0.2

      • Android SDK Platform 33

      • Android SDK Command-line Tools

      • CMake version 3.10.2.4988404

      • NDK version r23c (23.2.8568313)

  • Alternatively, you can install the Android SDK using the command line tools.

    • После установки command line tools запустите команду sdkmanager, чтобы завершить процесс установки:

sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;33.0.2" "platforms;android-33" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;23.2.8568313"

Примечание

Если вы используете Linux, не используйте Android SDK, предоставляемый репозиториями вашего дистрибутива, поскольку он часто устаревает.

Создание debug.keystore

Android требуется файл хранилища ключей отладки для установки на устройства и распространения не выпускаемых APK. Если вы использовали SDK раньше и создавали проекты, возможно,*ant* или*eclipse* сгенерировали его для вас (в Linux и macOS вы можете найти его в каталоге``~/.android``, на Windows в C:\Users\<user>\.android\).

Если вы не можете его найти или вам нужно его сгенерировать, для этой цели можно использовать команду keytool из JDK:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12

This will create a debug.keystore file in your current directory. You should move it to a memorable location such as %USERPROFILE%\.android\, because you will need its location in a later step. For more information on keytool usage, see this Q&A article.

Примечание

It is important that the password is the same for the keystore and the key. This is a known Android studio issue that also affects Godot projects.

Настройка в Godot

Войдите в экран настроек редактора. Этот экран содержит настройки редактора для учетной записи пользователя на компьютере (не зависит от проекта).

../../_images/editorsettings.png

Прокрутите вниз в раздел, где расположены настройки Android:

../../_images/androidsdk.png

На этом экране необходимо указать путь к 2 файлам:

  • Android Sdk Path должен быть расположением, куда был установлен Android SDK. - Например %LOCALAPPDATA%\Android\Sdk\ на Windows либо /Users/$USER/Library/Android/sdk/ на macOS.

  • Файл отладки .keystore - его можно найти в папке, где вы поместили файл debug.keystore, который вы создали выше.

Как только это настроено, все готово к экспорту на Android!

Примечание

Если вы получаете ошибку "Could not install to device.", убебитесь что вы не имеете установленную программу с таким же названием пакета Android (но подписанную другим ключём).

Если вы имеете программу с таким же названием пакета Android но с другим ключём, вы обязаны удалить программу с устройства Android перед повторным экспортом на Android.

Предоставление иконок для лаунчера

Значки программы запуска используются приложениями запуска Android для представления вашего приложения пользователям. Godot требует только значки с высоким разрешением (для экранов с плотностью xxxhdpi) и автоматически генерирует варианты с более низким разрешением.

Существует два вида иконок необходимых в Godot:

  • Main Icon: (основной значок) - "классический" значок. Он будет использоваться исключительно на всех версиях Android до Android 8 (Oreo). Размер должен быть не менее 192×192 пикселей.

  • Adaptive Icons: (адаптивные значки - начиная с Android 8 (включительно), были введены Adaptive Icons. Приложения должны включать отдельные значки фона и переднего плана, чтобы иметь естественный вид. Приложение запуска пользователя будет управлять анимацией и маскировкой значка. Размер должен быть не менее 432 × 432 пикселей.

См.также

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

Осторожно

Наиболее важным правилом адаптивного дизайна значка является отсутствие критических элементов значка внутри безопасной зоны: по центру круга диаметром 66dp (264 пикселя на xxxhdpi), чтобы избежать обрезки при запуске.

Если вы не предоставите некоторые из запрошенных значков, Godot заменит их, используя цепь отката, перебирая следующую в очереди, когда текущая не удаётся:

  • Главная иконка:**(**Main Icon:) Предоставленная главная иконка -> Иконка проекта -> Стандартная иконка Godot.

  • Adaptive Icon Foreground: (адаптивный значок переднего плана) - Provided foreground icon -> Provided main icon -> Project icon -> Default Godot foreground icon.

  • Adaptive Icon Background: (Адаптивный значок фона) - Provided background icon -> Default Godot background icon.

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

Экспортирование в Google Play Store

Для загрузки APK-файла в Google Play Store необходимо подписаться, используя не отладочный файл хранилища ключей; такой файл можно сгенерировать так:

keytool -v -genkey -keystore mygame.keystore -alias mygame -keyalg RSA -validity 10000

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

Теперь заполните следующие формы в ваших предустановках экспорта Android:

../../_images/editor-export-presets-android.png
  • **Release: ** Введите путь к только что созданному файлу хранилища ключей.

  • Release User: Замените псевдонимом ключа.

  • Release Password: Пароль ключа. Обратите внимание, что в настоящее время пароль хранилища ключей и пароль ключа должны совпадать.

Не забудьте снять флажок Export With Debug при экспорте.

../../_images/export-with-debug-button.png

Оптимизация размера APK

По умолчанию APK будет содержать собственные библиотеки для архитектур ARMv7 и ARMv8. Это значительно увеличивает его размер. Чтобы создать APK меньшего размера, снимите флажок Armeabi-v 7a или Arm 64 -v 8a в предустановке экспорта Android вашего проекта. Это создаст APK, который содержит только библиотеку для одной архитектуры. Обратите внимание, что приложения, ориентированные на ARMv7, также могут работать на устройствах ARMv8, но обратное неверно.

С августа 2019 года Google Play требует, чтобы все приложения были доступны в 64-битной форме. Это означает, что вы не можете загрузить APK, содержащий только библиотеку ARMv7. Чтобы решить эту проблему, вы можете загрузить несколько APK в Google Play, используя его поддержку Multiple APK. Каждый APK должен быть ориентирован на одну архитектуру; создания APK для ARMv7 и ARMv8 обычно достаточно для охвата большинства устройств, используемых сегодня.

Вы можете дополнительно оптимизировать размер, скомпилировав шаблон экспорта Android только с необходимыми функциями. Смотрите Оптимизация размера билда для получения дополнительной информации.

Environment variables

You can use the following environment variables to set export options outside of the editor. During the export process, these override the values that you set in the export menu.

Android export environment variables

Export option

Environment variable

Encryption / Encryption Key

GODOT_SCRIPT_ENCRYPTION_KEY

Options / Keystore / Debug

GODOT_ANDROID_KEYSTORE_DEBUG_PATH

Options / Keystore / Debug User

GODOT_ANDROID_KEYSTORE_DEBUG_USER

Options / Keystore / Debug Password

GODOT_ANDROID_KEYSTORE_DEBUG_PASSWORD

Options / Keystore / Release

GODOT_ANDROID_KEYSTORE_RELEASE_PATH

Options / Keystore / Release User

GODOT_ANDROID_KEYSTORE_RELEASE_USER

Options / Keystore / Release Password

GODOT_ANDROID_KEYSTORE_RELEASE_PASSWORD