Exporting for Android

    Download and install the Android SDK from .

    If you install Android Studio, you need to run it once to complete the SDK setup.

    Install OpenJDK 8

    Download and install OpenJDK 8, newer versions do not work.

    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 (on Linux and macOS, you can find it in the directory).

    If you can’t find it or need to generate one, the keytool command from the JDK can be used for this purpose:

    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 .

    Make sure you have adb

    Android Debug Bridge (adb) is the command line tool used to communicate with Android devices. It’s installed with the SDK, but you may need to install one (any) of the Android API levels for it to be installed in the SDK directory.

    Enter the Editor Settings screen. This screen contains the editor settings for the user account in the computer (it’s independent of the project).

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

    In that screen, the path to 3 files needs to be set:

    • The executable (adb.exe on Windows) - It can usually be found at %LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe.
    • The jarsigner executable (from JDK 6 or 8) - On Windows, OpenJDK installs to a directory like %PROGRAMFILES%\AdoptOpenJDK\jdk-8.0.252.09-hotspot\bin. On Linux, it typically installs to a directory like . The exact path may vary depending on the OpenJDK update you’ve installed and your machine’s operating system.
    • The debug .keystore file - It can be found in the folder where you put the debug.keystore file you created above.

    Once that is configured, everything is ready to export to Android!

    Providing launcher icons

    Launcher icons are used by Android launcher apps to represent your application to users. Godot only requires high-resolution icons (for xxxhdpi density screens) and will automatically generate lower-resolution variants.

    There are two types of icons required by Godot:

    • Main Icon: The “classic” icon. This will be used on all Android versions up to Android 8 (Oreo), exclusive. Must be at least 192×192 px.
    • Adaptive Icons: Starting from Android 8 (inclusive), Adaptive Icons were introduced. Applications will need to include separate background and foreground icons to have a native look. The user’s launcher application will control the icon’s animation and masking. Must be at least 432×432 px.

    See also

    It’s important to adhere to some rules when designing adaptive icons. that helps to understand those rules and some of the capabilities of adaptive icons.

    Caution

    The most important adaptive icon design rule is to have your icon critical elements inside the safe zone: a centered circle with a diameter of 66dp (264 pixels on xxxhdpi) to avoid being clipped by the launcher.

    • 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.

    It’s highly recommended to provide all requested icons, and at least with the specified resolutions. Only this way your application will look great on all Android devices and versions.

    Uploading an APK to Google’s Play Store requires you to sign using a non-debug keystore file; such file can be generated like this:

    This keystore and key are used to verify your developer identity, remember the password and keep it in a safe place! Use Google’s Android Developer guides to learn more about APK signing.

    Now fill in the following forms in your Android Export Presets:

    • 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.

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