Browse Source

Update the Android build documentation (#9669)

Co-authored-by: Hugo Locurcio <[email protected]>
Fredia Huya-Kouadio 1 year ago
parent
commit
73091bea0a

+ 43 - 29
contributing/development/compiling/compiling_for_android.rst

@@ -90,10 +90,11 @@ Setting up the buildsystem
 Building the export templates
 Building the export templates
 -----------------------------
 -----------------------------
 
 
-Godot needs two export templates for Android: the optimized "release"
-template (``android_release.apk``) and the debug template (``android_debug.apk``).
+Godot needs three export templates for Android: the optimized "release"
+template (``android_release.apk``), the debug template (``android_debug.apk``),
+and the Gradle build template (``android_source.zip``).
 As Google requires all APKs to include ARMv8 (64-bit) libraries since August 2019,
 As Google requires all APKs to include ARMv8 (64-bit) libraries since August 2019,
-the commands below build an APK containing both ARMv7 and ARMv8 libraries.
+the commands below build templates containing both ARMv7 and ARMv8 libraries.
 
 
 Compiling the standard export templates is done by calling SCons from the Godot
 Compiling the standard export templates is done by calling SCons from the Godot
 root directory with the following arguments:
 root directory with the following arguments:
@@ -105,14 +106,6 @@ root directory with the following arguments:
     scons platform=android target=template_release arch=arm32
     scons platform=android target=template_release arch=arm32
     scons platform=android target=template_release arch=arm64 generate_apk=yes
     scons platform=android target=template_release arch=arm64 generate_apk=yes
 
 
-.. note::
-
-    If you are changing the list of architectures you're building, remember to add
-    ``generate_apk=yes`` to the *last* architecture you're building, so that an APK
-    file is generated after the build.
-
-The resulting APK will be located at ``bin/android_release.apk``.
-
 -  Debug template (used when exporting with **Debugging Enabled** checked)
 -  Debug template (used when exporting with **Debugging Enabled** checked)
 
 
 ::
 ::
@@ -120,7 +113,25 @@ The resulting APK will be located at ``bin/android_release.apk``.
     scons platform=android target=template_debug arch=arm32
     scons platform=android target=template_debug arch=arm32
     scons platform=android target=template_debug arch=arm64 generate_apk=yes
     scons platform=android target=template_debug arch=arm64 generate_apk=yes
 
 
-The resulting APK will be located at ``bin/android_debug.apk``.
+- (**Optional**) Dev template (used when troubleshooting)
+
+::
+
+    scons platform=android target=template_debug arch=arm32 dev_build=yes
+    scons platform=android target=template_debug arch=arm64 dev_build=yes generate_apk=yes
+
+The resulting templates will be located under the ``bin`` directory:
+
+- ``bin/android_release.apk`` for the release template
+- ``bin/android_debug.apk`` for the debug template
+- ``bin/android_dev.apk`` for the dev template
+- ``bin/android_source.zip`` for the Gradle build template
+
+.. note::
+
+   - If you are changing the list of architectures you're building, remember to add ``generate_apk=yes`` to the *last* architecture you're building, so that the template files are generated after the build.
+
+   - To include debug symbols in the generated templates, add the ``debug_symbols=yes`` parameter to the SCons command.
 
 
 .. seealso::
 .. seealso::
 
 
@@ -142,10 +153,10 @@ example, for the release template:
     scons platform=android target=template_release arch=x86_32
     scons platform=android target=template_release arch=x86_32
     scons platform=android target=template_release arch=x86_64 generate_apk=yes
     scons platform=android target=template_release arch=x86_64 generate_apk=yes
 
 
-This will create a fat binary that works on all platforms.
-The final APK size of exported projects will depend on the platforms you choose
+This will create template binaries that works on all platforms.
+The final binary size of exported projects will depend on the platforms you choose
 to support when exporting; in other words, unused platforms will be removed from
 to support when exporting; in other words, unused platforms will be removed from
-the APK.
+the binary.
 
 
 Cleaning the generated export templates
 Cleaning the generated export templates
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -164,19 +175,18 @@ You can use the following commands to remove the generated export templates:
 Using the export templates
 Using the export templates
 --------------------------
 --------------------------
 
 
-Godot needs release and debug APKs that were compiled against the same
+Godot needs release and debug binaries that were compiled against the same
 version/commit as the editor. If you are using official binaries
 version/commit as the editor. If you are using official binaries
 for the editor, make sure to install the matching export templates,
 for the editor, make sure to install the matching export templates,
 or build your own from the same version.
 or build your own from the same version.
 
 
-When exporting your game, Godot opens the APK, changes a few things inside and
-adds your files.
+When exporting your game, Godot uses the templates as a base, and updates their content as needed.
 
 
 Installing the templates
 Installing the templates
 ~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
 
 The newly-compiled templates (``android_debug.apk``
 The newly-compiled templates (``android_debug.apk``
-and ``android_release.apk``) must be copied to Godot's templates folder
+, ``android_release.apk``, and ``android_source.zip``) must be copied to Godot's templates folder
 with their respective names. The templates folder can be located in:
 with their respective names. The templates folder can be located in:
 
 
 -  Windows: ``%APPDATA%\Godot\export_templates\<version>\``
 -  Windows: ``%APPDATA%\Godot\export_templates\<version>\``
@@ -191,7 +201,7 @@ next to your export templates.
 .. TODO: Move these paths to a common reference page
 .. TODO: Move these paths to a common reference page
 
 
 However, if you are writing your custom modules or custom C++ code, you
 However, if you are writing your custom modules or custom C++ code, you
-might instead want to configure your APKs as custom export templates
+might instead want to configure your template binaries as custom export templates
 here:
 here:
 
 
 .. image:: img/andtemplates.png
 .. image:: img/andtemplates.png
@@ -214,16 +224,20 @@ root directory with the following arguments:
    scons platform=android arch=x86_32 production=yes target=editor
    scons platform=android arch=x86_32 production=yes target=editor
    scons platform=android arch=x86_64 production=yes target=editor generate_apk=yes
    scons platform=android arch=x86_64 production=yes target=editor generate_apk=yes
 
 
-You can skip certain architectures depending on your target device to speed up
-compilation. Remember to add ``generate_apk=yes`` to the *last* architecture
-you're building, so that an APK file is generated after the build.
+- You can add the ``dev_build=yes`` parameter to generate a dev build of the Godot editor.
 
 
-The resulting APK will be located at ``bin/android_editor_builds/android_editor-release.apk``.
+- You can add the ``debug_symbols=yes`` parameter to include the debug symbols in the generated build.
 
 
-Removing the Editor templates
------------------------------
+- You can skip certain architectures depending on your target device to speed up compilation. 
+
+Remember to add ``generate_apk=yes`` to the *last* architecture you're building, so that binaries are generated after the build.
+
+The resulting binaries will be located under ``bin/android_editor_builds/``.
+
+Removing the Editor binaries
+----------------------------
 
 
-You can use the following commands to remove the generated editor templates:
+You can use the following commands to remove the generated editor binaries:
 
 
 ::
 ::
 
 
@@ -233,8 +247,8 @@ You can use the following commands to remove the generated editor templates:
    # On Linux and macOS
    # On Linux and macOS
    ./gradlew clean
    ./gradlew clean
 
 
-Installing the Godot editor
----------------------------
+Installing the Godot editor APK
+-------------------------------
 
 
 With an Android device with Developer Options enabled, connect the Android device to your computer via its charging cable to a USB/USB-C port.
 With an Android device with Developer Options enabled, connect the Android device to your computer via its charging cable to a USB/USB-C port.
 Open up a Terminal/Command Prompt and run the following commands from the root directory with the following arguments:
 Open up a Terminal/Command Prompt and run the following commands from the root directory with the following arguments:

+ 1 - 2
tutorials/editor/using_the_android_editor.rst

@@ -9,7 +9,7 @@ that can be used to work on new or existing projects on Android devices.
 
 
 .. note::
 .. note::
 
 
-    The Android editor is in beta testing stage, while we continue to refine the experience,
+    The Android editor is in early access, while we continue to refine the experience,
     and bring it up to parity with the Desktop version of the editor. See :ref:`doc_using_the_android_editor_limitations` below.
     and bring it up to parity with the Desktop version of the editor. See :ref:`doc_using_the_android_editor_limitations` below.
 
 
 Android devices support
 Android devices support
@@ -41,7 +41,6 @@ Here are the known limitations and issues of the Android editor:
 - No support for building and exporting an Android APK binary.
 - No support for building and exporting an Android APK binary.
   As a workaround, you can generate and export a `Godot PCK or ZIP file <https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#pck-versus-zip-pack-file-formats>`__
   As a workaround, you can generate and export a `Godot PCK or ZIP file <https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#pck-versus-zip-pack-file-formats>`__
 - No support for building and exporting binaries for other platforms
 - No support for building and exporting binaries for other platforms
-- Performance and stability issues when using the *Vulkan Mobile* renderer for a project
 - UX not optimized for Android phones form-factor
 - UX not optimized for Android phones form-factor
 - `Android Go devices <https://developer.android.com/guide/topics/androidgo>`__ lacks
 - `Android Go devices <https://developer.android.com/guide/topics/androidgo>`__ lacks
   the *All files access* permission required for device read/write access.
   the *All files access* permission required for device read/write access.

+ 4 - 1
tutorials/export/exporting_for_android.rst

@@ -28,7 +28,7 @@ Download the Android SDK
 
 
 Download and install the Android SDK.
 Download and install the Android SDK.
 
 
-- You can install the Android SDK using `Android Studio Hedgehog (version 2023.1.1) or later <https://developer.android.com/studio/>`__.
+- You can install the Android SDK using `Android Studio Iguana (version 2023.2.1) or later <https://developer.android.com/studio/>`__.
 
 
   - Run it once to complete the SDK setup using these `instructions <https://developer.android.com/studio/intro/update#sdk-manager>`__.
   - Run it once to complete the SDK setup using these `instructions <https://developer.android.com/studio/intro/update#sdk-manager>`__.
   - Ensure that the `required packages <https://developer.android.com/studio/intro/update#required>`__ are installed as well.
   - Ensure that the `required packages <https://developer.android.com/studio/intro/update#required>`__ are installed as well.
@@ -37,6 +37,9 @@ Download and install the Android SDK.
     - Android SDK Build-Tools version 34.0.0
     - Android SDK Build-Tools version 34.0.0
     - Android SDK Platform 34
     - Android SDK Platform 34
     - Android SDK Command-line Tools (latest)
     - Android SDK Command-line Tools (latest)
+
+  - Ensure that the `NDK and CMake are installed and configured <https://developer.android.com/studio/projects/install-ndk>`__.
+  
     - CMake version 3.10.2.4988404
     - CMake version 3.10.2.4988404
     - NDK version r23c (23.2.8568313)
     - NDK version r23c (23.2.8568313)