7 月 7 日消息 今日“谷歌開發者”微信公眾號發文詳細介紹了 Google Play 商店新應用格式 Android App Bundle(AAB),官方稱,自 2018 年 5 月發布 Android App Bundle 以來,受益于其簡化的發布管理和高級分發功能,有逾一百萬款正式版應用在使用 App Bundle,Google Play 上排名前 1,000 的大多數應用和游戲均在此列,例如 Adobe、Duolingo、Gameloft、Netflix、redBus、Riafy 和 Twitter。

為了讓更多用戶體驗到這些優勢,并專注推廣對所有開發者有益的現代 Android 分發技術,自 2021 年 8 月起,Google Play 將開始要求新應用使用 Android App Bundle 進行發布,該格式將取代 APK 作為標準發布格式。

官方還詳解了 Android App Bundle 的一些優勢,如下:
Android App Bundle: Google Play 使用 App Bundle 生成并優化 APK,以針對不同設備配置和語言進行分發。這種方式可令應用體積更小 (平均而言,比一般 APK 小 15%),下載速度更快,進而提升安裝量,減少卸載量。
Play 應用簽名: 以 App Bundle 方式分發需要 Play 應用簽名,這種簽名使用 Google 的安全基礎架構避免了應用簽名密鑰丟失,并可以升級到加密性更強的新應用簽名密鑰。
Play Feature Delivery: 超過 10% 的使用了 App Bundle 的熱門應用都在使用 Play Feature Delivery,自定義將哪些功能模塊交付給哪個設備,以及何時交付。它支持安裝時交付、按條件交付和按需交付等三種模式。
Play Asset Delivery: 以動態方式交付大型資源可以減少用戶等待時間,同時縮減交付成本。使用 Play Asset Delivery 的游戲可以使用紋理壓縮格式作為交付條件,以便用戶只獲得適合其設備的資源,避免浪費空間或帶寬。
未來改進: Play 應用簽名將在不久后開始向適合的應用推出 APK Signature Scheme v4,允許其訪問較新設備上即將推出的性能特性。請關注于 7 月 12 日舉辦的 Google 游戲開發者峰會,了解更多詳情。

值得一提的是,App Bundle 的要求僅適用于新應用,而現有應用及面向特定 Google Play 用戶的私人應用目前無需遵從此要求。
關于 Android App Bundle 的一些常見問題的回答:
Q:相比 APK 而言,使用 App Bundle 開發應用需要多少工作量?
對于大多數應用而言,構建 AAB 文件來替代 APK 文件僅需要少量工作。這其中的關鍵是在構建時選擇其他選項并按常規方式進行測試。App Bundle 是一種受主流構建工具支持的開源格式,包括 Android Studio、Gradle、Bazel、Buck、Cocos Creator、Unity、Unreal Engine 和其他引擎。在 Play Core 原生 SDK、Play Core Java SDK 和 Play Core Kotlin SDK 的助力下,無論用戶偏好哪種編碼環境,都可以輕松開始使用可選的高級 App Bundle 功能。
Q:App Bundle 為何不支持擴展文件 (OBB)?為何游戲應使用 Play Asset Delivery?
APK 要求使用單獨的文件 (OBB) 來向用戶推送更多資源。但是,由于 OBB 不具有簽名且存儲在應用的外部存儲中,所以不夠安全。借助 Play Asset Delivery (PAD),用戶可以在 Play 商店中將大小超過 150MB 的游戲整體發布為單個 App Bundle,從而替換掉 OBB。除了能實現更順暢的發布流程和更靈活的推送模式,相比于以前的擴展文件,PAD 具有更多優勢:其資源的增量補丁面向大型應用進行了優化,這意味著更新需要的設備存儲空間比 OBB 少得多。因此,其快速跟進的安裝模式提升了安裝率和商店轉化率。最終,由于 ASTC 現在支持約 80% 的設備,紋理壓縮格式的定位條件讓您可以向支持該功能的設備推送 ASTC。您可以定位眾多 Android 設備,同時高效利用可用硬件和設備存儲空間。
Q:如果使用 App Bundle,我是否可以繼續通過多分發渠道/應用商店發布應用?
當然可以,您可以通過多種方式實現。您可以使用通用的應用簽名密鑰或使用針對不同渠道的唯一應用簽名密鑰,包括面向 Google Play 的唯一應用簽名密鑰。您可以在本地面向所有分發渠道構建并簽名工件,或者從 Google Play 中下載可分發的 APK,并發布于其他渠道。從 Google Play 下載的 APK,無論其是通過 Play 管理中心中的 App Bundle 資源管理器還是 Play Developer API 進行下載,均由 Play 應用簽名管理的同個密鑰進行簽名。
Q:如果要發布一個新應用,我能決定我的應用簽名密鑰內容嗎?
可以,我們會在 Play 管理中心中提供此選項。創建新應用時,您可以選擇向 Google 提供應用簽名密鑰。您可以借此在本地留存應用簽名密鑰副本,例如生成與 Play 同樣秘鑰簽名的應用版本,并在其他渠道上發布。很快,Play 管理中心將幫助您更加輕松地進行首次發布應用,只要在第一次發布到開放渠道之前,您都可以更改應用簽名密鑰。
Q:在 Google Play 上分發應用時,我如何確保按我偏好的方式向用戶推送我的應用?
您可以隨時利用 Play Store 或 Play 管理中心中的 App Bundle 資源管理器下載并檢查工件,并通過 Play Developer API 驗證應用。此外,App Bundle 的代碼透明性是一項可選的全新功能,可檢查設備上運行的代碼是否是開發者最初構建并簽名的代碼。
App Bundle 的代碼透明性
https://developer.android.google.cn/guide/app-bundle/code-transparency
Q:如果我已經在 Google Play 上發布了一款應用,我能否在不提供現有應用簽名密鑰的副本前提下開始使用 Play 應用簽名?
若想使用 Play 應用簽名,您需要提供應用簽名密鑰的副本,因為 Google Play 需要使用此簽名副本進行簽名,并向您的現有用戶提供版本更新。這種分發格式適合多數開發者,超過一百萬款應用在正式版中使用 Play 應用簽名。我們將在不久后面向現有應用提供額外選項,允許開發者執行密鑰升級來選擇加入 Play 應用簽名。此選項意味著 Play 應用簽名可以針對新安裝及其后續更新使用新的唯一密鑰。不過,要做到這一點,當您上傳 App Bundle 時,您還需要上傳使用舊密鑰簽名的原 APK,這樣一來,Google Play 即可繼續向現有用戶推送更新。
Q、我可以更改我的應用簽名密鑰嗎?
當然,一些應用可以請求在 Play 管理中心中針對新安裝應用進行應用簽名密鑰升級。Google Play 將使用新密鑰對新安裝應用和應用更新進行簽名,并使用舊版應用簽名密鑰對密鑰升級前已安裝應用的用戶進行的更新進行簽名。很快,Play 應用簽名密鑰的升級還將添加對 APK Signature Scheme v3 密鑰輪替的支持。這將促使更多應用可以選擇密鑰升級,使借助升級密鑰簽名的應用覆蓋更多用戶。
應用簽名密鑰升級
https://support.google.com/googleplay/android-developer/answer/9842756#upgrade
APK Signature Scheme v3
https://source.android.google.cn/security/apksigning/v3