關於 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 發布應用程式,有助於使用者以盡可能少的下載量安裝您的應用程式,並提高壓縮下載大小。也就是說,使用者下載應用程式時,安裝應用程式的壓縮 APK 大小 (例如基準 APK + 設定 APK) 不得超過 4 GB。後續的所有下載作業 (例如隨選下載功能模組及其設定 APK) 也必須符合這個壓縮下載大小限制。資產包不適用於這個大小限制,但其有其他大小限制

如果 Play 管理中心發現任一應用程式下載作業或隨選功能超出大小上限,就會收到錯誤訊息。

請注意,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,請參閱下列資源。

網誌文章

影片