Android App Bundle (AAB) 取代 Google Play 商店中的 APK
已發表: 2021-08-30自 2021 年 8 月 1 日起,Google 宣佈在 Google Play 商店中開發和發布應用程序的新變化。 流行的 APK 格式將更改為已使用一段時間的 AAB 格式,因為它早在 2018 年就在 Android 9 中引入。本文將介紹 Android App Bundle (AAB) 的最重要功能以及更改它帶給用戶、開發者和谷歌。
谷歌官方聲明
2021 年 6 月,Google 發布了從 8 月起將 APK 切換到 ABB 的官方公告。
為了將這些好處帶給更多用戶並專注於讓所有開發者受益的現代 Android 發行版, Google Play 將開始要求從 2021 年 8 月開始使用 Android App Bundle發布新應用。 這將取代 Android 應用程序包 (APK) 作為標準發布格式。
從 8 月起在 Google Play 商店推出的新應用程序必須使用 AAB 。 Google Play 中的當前應用不需要遵守新要求。
Android App Bundle (AAB) 更改
那麼,Google Play AAB 帶來了哪些變化呢? 我們將深入研究所有這些,但現在,讓我們寫一些變化的小總結並澄清一些術語,以便更好地理解該主題。
預計變化包括:
- 支持各種設備配置和語言
- 更小的應用程序體積高達 15%
- 更快的下載速度
- 安裝次數增加/卸載次數減少
此外,這裡是其他顯著變化的表格概述。
除了 APK 之外,開發人員還必須將大型擴展文件 ( OBB ) 替換為Play Asset或Feature Delivery 。 同樣,支持 Instant 的 Android App Bundle 取代了 Instant 應用 ZIP,用於分發新的和更新的“即時體驗”。
現有應用程序以及託管企業用戶的私有應用程序都可以豁免。 展望未來, Play App Signing (AAB 流程的關鍵部分)將利用 APK 簽名方案 v4 來“訪問新設備上即將推出的性能功能”。
大約 10% 的超流行應用使用Play Feature Delivery 。 它允許在特定時刻定制和交付模塊到特定設備。 PFD支持三種模式:安裝交付、有條件交付和按需交付。
遊戲資產交付對遊戲很重要。 有了它,可以壓縮格式作為交付條件,用戶只能獲取適合自己設備的資源,避免浪費空間或帶寬。
AAB 特點
谷歌報告稱,一千個最受歡迎的應用程序是基於 Google Play AAB 構建的,其中超過一百萬個使用這種新格式的應用程序。 一些突出的例子包括Netflix 、 Twitter 、 Adobe和Duolingo 。
AAB 是主流構建工具支持的開源格式,包括 Android Studio、Gradle、Bazel、Buck、Cocos Creator、Unity、Unreal Engine 等。 借助 Play Core 原生 SDK、Play Core Java SDK 和 Play Core Kotlin SDK,無論用戶喜歡哪種編碼環境,都可以使用高級 App Bundle 功能。
AAB 為特定應用程序創建單個代碼包、資源和本機庫。 這樣就無需為多個 APK 構建、簽名、上傳和管理版本代碼。 此外,例如,Android Studio 中的 Gradle 允許開發人員構建構建速度更快的模塊化應用程序。 這樣,開發人員就有更多時間來設計、編碼和測試應用程序。
Google Play APK 到 AAB 比較
到目前為止,大多數提交到 Play 商店的應用都是以 Google Play APK 格式發布的。 這種格式將應用程序打包到一個單獨的包中。 新的 AAB 格式允許根據您的 Android 設備對應用程序內的組件進行分段、優先級和優化。
考慮在多個設備上使用相同的應用程序。 在舊的 APK 格式中,開發人員必須為每個設備構建單獨的元素。 下一步是將這些元素組合在一起並將它們作為一個單元上傳到 Google Play。 從 Play 商店下載時,用戶會下載整個包,包括所有零碎物品。
有另一種方法可以為將運行應用程序的每個 Android 設備創建單獨的 APK。 一般來說,這需要很多時間和精力。 有了 AAB,就沒有必要了。 Play 商店將只能識別和下載您的設備所需的內容。 使用經過優化的 APK,您下載的應用程序的數量最多可以減少 15% 。
在下圖中,您可以看到某些流行應用程序的大小會縮小到何種程度。
這種尺寸減小將加快應用程序的下載速度。 不僅如此,您的設備有可能不會立即下載整個應用程序,而只會下載其中的一部分。 大部分遊戲都是這種情況。 設備不會下載解鎖的遊戲片段,因為在您完成遊戲的第一部分之前,您無法訪問它們。 加載速度會更高,您將節省設備上的空間,這對於舊硬件設備來說真正重要。
過時的設備通常可用內存較少,並且難以加載和下載。 AAB 將支持過時的設備並使它們的生活更輕鬆。
Android 支持 100 多種語言、不同的 CPU 架構(如 ARMv7、ARMv8 以及 Intel x86)以及不同的屏幕分辨率。 此時,應用程序開發人員需要將一系列可能的組合支持捆綁到一個 APK 應用程序中。 這會導致每個應用程序中出現不必要的代碼(閱讀更多關於如何在沒有編碼的情況下創建應用程序)。
如果您的設備基於 ARMv8 CPU 架構,Google 將僅在下載特定應用程序時提供 ARMv8 軟件包,而不是包含對 ARMv7、ARMv8 和 Intel x86 架構的支持的整個 APK 文件。
AAB 對開發者意味著什麼
開發人員還可以自由地使用可選的附加組件,例如增強現實。 它可能不適用於所有設備。 不支持它的設備將不會下載它。 換句話說,該技術將識別它需要什麼以及可以花費多少。
新格式應該會提高惡意軟件和不正當運營商的安全級別。 此外,它對用戶的不利影響是側載受到更多限制,這將變得更加困難。
對開發人員而言,向 AAB 格式的整體轉變既不是挑戰也不是耗時的過程。 儘管如此,路上還是有一些障礙。
第一個問題是在不同的應用商店啟動需要手動傳輸特定應用的 APK 版本。 但是那些仍然想要 APK 的最終用戶必須尋找替代商店或在出口 AAB 時遇到困難。
此外,開發人員必須向 Google 提供其應用的 Play App Signing 密鑰才能將 AAB 文件導出為 APK。 該密鑰將賦予谷歌訪問應用程序核心的權力。 如果您想通過多個分發渠道發布應用程序,您可以使用通用應用程序簽名密鑰或將應用程序簽名密鑰用於不同的渠道,包括 Google Play 的應用程序簽名密鑰。
談到對谷歌的好處,通過 AAB,谷歌將獲得對應用分發服務的更多控制權。 任何第三方商店都必須在雲端設置AAB 到 APK 轉換器,以提供在 Google Play 商店中可用的應用程序,而 Google 則藉助其名為“捆綁工具”的工具來做到這一點。 總體而言,這將增加放棄第三方應用程序結構並轉向 Play 商店的開發人員數量。
外賣
Google Play 在優化其應用商店方面又向前邁進了一步,這將有利於所有用戶。 開發人員也不會遭受重大變化,因為 ABB 自 2018 年以來一直存在,只是沒有被大量使用。 這對每個人來說都是雙贏的局面。 其他應用商店是否會跟風,時間會證明一切。 同時,您始終可以使用適用於 Android 和 iOS 的移動應用程序構建器來創建令人驚嘆的應用程序!