Android App Bundle
簡介
Android App Bundle (AAB)是 Google Play 中的推薦的應用發布格式。通過使用 AAB 來發布應用,可以縮減應用大小、簡化發布流程,同時還可啟用各種高級分發功能。
在 2021 年 8 月,新應用將需要使用 Android App Bundle 才能在 Google Play 中發布,對於舊應用更新暫無要求。大小超過 150 MB 的新應用必須使用 Play Feature Delivery 或 Play Asset Delivery。
目前游戲常用的 OBB 方式將不再推薦使用!請游戲做好遷移准備,特別新游戲推薦使用 AAB 方式。
支持情況
Android App Bundle 目前已在 Android Studio 3.2 及以上版本、 Unity 2017.4.17 & 2018.3 及以上版本、 Cocos Creator 2.0.9 及以上版本支持。
推薦的方式
Google 提供 Play Feature Delivery 或 Play Asset Delivery 兩種方法以支持 AAB 方式。Play Feature Delivery 一般用於非游戲類應用,對於游戲請使用 Play Asset Delivery 。
Play Asset Delivery
Play Asset Delivery (PAD) 將 App Bundle 的優勢帶到游戲中。它允許超過 150 MB 的游戲替換舊版擴展文件 (OBB),方法是將包含游戲所需的所有資源的單個工件發布到 Play。PAD 提供了靈活的分發模式、自動更新、壓縮和增量修補功能,並且可免費使用。
Play Asset Delivery 使用 Asset Pack,Asset Pack 由 Asset(如紋理、着色器和聲音)組成,但不包含可執行代碼。通過 Dynamic Delivery,游戲可以按照以下三種分發模式自定義如何以及何時將各個 Asset Pack 下載到設備上:安裝時分發(install-time)、快速跟進式分發(fast-follow)和按需分發(on-demand)。
分發模式
-
install-time Asset Pack 在用戶安裝應用時分發。這些 Asset Pack 以拆分 APK(APK 集的一部分)的形式提供。它們也稱為“預先”Asset Pack;可應用啟動時將立即使用這些 Asset Pack。這些 Asset Pack 會增加 Google Play 商店上列出的應用大小。用戶無法修改或刪除這些 Asset Pack。
-
fast-follow Asset Pack 會在用戶安裝應用后立即自動下載;用戶無需打開應用即可開始 fast-follow 下載。此類下載不會阻止用戶訪問應用。這些 Asset Pack 會增加 Google Play 商店上列出的應用大小。
-
on-demand Asset Pack 運行時,由游戲邏輯控制,決定是否下載和安裝。
分發模式的大小上限
- 每個 fast-follow 和 on-demand Asset Pack 的下載大小上限為 512 MB。
- 所有 install-time Asset Pack 的總下載大小上限為 1 GB。
- 一個 Android App Bundle 中的所有 Asset Pack 的總下載大小上限為 2 GB。
- 一個 Android App Bundle 中最多可以使用 50 個 Asset Pack。
建議
-
選擇安裝時分發(install-time)。游戲在使用 Play Asset Delivery 難免會面臨對安裝時分發(install-time)、快速跟進式分發(fast-follow)和按需分發(on-demand)三種模式的選擇,在此建議游戲直接使用安裝時分發模式。安裝時分發模式與快速跟進式分發對比,安裝時分發比有較為清晰的使用場景,Google 在 Play Asset Delivery 中也沒有明確指明兩者的區別。為避免使用復雜度和不必要的風險推薦使用安裝時分發,不使用快速跟進式分發。 對於安裝時分發模式的總大小為 1 GB,一般游戲在開始的幾個版本或者很長一段時間內不會超過此大小,因此游戲初期可以放心使用。
-
在業務增長后可以考慮使用增加按需分發模式,將非必須的 Asset Pack 放入按需分發,需要注意是使用按需分發需要接入 Play Core API 查詢按需分發下 Asset Pack 的情況。
AAB 與 CDN 分發資源
AAB 的推出用於替代 OBB 方式,並不會禁止游戲使用 CDN 方式分發和更新資源。Google 的文檔中指出的 “使用 PAD,所有 Asset Pack 均在 Google Play 上托管和提供,因此您無需使用內容分發網絡 (CDN) 向玩家提供游戲資源。”並不是強制要求不能使用 CDN 分發資源。
Unity 上應用 Play Asset Delivery
Google 已提供了十分詳細的指導文檔,請仔細閱讀針對 Unity 構建。
Cocos2d-x 上使用 Android App Bundle
請查看文檔:Cocos2d-x 使用 Android App Bundle 指南
加入 Play 應用簽名計划
**使用 AAB 必須加入 Play 應用簽名計划,更多信息可以查看文檔使用 Google Play 應用簽名、對應用進行簽名。
測試以及技術支持
使用 Play Asset Delivery 后無需特別測試,如果使用 按需分發(on-demand)模式可以參考 測試 Android App Bundle 和 在本地測試模塊的安裝 進行測試。