Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

为 Android 导出

参见

这个页面描述的是如何将 Godot 项目导出到 Android。如果你想要找的是从源码编译编辑器或导出模板二进制文件,请阅读为 Android 平台编译

导出到 Android 的要求比编译 Android 的 Godot 要少。下面的步骤详细介绍了设置 Android SDK 和引擎所需的内容。

注意

Godot 4.2 中,使用 C# 编写的项目可以导出到 Android,但这种支持是实验性的,存在某些限制

安装 OpenJDK 17

下载并安装 OpenJDK 17

备注

更高版本的 JDK 也可使用,但建议使用 JDK 17 以获得最佳兼容性和稳定性。

下载 Android SDK

下载并安装 Android SDK。

sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;35.0.1" "platforms;android-35" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;28.1.13356709"

备注

如果你使用的是 Linux,请勿使用发行版软件库提供的 Android SDK,因为它通常是过时的

在 Godot 中进行设置

进入编辑器设置屏幕(在 macOS 平台上位于 Godot 选项卡下,在其他平台上位于编辑器选项卡下)。此屏幕包含计算机中用户帐户的编辑器设置(与这独立于此项目)。

../../_images/editorsettings.png

向下滚动到 Android 设置所在的部分:

../../_images/android_editor_settings.webp

在该屏幕中,需要设置两个路径:

  • Java SDK Path 应当为 OpenJDK 17 的安装位置。

  • Android SDK Path 应设置为 Android SDK 的安装位置。该目录下应包含 platform-tools/adb 。例如,Windows 系统上的 %LOCALAPPDATA%\Android\Sdk\ ,或 macOS 系统上的 /Users/$USER/Library/Android/sdk/

配置完成后,导出到 Android 的一切都准备好了!

备注

如果你遇到 “Could not install to device” 的错误,请确认设备上未安装使用了相同 Android 包名(但使用不同密钥进行签名)的应用。

如果设备上安装了 Android 包名相同但签名密钥不同的应用,你必须先在该 Android 设备上删除该应用,而后再重新导出到 Android。

提供启动器图标

启动器图标是 Android 启动器应用把你的应用展示给用户时所用到的。Godot 只需要高分辨率图标(适用于 xxxhdpi 屏幕),会自动生成低分辨率的变体。

这里有三种类型的图标:

  • 主图标:“经典”图标。这会在所有 Android 版本不高于 Android 8(Oreo)中使用。必须至少为 192×192 px。

  • 自适应图标: 从 Android 8(含)开始,系统引入了 Adaptive Icons 。为了让应用看起来更原生,开发者需要分别提供独立的“背景”和“前景”图标图层。用户的桌面启动器(Launcher)会自动控制图标的遮罩形状和动画效果。图标的尺寸必须至少为 432×432 像素。

  • 主题图标(可选):从 Android 13 开始(含)引入了主题图标。应用程序需要包含一个单色图标来启用此特性。用户的启动程序会控制图标的主题。必须至少为 432×432 px。

参见

重要的是设计自适应图标时必须遵守一些规则。Google Design 提供了一篇不错的文章来帮助理解这些规则以及自适应图标的一些技巧。

小心

自适应图标最重要的规则是,要把图标的重要元素放置在安全区内:那是一个居中的直径为 66dp(xxxhdpi 上为 264 像素)的圆,这样就可以避免被启动器裁剪。

若未提供要求的图标(单色图标除外),Godot 将按回退链自动替换:当前图标加载失败时,依次尝试链中的下一个候选图标。

  • 主图标:提供的主图标 -> 项目图标 -> 默认 Godot 主图标。

  • 自适应图标前景:提供的前景图标 -> 提供的主图标 -> 项目图标 -> 默认 Godot 前景图标。

  • 自适应图标背景:提供的背景图标 -> 默认 Godot 背景图标。

强烈建议提供所有要求的图标的指定分辨率。这样一来,你的应用程序在所有的 Android 设备和版本上都会显得非常漂亮。

为 Google Play 商店导出

2021 年 8 月之后所有上传至 Google Play 的新应用必须使用 AAB(Android App Bundle)文件。

将 AAB 或 APK 上传至 Google Play 应用商店时,需使用非调试密钥库文件进行签名;该文件可通过如下方式生成:

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

这个密钥库和密钥用于验证你的开发人员身份,请记住密码并将其保存在安全的地方!使用 Google 的 Android 开发者指南来了解有关应用签名的更多信息。

现在,在你的 Android 导出预设中填写以下表格:

../../_images/editor-export-presets-android.png
  • 发布:输入你刚刚生成的密钥库文件的路径。

  • 发布用户:替换为密钥别名。

  • 发布密码:密钥密码。请注意,密钥库密码和密钥密码当前必须相同。

在导出时,不要忘记取消勾选使用调试导出

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

优化文件大小

如果你使用的是 APK 而不是 AAB,默认情况下,APK 将包含 ARMv7 和 ARMv8 架构两者的原生库,这会大大增加其大小。要创建较小的 APK,请在项目的 Android 导出预设中取消选中 Armeabi-v 7aArm 64 -v 8a。这将创建一个仅针对单个架构的 APK。请注意,针对 ARMv7 的应用程序也可以在 ARMv8 设备上运行,但反之不然。使用 AAB 时不需要这样做,因为 Google 会在其后端自动分割 AAB,用户只会下载他们需要的内容。

你可以通过仅编译具有所需功能的 Android 导出模板来进一步优化大小。有关更多信息,请参见为尺寸优化构建

环境变量

你可以使用以下环境变量在编辑器外部设置导出选项。在导出过程中,这些值会覆盖你在导出菜单中设置的值。

Android 导出环境变量

导出选项

环境变量

加密 / 密钥

GODOT_SCRIPT_ENCRYPTION_KEY

选项 / 密钥库 / 调试

GODOT_ANDROID_KEYSTORE_DEBUG_PATH

选项 / 密钥库 / 调试用户

GODOT_ANDROID_KEYSTORE_DEBUG_USER

选项 / 密钥库 / 调试密码

GODOT_ANDROID_KEYSTORE_DEBUG_PASSWORD

选项 / 密钥库 / 发布

GODOT_ANDROID_KEYSTORE_RELEASE_PATH

选项 / 密钥库 / 发布用户

GODOT_ANDROID_KEYSTORE_RELEASE_USER

选项 / 密钥库 / 发布密码

GODOT_ANDROID_KEYSTORE_RELEASE_PASSWORD

导出选项

导出选项的完整列表见EditorExportPlatformAndroid类参考文档。