作者 / Google Play 產(chǎn)品經(jīng)理 Dom Elliott
自 2018 年 5 月發(fā)布 Android App Bundle 以來,我們見證了開發(fā)者社區(qū)積極擁護這一全新發(fā)布格式,并受益于其簡化的發(fā)布管理和高級分發(fā)功能?,F(xiàn)在,有逾一百萬款正式版應用在使用 App Bundle,Google Play 上排名前 1,000 的大多數(shù)應用和游戲均在此列,例如 Adobe、Duolingo、Gameloft、Netflix、redBus、Riafy 和 Twitter。
Android App Bundle
https://developer.android.google.cn/platform/technology/app-bundle
Adobe
https://developer.android.google.cn/stories/apps/adobe-app-bundle
Duolingo
https://developer.android.google.cn/stories/apps/duolingo
Gameloft
https://developer.android.google.cn/stories/games/gameloft-pad
Netflix
https://www.youtube.com/watch?v=2AmJgx-t7sQ
redBus
https://developer.android.google.cn/stories/apps/redbus
Riafy
https://www.youtube.com/watch?v=zgbLs2bEdnA
https://developer.android.google.cn/stories/apps/twitter
為了讓更多用戶體驗到這些優(yōu)勢,并專注推廣對所有開發(fā)者有益的現(xiàn)代 Android 分發(fā)技術(shù),自 2021 年 8 月起,Google Play 將開始要求新應用使用 Android App Bundle 進行發(fā)布。該格式將取代 APK 作為標準發(fā)布格式。
現(xiàn)代 Android 應用分發(fā)
如果您尚未采用 App Bundle,這意味著您錯過了以下優(yōu)勢:
Android App Bundle: Google Play 使用 App Bundle 生成并優(yōu)化 APK,以針對不同設(shè)備配置和語言進行分發(fā)。這種方式可令應用體積更小 (平均而言,比一般 APK 小 15%),下載速度更快,進而提升安裝量,減少卸載量。
Play 應用簽名: 以 App Bundle 方式分發(fā)需要 Play 應用簽名,這種簽名使用 Google 的安全基礎(chǔ)架構(gòu)避免了應用簽名密鑰丟失,并可以升級到加密性更強的新應用簽名密鑰。
Play Feature Delivery: 超過 10% 的使用了 App Bundle 的熱門應用都在使用 Play Feature Delivery,自定義將哪些功能模塊交付給哪個設(shè)備,以及何時交付。它支持安裝時交付、按條件交付和按需交付等三種模式。
Play Asset Delivery: 以動態(tài)方式交付大型資源可以減少用戶等待時間,同時縮減交付成本。使用 Play Asset Delivery 的游戲可以使用紋理壓縮格式作為交付條件,以便用戶只獲得適合其設(shè)備的資源,避免浪費空間或帶寬。
未來改進: Play 應用簽名將在不久后開始向適合的應用推出 APK Signature Scheme v4,允許其訪問較新設(shè)備上即將推出的性能特性。請關(guān)注于 7 月 12 日舉辦的 Google 游戲開發(fā)者峰會,了解更多詳情。
Android App Bundle
https://developer.android.google.cn/platform/technology/app-bundle
Play 應用簽名
https://play.google.com/console/about/keymanagement/
Play Feature Delivery
https://developer.android.google.cn/guide/playcore/feature-delivery
Play Asset Delivery
https://developer.android.google.cn/guide/playcore/asset-delivery
APK Signature Scheme v4
https://source.android.google.cn/security/apksigning/v4
Google 游戲開發(fā)者峰會
https://developersonair.withgoogle.com/events/game-dev-summit-2021
回顧: 自 2021 年 8 月起的相關(guān)變更
發(fā)布類型 | 被替換對象 | 需要在 2021 年 8 月合規(guī) |
新上架 Google Play 的應用 | APK | Android App Bundle (AAB) |
擴展文件 (OBB) | Play Asset Delivery 或 Play Feature Delivery | |
現(xiàn)有應用的更新 | 沒有變化 | |
新的免安裝體驗 | 免安裝應用 ZIP | 啟用了免安裝 Android App Bundle (AAB) |
免安裝體驗的更新 |
Android App Bundle (AAB)
https://developer.android.google.cn/platform/technology/app-bundle
Play Feature Delivery
https://developer.android.google.cn/guide/playcore/feature-delivery
Play Asset Delivery
https://developer.android.google.cn/guide/playcore/asset-delivery
免安裝 Android App Bundle (AAB)
https://developer.android.google.cn/topic/google-play-instant/getting-started/instant-enabled-app-bundle
注意,App Bundle 的要求僅適用于新應用,而現(xiàn)有應用及面向特定 Google Play 用戶的私人應用目前無需遵從此要求。感謝為 App Bundle 的發(fā)展做出貢獻的眾多開發(fā)者,我們也期待在未來為開發(fā)者帶來更多更新。
關(guān)于 Android App Bundle 的一些常見問題的回答
Q相比 APK 而言,使用 App Bundle 開發(fā)應用需要多少工作量?
對于大多數(shù)應用而言,構(gòu)建 AAB 文件來替代 APK 文件僅需要少量工作。這其中的關(guān)鍵是在構(gòu)建時選擇其他選項并按常規(guī)方式進行測試。App Bundle 是一種受主流構(gòu)建工具支持的開源格式,包括 Android Studio、Gradle、Bazel、Buck、Cocos Creator、Unity、Unreal Engine 和其他引擎。在 Play Core 原生 SDK、Play Core Java SDK 和 Play Core Kotlin SDK 的助力下,無論用戶偏好哪種編碼環(huán)境,都可以輕松開始使用可選的高級 App Bundle 功能。
QApp Bundle 為何不支持擴展文件 (OBB)?為何游戲應使用 Play Asset Delivery?
APK 要求使用單獨的文件 (OBB) 來向用戶推送更多資源。但是,由于 OBB 不具有簽名且存儲在應用的外部存儲中,所以不夠安全。借助 Play Asset Delivery (PAD),用戶可以在 Play 商店中將大小超過 150MB 的游戲整體發(fā)布為單個 App Bundle,從而替換掉 OBB。除了能實現(xiàn)更順暢的發(fā)布流程和更靈活的推送模式,相比于以前的擴展文件,PAD 具有更多優(yōu)勢: 其資源的增量補丁面向大型應用進行了優(yōu)化,這意味著更新需要的設(shè)備存儲空間比 OBB 少得多。因此,其快速跟進的安裝模式提升了安裝率和商店轉(zhuǎn)化率。最終,由于 ASTC 現(xiàn)在支持約 80% 的設(shè)備,紋理壓縮格式的定位條件讓您可以向支持該功能的設(shè)備推送 ASTC。您可以定位眾多 Android 設(shè)備,同時高效利用可用硬件和設(shè)備存儲空間。
Q如果使用 App Bundle,我是否可以繼續(xù)通過多分發(fā)渠道/應用商店發(fā)布應用?
當然可以,您可以通過多種方式實現(xiàn)。您可以使用通用的應用簽名密鑰或使用針對不同渠道的唯一應用簽名密鑰,包括面向 Google Play 的唯一應用簽名密鑰。您可以在本地面向所有分發(fā)渠道構(gòu)建并簽名工件,或者從 Google Play 中下載可分發(fā)的 APK,并發(fā)布于其他渠道。從 Google Play 下載的 APK,無論其是通過 Play 管理中心中的 App Bundle 資源管理器還是 Play Developer API 進行下載,均由 Play 應用簽名管理的同個密鑰進行簽名。
Q如果要發(fā)布一個新應用,我能決定我的應用簽名密鑰內(nèi)容嗎?
可以,我們會在 Play 管理中心中提供此選項。創(chuàng)建新應用時,您可以選擇向 Google 提供應用簽名密鑰。您可以借此在本地留存應用簽名密鑰副本,例如生成與 Play 同樣秘鑰簽名的應用版本,并在其他渠道上發(fā)布。很快,Play 管理中心將幫助您更加輕松地進行首次發(fā)布應用,只要在第一次發(fā)布到開放渠道之前,您都可以更改應用簽名密鑰。
Q在 Google Play 上分發(fā)應用時,我如何確保按我偏好的方式向用戶推送我的應用?
您可以隨時利用 Play Store 或 Play 管理中心中的 App Bundle 資源管理器下載并檢查工件,并通過 Play Developer API 驗證應用。此外,App Bundle 的代碼透明性是一項可選的全新功能,可檢查設(shè)備上運行的代碼是否是開發(fā)者最初構(gòu)建并簽名的代碼。
App Bundle 的代碼透明性
https://developer.android.google.cn/guide/app-bundle/code-transparency
Q如果我已經(jīng)在 Google Play 上發(fā)布了一款應用,我能否在不提供現(xiàn)有應用簽名密鑰的副本前提下開始使用 Play 應用簽名?
若想使用 Play 應用簽名,您需要提供應用簽名密鑰的副本,因為 Google Play 需要使用此簽名副本進行簽名,并向您的現(xiàn)有用戶提供版本更新。這種分發(fā)格式適合多數(shù)開發(fā)者,超過一百萬款應用在正式版中使用 Play 應用簽名。我們將在不久后面向現(xiàn)有應用提供額外選項,允許開發(fā)者執(zhí)行密鑰升級來選擇加入 Play 應用簽名。此選項意味著 Play 應用簽名可以針對新安裝及其后續(xù)更新使用新的唯一密鑰。不過,要做到這一點,當您上傳 App Bundle 時,您還需要上傳使用舊密鑰簽名的原 APK,這樣一來,Google Play 即可繼續(xù)向現(xiàn)有用戶推送更新。
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