關於 Android App Bundle

「Android App Bundle」是一種發布格式,其中包含您應用程式所有編譯過的程式碼和資源,延後將 APK 產生及簽署 Google Play。

Google Play 會透過您的應用程式套件為各種裝置設定產生及提供最佳化 APK,因此僅會下載特定裝置所需的程式碼和資源,以執行您的應用程式。您不再需要建構、簽署及管理多個 APK,針對不同裝置提供最佳支援,且使用者取得更小且最佳化的下載。

大多數的應用程式專案可以輕鬆建構支援提供最佳化 APK 的應用程式套件。舉例來說,如果您已根據現有的慣例整理應用程式的程式碼和資源,只要使用 Android Studio 或使用指令列建構簽署的 Android App Bundle,並上傳至 Google Play。您可以持續受益於經過最佳化的 APK 提供機制。

使用應用程式套件格式發布應用程式時,您也可以選擇運用 Play Feature Delivery,在應用程式專案中加入「功能模組」。這些模組包含的功能和資源僅根據您指定的條件包含在應用程式中,或者日後在執行階段時使用 Play Core 程式庫下載。

透過應用程式套件發布應用程式的遊戲開發人員,可以使用 Play Asset Delivery:Google Play 的解決方案提供大量遊戲資產,讓開發人員享有靈活的提交方式和高效能。

請觀看以下影片,概略瞭解使用 Android App Bundle 發布應用程式的原因。

壓縮下載大小限制

透過 Android App Bundle 發布時,可讓使用者以盡可能減少下載次數安裝應用程式,並且將壓縮下載大小上限提高至 200 MB。也就是說,當使用者下載應用程式時,安裝應用程式的壓縮 APK (例如基本 APK + 設定 APK) 大小不得超過 200 MB。後續的所有下載作業 (例如隨選下載功能模組及其設定 APK) 也必須符合這個壓縮下載大小限制。資產包不適用於這個大小限制,但其有其他大小限制

當您上傳應用程式套件時,如果 Play 管理中心發現應用程式下載的任何可能下載次數或隨選功能超過 200 MB,就會收到錯誤訊息。

請注意,Android App Bundle 不支援 APK 擴充檔案 (*.obb) 檔案。因此,如果您在發布應用程式套件時遇到這個錯誤,請使用下列資源縮減壓縮的 APK 下載大小:

  • 您必須為每種設定 APK 設置 enableSplit = true,藉此啟用所有設定 APK。藉此確保使用者只下載在裝置上執行應用程式所需的程式碼和資源。
  • 請務必移除未使用的程式碼和資源,以縮減應用程式
  • 按照最佳做法進一步縮減應用程式大小
  • 請考慮將只有部分使用者會使用的功能轉換為功能模組,方便應用程式日後隨選下載。請注意,您可能需要重構應用程式,因此請務必先嘗試上述其他建議。

其他考量

以下是使用 Android App Bundle 建構或提供應用程式時,目前已知的問題。如果您遇到未於下方說明的問題,請回報錯誤

  • 側載應用程式的部分安裝 (也就是未透過 Google Play 商店安裝,且缺少一個或多個必要的分割 APK) 在所有 Google 認證裝置和搭載 Android 10 (API 級別 29) 或以上版本的裝置上均失敗。透過 Google Play 商店下載應用程式時,Google 會確實安裝應用程式所需的所有元件。
  • 如果您使用的工具會動態修改資源資料表,應用程式套件產生的 APK 可能會發生非預期的行為。因此,建議您在建立應用程式套件時停用這類工具。
  • 在功能模組的建構設定中,您目前可以設置與基本 (或其他) 模組中的屬性衝突的屬性。舉例來說,您可以在基本模組中設定 buildTypes.release.debuggable = true,然後在功能模組中將其設為 false。這類衝突可能會導致建構與執行階段問題。請注意,根據預設,功能模組會沿用基本模組中的某些建構設定。因此,請務必瞭解功能模組建構設定中應保留哪些設定,以及應省略哪些設定。

其他資源

如要進一步瞭解 Android App Bundle,請參閱下列資源。

網誌文章

影片