This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Устройства Android позволяют свободно запускать на них собственные приложения. Очень легко создать версию вашей игры и скопировать ее на устройство Android. В этом руководстве описаны шаги, связанные с созданием вашей игры для Android. В процессе разработки рекомендуется запускать игру через development app, так как оно позволяет осуществлять горячую перезагрузку контента и кода по беспроводной связи прямо на устройство.
Android требует, чтобы все APK были подписаны цифровым сертификатом перед установкой на устройство или обновлением. Если вы используете Android App Bundles, вам нужно подписать только ваш пакет приложений перед загрузкой в Play Console, а Play App Signing позаботится обо всем остальном. Однако вы также можете вручную подписать свое приложение для загрузки в Google Play, других магазинов приложений и для распространения вне магазинов.
При создании пакета Android-приложений в редакторе Defold или с помощью инструмента командной строки, вы можете указать файл keystore (содержащий ваш сертификат и ключ) и пароль keystore, который будет использоваться при подписании вашего приложения. Если вы этого не сделаете, Defold создаст отладочное keystore и будет использовать его при подписании пакета приложений.
Вы никогда не загружайте свое приложение в Google Play, если оно было подписано с использованием отладочного хранилища ключей. Всегда используйте специальное хранилище ключей, которое вы создали сами.
Процесс подписи Android в Defold изменился в версии 1.2.173 с использования отдельного ключа и сертификата на keystore. Дополнительная информация в сообщении форума.
Вы можете создать хранилище ключей с помощью Android Studio или из терминала/командной строки:
keytool -genkey -v -noprompt -dname "CN=John Smith, OU=Area 51, O=US Air Force, L=Unknown, ST=Nevada, C=US" -keystore mykeystore.keystore -storepass 5Up3r_53cR3t -alias myAlias -keyalg RSA -validity 9125
В результате будет создан файл keystore с именем mykeystore.keystore, содержащий ключ и сертификат. Доступ к ключу и сертификату будет защищен паролем 5Up3r_53cR3t. Ключ и сертификат будут действительны в течение 25 лет (9125 дней). Сгенерированные ключ и сертификат будут идентифицированы псевдонимом myAlias.
Обязательно храните хранилище ключей и связанный с ним пароль в безопасном месте. Если вы подписываете и загружаете свои приложения в Google Play самостоятельно, а keystore или пароль keystore утерян, вы не сможете обновить приложение в Google Play. Вы можете избежать этого, используя Google Play App Signing и позволяя Google подписывать ваши приложения за вас.
Редактор позволяет легко создать отдельный пакет приложений для вашей игры. Перед созданием пакета вы можете указать, какую иконку (иконки) использовать для приложения, установить код версии и т.д. в game.project файл настроек проекта.
Для создания пакета выберите в меню Project ▸ Bundle... ▸ Android Application....
Если вы хотите, чтобы редактор автоматически создавал случайные отладочные сертификаты, оставьте поля Keystore и Keystore password пустыми:

Если вы хотите подписать свой пакет определенным хранилищем ключей, укажите Keystore и Keystore password. Ожидается, что Keystore будет иметь расширение файла .keystore, а пароль будет храниться в текстовом файле с расширением .txt. Также можно указать Key password, если ключ в хранилище использует пароль, отличный от самого keystore:

Defold поддерживает создание файлов APK и AAB. Выберите APK или AAB из выпадающего списка Bundle Format.
Нажмите Create Bundle, когда вы настроите параметры пакета приложений. Затем вам будет предложено указать, где на вашем компьютере будет создан пакет.

Когда вы собираете игру, нужно выбрать тип движка, который будет использоваться. Есть три основных варианта:
Эти разные версии также называются Build variants
Если вы выбираете Project ▸ Build, вы всегда получите debug-версию.
Этот тип исполняемого файла обычно используется во время разработки игры, поскольку в него включены полезные возможности отладки:
print() и из логирования нативных расширений через dmLogInfo(), dmLogError() и так далее. Как читать эти логи, описано в руководстве по логам игры и системы.В этом варианте функции отладки отключены. Этот вариант следует выбирать, когда игра готова к публикации в магазине приложений или к распространению среди игроков другим способом. Выпускать игру с включёнными средствами отладки не рекомендуется по нескольким причинам:
Этот исполняемый файл запускается без графики и звука. Это означает, что вы можете выполнять unit/smoke tests игры на CI-сервере или даже использовать его как игровой сервер в облаке.
Файл .apk можно скопировать на устройство с помощью инструмента adb или загрузить в Google Play через консоль разработчика Google Play (см. ниже).
Инструмент командной строки adb — это удобная и универсальная программа для взаимодействия с устройствами Android. Вы можете скачать и установить adb как часть Android SDK Platform-Tools для Mac, Linux или Windows.
Скачать Android SDK Platform-Tools можно здесь: https://developer.android.com/studio/releases/platform-tools. Инструмент adb находится в каталоге /platform-tools/. Также можно установить платформенные пакеты через соответствующие менеджеры пакетов.
В Ubuntu Linux:
$ sudo apt-get install android-tools-adb
В Fedora 18/19:
$ sudo yum install android-tools
В macOS (Homebrew)
$ brew cask install android-platform-tools
Проверить, что adb работает, можно так: подключите Android-устройство к компьютеру по USB и выполните следующую команду:
$ adb devices
List of devices attached
31002535c90ef000 device
Если устройство не появляется в списке, убедитесь, что на Android-устройстве включена USB debugging. Откройте Settings устройства и найдите Developer options (или Development).

$ adb install Defold\ examples.apk
4826 КБ/с (18774344 байта за 3,798 с)
pkg: /data/local/tmp/my_app.apk
Success
Вы можете установить и запустить файл .apk, используя опции редактора “Install on connected device” и “Launch installed app” в диалоговом окне создания пакета:

Для работы этой функции необходимо, чтобы ADB был установлен, а на подключенном устройстве была включена USB-отладка. Если редактор не может определить расположение команды ADB, необходимо указать путь к ADB в разделе Preferences.
Файл .aab можно загрузить в Google Play через консоль разработчика Google Play. Также можно сгенерировать .apk файл из .aab файла для локальной установки с помощью Android bundletool.
Движок Defold требует ряд различных разрешений для работы всех функций движка. Разрешения определяются в AndroidManifest.xml, указанном в game.project файл настроек проекта. Подробнее о разрешениях Android можно прочитать в официальных документах. В манифесте по умолчанию запрашиваются следующие разрешения:
Позволяет приложениям открывать сетевые сокеты и получать доступ к информации о сетях. Эти разрешения необходимы для доступа в Интернет. (Android official docs) и (Android official docs).
Позволяет использовать блокировку PowerManager WakeLocks для предотвращения засыпания процессора или затемнения экрана. Это разрешение необходимо для временного предотвращения засыпания устройства при получении push-уведомления. (Официальные документы Android)
AndroidX — это значительное улучшение по сравнению с оригинальной Android Support Library, которая больше не поддерживается. Пакеты AndroidX полностью заменяют библиотеку поддержки, обеспечивая тот же функционал и предлагая новые библиотеки. Большинство Android-расширений на портале ассетов поддерживают AndroidX. Если вы не хотите использовать AndroidX, вы можете явно отключить его в пользу старой библиотеки поддержки Android, установив флажок Use Android Support Lib в манифесте приложения.

A: Да, установите параметр immersive_mode в разделе Android вашего файла game.project. Это позволит приложению использовать весь экран и получать все касания по экрану.
A: Android обнаружил, что вы пытаетесь установить приложение с новым сертификатом. При сборке debug-версий каждая сборка подписывается временным сертификатом. Удалите старую версию приложения перед установкой новой:
$ adb uninstall com.defold.examples
Success
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/Defold examples.apk
Success
A: Это может произойти, когда два или более расширения предоставляют заглушку Android Manifest с одним и тем же тегом свойства, но с разными значениями. Например, такое случалось с Firebase и AdMob. Ошибка сборки выглядит примерно так:
SEVERE: /tmp/job4531953598647135356/upload/AndroidManifest.xml:32:13-58
Error: Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58 is also
present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at
AndroidManifest.xml to override.
Подробнее об этой проблеме и обходном решении можно прочитать в issue Defold #9453 и issue Google #327696048.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB