《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 谷歌棄用 APK 格式!替代品 AAB 有何優(yōu)勢?

谷歌棄用 APK 格式!替代品 AAB 有何優(yōu)勢?

2021-07-10
來源:CSDN
關鍵詞: APK Android AAB

  Android 用戶想必對 APK 并不陌生。APK 是 Android Package 的縮寫,即Android 安裝包,基于 ZIP 壓縮包格式,通過把 Android SDK 編譯工程打包成一個 Android 系統(tǒng)支持的安裝程序文件,幾乎所有 Android 應用程序都以這種格式發(fā)布。

  但自下個月起,APK 格式要被谷歌棄用了。

  近日,谷歌宣布:自 2021 年 8 月起,Google Play 將要求開發(fā)者以 Android App Bundle (以下簡稱 AAB)格式發(fā)布新應用,該格式將取代 APK 作為標準發(fā)布格式。

微信圖片_20210710154832.jpg

  為何要從 APK 轉變?yōu)?AAB?

  一直以來,Android 首選的應用程序包就是 APK,而一個 APK 中往往包含應用代碼、圖片、音頻和開發(fā)者生成的應用簽名密鑰等大量資源。

  不僅如此,由于 Android 設備規(guī)格各異,開發(fā)人員還需根據(jù)設備的不同屏幕密度(320dpi、480dpi 等)、處理器(ARM、ARM64、x86)、用戶所在的不同地區(qū),在 Google Play 中構建和上傳多個 APK,以此才能在用戶點擊“安裝”時,在其設備上安裝最適配的 APK。

  但在這種情況下,應用開發(fā)者便承受太多:不僅要開發(fā)應用,還要管理許多 APK 以支持大量設備。因此為了省時省力,大多數(shù)開發(fā)者通常都會選擇構建一個通用 APK,即包含語言包、代碼等在內(nèi)的所有資源。不論用戶身處何處、使用何種規(guī)格的設備,只需下載這個通用 APK 即可。

  說到這里,你或許發(fā)現(xiàn)了問題所在:包含所有資源的通用 APK 太大了。用戶分明只需其中與自己設備相適配的資源,卻要把整個 APK 都下載下來,不僅延長了安裝時間,也占用了更多的帶寬。

  為了解決這個問題,谷歌在 2018 年 Google I/O 大會上推出了 AAB 格式,希望以此減少開發(fā)者的負擔,同時也有助于減少應用大小、安裝時間和帶寬消耗,提高用戶體驗。

微信圖片_20210710154835.jpg

  簡單來說,AAB 格式其實并不是一個全新的應用安裝包,你可以將它當做一個容器,里面包含著一個基本 APK 和多個用于特定配置的 APK。

  而谷歌在這之中則充當“篩選”的角色:一旦開發(fā)者選擇使用 AAB 格式發(fā)布應用,谷歌就會根據(jù)用戶的設備配置從中生成優(yōu)化后的 APK 提供給用戶。對用戶而言,這樣的 APK 體積小、安裝快,對開發(fā)者來說也省事:不必再為各種設備管理一大堆 APK。

  因此,總體來看,谷歌要求下個月以 AAB 格式發(fā)布新應用的決定主要面向開發(fā)者,對用戶而言影響不是太大,因為最終在設備上安裝 Android 應用的打包格式還是 APK。

  AAB 的優(yōu)勢

  相較于 APK,AAB 自然有其獨一無二的優(yōu)點。

  首先便是上文所提到的應用體積縮小。據(jù)谷歌官方介紹,使用 AAB 生成優(yōu)化的 APK 體積平均會比一般的 APK 小 15%,而這一數(shù)據(jù)會根據(jù)應用大小有較大起伏。例如 Airbnb 在從 APK 切換到 AAB 格式后應用大小減少了 22%,而 Netflix 更是減少了 57%。

微信圖片_20210710154838.png

  其次,AAB 的 Play Feature Delivery 功能可自定義將哪些功能模塊交付給哪個設備,支持安裝時交付、按條件交付和按需交付等三種模式。這也就是將應用的功能拆分開來,以此大幅縮短用戶下載應用的時間,其中沒用的功能用戶可以不下載或等到以后需要時再下載。

  還有一個 Play Asset Delivery 功能,以動態(tài)方式交付大型資源可以減少用戶等待時間,同時縮減交付成本。即使用 Play Asset Delivery 的游戲可通過紋理壓縮格式作為交付條件,以便用戶只獲取適合其設備的資源,避免浪費空間或帶寬。

  對于 AAB 的擔憂

  雖然從結果看來,以 AAB 格式分發(fā)新應用對開發(fā)者和用戶都有益處,但還是有部分人對此有些擔憂。

  有人擔心從 APK 變?yōu)?AAB 格式會太復雜。但谷歌表示:“對于大多數(shù)應用而言,構建 AAB 文件來替代 APK 文件僅需要少量工作?!彼赋?App Bundle 是一種受主流構建工具支持的開源格式,因此在 Play Core 原生 SDK、Play Core Java SDK 和 Play Core Kotlin SDK 的助力下,無論用戶偏好哪種編碼環(huán)境,都可以輕松開始使用可選的高級 App Bundle 功能。此外,AAB 的要求僅適用于新應用,現(xiàn)有應用及面向特定 Google Play 用戶的私人應用目前無需遵從此要求。

  有人對與谷歌共享私人簽名密鑰表示擔憂(簽名密鑰是驗證 APK 完整性的重要信息,谷歌從 ABB 中生成優(yōu)化的 APK,因此簽名密鑰也將包含在 ABB 中),對此谷歌表示,所有“簽名密鑰都將存儲在谷歌用來存儲自己的密鑰的同一基礎設施上” ,因此開發(fā)者的私人簽名密鑰都會受到嚴密的安全保護。

  還有人擔心因為 AAB 不能在 Google Play 以外的地方下載,會對如亞馬遜應用商店等第三方應用商店造成很大影響。但據(jù)了解谷歌已經(jīng)開發(fā)了一個名為 bundletool 的開源工具,允許開發(fā)人員從 AAB 包中創(chuàng)建 APK,因此想在第三方商店中發(fā)布 Android 應用程序的開發(fā)人員可以手動導出其應用的 APK 版本。




電子技術圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。