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 還來得少。下列為設定 SDK 與 Godot 所需的詳細步驟。

注意

自 Godot 4.2 起,C# 專案也可以匯出到 Android,但目前僅為實驗性支援,且 有部分限制

安裝 OpenJDK 17

下載並安裝 OpenJDK 17

備註

也支援更高版本的 JDK,但建議使用 JDK 17 以獲得最佳相容性與穩定性。

下載 Android SDK

下載與安裝 Android SDK。

  • 你可以使用 Android Studio Iguana (2023.2.1 版或更新版本) 來安裝 Android SDK。

    • 依照這裡的 指示 執行一次 Android Studio 來完成設定 SDK。

    • 請確認也已安裝所有 必要套件

      • Android SDK Platform-Tools 35.0.0 版或更新版本

      • Android SDK Build-Tools version 35.0.1

      • Android SDK Platform 35

      • 安裝 Android SDK (命令列版本)

    • 請確認 NDK 與 CMake 也都已安裝並正確設定,可參考官方文件:<https://developer.android.com/studio/projects/install-ndk>。

      • CMake 版本 3.10.2.4988404

      • NDK 版本 r28b(28.1.13356709)

  • 你也可以選擇使用 sdkmanager 命令列工具來安裝 Android SDK。

    • 請參考這份 指引 安裝命令列工具套件。

    • 安裝好命令列工具後,執行下列 sdkmanager 指令來完成 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

在此畫面中,需要設定 2 個路徑:

  • Java SDK Path 應設為 OpenJDK 17 安裝路徑。

  • Android SDK Path should be the location where the Android SDK was installed. This directory should contain platform-tools/adb. - For example %LOCALAPPDATA%\Android\Sdk\ on Windows or /Users/$USER/Library/Android/sdk/ on macOS.

設定好了之後,就準備好能匯出到 Android 了!

備註

如果你遇到 “Could not install to device” 的錯誤,請確認裝置上未安裝使用了相同Android包名(但使用不同金鑰進行簽章)的應用。

如果裝置上安裝了 Android 包名相同但簽章金鑰不同的應用,你**必須**先在該 Android 裝置詢問時選擇刪除該應用,但後再重新匯出到 Android。

提供起動器圖示

啟動器圖示是給 Android 起動器應用程式將程式顯示給使用者看的圖示。Godot 中只需要提供高解析度圖示 (用於 xxxhdpi 密度螢幕),就會自動產生各個低解析度的版本。

圖示有三種:

  • 主圖示: 即「經典」的圖示。會用於最高至 Android 8 (Orea) 的 Android 版本。必須至少有 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.

  • 主題圖示 (選用): 從 Android 13 (含) 開始,推出了主題圖示。應用程式需要包含一個單色圖示才能啟用此功能。使用者的啟動器應用程式將會控制圖示的主題。必須至少為 432x432 像素。

也參考

在設計調適性圖示時,遵守一些規則也很重要。Google Design 發表了一篇很棒的文章 (英文) ,有助於瞭解這些規則以及調適性圖示的一些限制。

警示

調適性圖示設計規則中最重要的一點是要將圖示的關鍵元素放在安全區域內,即為正中間有直徑 66dp 的圓圈 (xxxhdpi 下為 264 像素),才可避免圖示被起動器給剪裁。

如果您沒有提供要求的圖示 (Monochrome 除外),Godot 將會透過使用備用鏈來取代它們,當目前一個失敗時會嘗試下一個:

  • Main Icon: 提供的主圖示 -> 專案圖示 -> 預設 Godot 主圖示。

  • Adaptive Icon Foregrond: 提供的前景圖示 -> 提供的主圖示 -> 專案圖示 -> 預設 Godot 前景圖示。

  • Adaptive Icon Background: 提供的背景圖示 -> 預設 Godot 背景圖示。

強烈建議提供所有需要的圖示,並至少要有指定的解析度。只有這樣才能讓應用程式在所有 Android 裝置與版本中看起來好看。

為 Google Play Store 匯出

自 2021 年 8 月起,上傳到 Google Play 的新應用程式必須為 AAB (Android App Bundle) 格式。

將 AAB 或 APK 上傳到 Google Play 商店時,必須使用非除錯用的 keystore 檔案簽章。你可以用下列指令產生:

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

此 keystore 及金鑰會用來驗證你的開發者身份,請務必記住密碼並妥善保存!建議僅使用英數大小寫,不建議特殊符號,以免發生錯誤。更多關於應用簽章的細節可參考 Google 官方說明:app signing

接著在 Android 匯出預設中填寫下列表格:

../../_images/editor-export-presets-android.png
  • Release: 輸入剛才產生的金鑰儲存區檔案位置。

  • Release User: 以金鑰別名取代。

  • Release Password: 金鑰密碼,請注意,目前金鑰儲存區密碼與金鑰的密碼必須相同。

設定 APK 名稱時也別忘了取消勾選 [Export With Debug] 勾選框。

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

最佳化檔案大小

如果你是用 APK 而非 AAB,預設 APK 會同時包含 ARMv7 及 ARMv8 架構的原生函式庫,導致檔案變大。若想縮小檔案,可以在專案的 Android 匯出預設中取消勾選 Armeabi-v 7aArm 64-v 8a,就會只生成對單一架構的 APK。需注意,針對 ARMv7 編譯的應用在 ARMv8 裝置上也可執行,但反之不行。如果你是使用 AAB,Google Play 會自動依用戶裝置分拆下載所需架構,因此不用這樣手動省空間。

還可以進一步通過編譯只有所需功能的 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 類別參考。