Exportando para Android

Exportar para Android possui menos requisitos do que compilar o Godot para ele. Os passos seguintes detalham o que é necessário para configurar o SDK e o motor.

Download the Android SDK

Download and install the Android SDK.

sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;30.0.1" "platforms;android-29" "cmdline-tools;latest"

Install OpenJDK

Download and install OpenJDK.

Create a debug.keystore

Android needs a debug keystore file to install to devices and distribute non-release APKs. If you have used the SDK before and have built projects, ant or eclipse probably generated one for you (in the ~/.android directory on Linux and macOS, in the C:\Users\<user>\.android\ directory on Windows).

Se você não conseguir encontrá-lo ou precisar gerar um, o comando da ferramenta-chave do JDK pode ser usado para este propósito:

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

Isto irá criar um arquivo debug.keystore no seu diretório atual. Você deve movê-lo para um local memorável como o %USERPROFILE%\.android\, porque você precisará da sua localização em um passo posterior. Para mais informações sobre a utilização do keytool, veja este artigo de perguntas e respostas.

Configurando no Godot

Entre na tela Configurações do Editor. Esta tela contém as configurações do editor para a conta do usuário no computador (é independente do projeto).

../../../_images/editorsettings.png

Role para baixo até a seção onde as configurações do Android estão localizadas:

../../../_images/androidsdk.png

In that screen, 2 paths need to be set:

  • The Android Sdk Path should be the location where the Android SDK was installed. - For example %LOCALAPPDATA%\Android\Sdk\ on Windows or /Users/$USER/Library/Android/sdk/ on macOS.
  • O arquivo debug .keystore` - Pode ser encontrado na pasta onde você coloca o arquivo debug.keystore` que você criou acima.

Uma vez configurado, tudo está pronto para exportar para o Android!

Fornecendo ícones de launcher

Os ícones de launcher são usados por aplicativos de launcher do Android para representar o seu aplicativo aos usuários. O Godot só requer ícones de alta resolução (para telas de densidade xxxhdpi), e irá gerar automaticamente variantes para resoluções menores.

Há dois tipos de ícones requisitados pelo Godot:

  • Ícone principal:: O ícone "clássico". Será utilizado em todas as versões do Android até o Android 8 (Oreo), exclusivo. Deve ter pelo menos 192×192 px.
  • Ícones Adaptáveis: A partir do Android 8 (inclusivo), 'Ícones Adaptáveis <https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive>'_ foram introduzidos. Aplicativos vão precisar incluir separadamente ícones de fundo e de frente para terem um visual nativo. O aplicativo de launcher do usuário vai controlar a animação e máscara do ícone. Deve ter no minimo 432x432 px.

Ver também

É importante seguir algumas regras ao criar ícones adaptáveis. O Google Design forneceu um bom artigo <https://medium.com/google-design/designing-adaptive-icons-515af294c783> _ que ajuda a entender essas regras e alguns dos recursos dos ícones adaptáveis.

Cuidado

A regra de design de ícone adaptativo mais importante é ter partes importantes do seu ícone dentro da área segura: um círculo centralizado com um diâmetro de 66dp (264 pixels em xxxhdpi) para evitar ser cortado pelo launcher.

Se você não fornecer alguns dos ícones solicitados, o Godot os substituirá usando uma cadeia de fallback, tentando a próxima na linha quando a atual falhar:

  • Ícone principal: Ícone principal fornecido -> Ícone do projeto -> Ícone principal do Godot padrão.
  • Ícone Adaptativo (frente): Ícone de frente fornecido -> Ícone principal fornecido -> Ícone do projeto -> Ícone principal do Godot padrão.
  • Ícone Adaptativo (verso): Ícone de verso fornecido -> Ícone principal do Godot padrão.

É altamente recomendado fornecer todos os ícones requeridos, e ao menos com as resoluções especificadas. Só assim seu aplicativo vai parecer ótimo em todos os dispositivos Android e suas versões.

Exportando para a Google Play Store

Enviar um APK para a Play Store do Google requer que você o assine usando um arquivo keystore não-depuração; tal arquivo pode ser gerado assim:

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

Este keystore e chave são usados para verificar sua identidade de desenvolvedor, lembre-se da senha e mantenha-a em um lugar seguro! Use os guias de Desenvolvedor Android do Google para aprender mais sobre Assinar o app.

Agora preencha-o nos seguintes campos nas suas Predefinições de Exportação Android:

../../../_images/editor-export-presets-android.png
  • Release: Enter the path to the keystore file you just generated.
  • Release User: Replace with the key alias.
  • Release Password: Key password. Note that the keystore password and the key password currently have to be the same.

Your export_presets.cfg file now contains sensitive information. If you use a version control system, you should remove it from public repositories and add it to your .gitignore file or equivalent.

Don't forget to uncheck the Export With Debug checkbox while choosing the APK's name.

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

Optimizing the APK size

By default, the APK will contain native libraries for both ARMv7 and ARMv8 architectures. This increases its size significantly. To create a smaller APK, uncheck either Armeabi-v 7a or Arm 64 -v 8a in your project's Android export preset. This will create an APK that only contains a library for a single architecture. Note that applications targeting ARMv7 can also run on ARMv8 devices, but the opposite is not true.

Since August 2019, Google Play requires all applications to be available in 64-bit form. This means you cannot upload an APK that contains just an ARMv7 library. To solve this, you can upload several APKs to Google Play using its Multiple APK support. Each APK should target a single architecture; creating an APK for ARMv7 and ARMv8 is usually sufficient to cover most devices in use today.

You can optimize the size further by compiling an Android export template with only the features you need. See Optimizing a build for size for more information.