为Android导出

为Android导出比为Android编译Godot的要求更少。以下步骤详细说明了设置SDK和引擎所需的内容。

下载Android SDK

下载并安装Android SDK,从 https://developer.android.com/studio/

安装OpenJDK或Oracle JDK

下载并安装 OpenJDKOracle JDK。JDK 8以下的版本可能无法正常工作;有些用户在JDK 7中报告了jarsigner(用于签名APK)的问题。

创建一个debug.keystore

Android需要调试密钥库文件,才能安装到设备并分发非发布版本APK。如果您以前使用过SDK并且已经构建了项目,那么ant或eclipse可能会为您生成一个(在Linux和macOS上,您可以在 〜/ .android 目录中找到它)。

如果找不到或需要生成一个,JDK的 keytool 命令可用于此目的:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

确保您有adb

Android Debug Bridge(adb)是用于与Android设备通信的命令行工具。它随SDK一起安装,但您可能需要安装一个(任何)Android API级别才能将其安装在SDK目录中。

在Godot中设置它

进入编辑器设置画面。此画面包含计算机中用户帐户的编辑器设置(它独立于项目)。

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

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

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

在该界面中,需要设置3个文件的路径:

  • adb 可执行文件(Windows上的adb.exe)
  • jarsigner 可执行文件(来自JDK 6或8)
  • Debug 的 keystore

配置完成后,导出到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.

参见

It’s important to adhere to some rules when designing adaptive icons. Google Design has provided a nice article that helps to understand those rules and some of the capabilities of adaptive icons.

警告

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

If you don’t provide some of the requested icons, Godot will replace them using a fallback chain, trying the next in line when the current one fails:

  • Main Icon: Provided main icon -> Project icon -> Default Godot main icon.
  • 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 of the requested icons, and at least with the specified resolutions. Only this way your application will look great on all the Android devices and versions.

为Google Play商店导出

将APK上传到Google的Play商店,需要您使用非调试密钥库文件进行签名,这样的文件可以像这样生成:

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

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

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

../../../_images/editor-export-presets-android.png
  • 发布: 输入您刚刚生成的密钥库文件的路径。
  • 发布用户: 替换为密钥别名。
  • 发布密码: 密钥密码。 请注意,密钥库密码和密钥密码当前必须相同。

您的export_presets.cfg文件现在包含敏感信息。 如果使用版本控制系统,则应将其从公共存储库中删除,并将其添加到 .gitignore 文件或等效文件中。

选择APK的名称时,请不要忘记取消选中 带调试导出 复选框。

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

优化APK大小

默认情况下,APK将包含适用于ARMv7和ARMv8体系结构的本地库。这会大大增加其大小。要创建较小的APK,请在项目的Android导出预设中取消选中 Armeabi-v 7aArm 64 -v 8a。这将创建一个仅包含单个架构库的APK。请注意,针对ARMv7的应用程序也可以在ARMv8设备上运行,但事实并非如此。

自2019年8月起,Google Play要求所有应用程序都必须以64位格式提供。这意味着您不能上传 包含ARMv7库的APK。为了解决这个问题,您可以使用其 多个APK支持 将多个APK上传到Google Play。每个APK都应针对单一架构;为ARMv7和ARMv8创建APK通常足以覆盖当今使用的大多数设备。

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