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

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

2021-07-10
來源:CSDN
關(guān)鍵詞: 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 轉(zhuǎn)變?yōu)?AAB,?

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

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

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

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

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

微信圖片_20210710154835.jpg

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

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

  因此,,總體來看,谷歌要求下個月以 AAB 格式發(fā)布新應用的決定主要面向開發(fā)者,,對用戶而言影響不是太大,,因為最終在設(shè)備上安裝 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 功能可自定義將哪些功能模塊交付給哪個設(shè)備,,支持安裝時交付,、按條件交付和按需交付等三種模式。這也就是將應用的功能拆分開來,,以此大幅縮短用戶下載應用的時間,,其中沒用的功能用戶可以不下載或等到以后需要時再下載。

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

  對于 AAB 的擔憂

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

  有人擔心從 APK 變?yōu)?AAB 格式會太復雜。但谷歌表示:“對于大多數(shù)應用而言,,構(gòu)建 AAB 文件來替代 APK 文件僅需要少量工作,。”它指出 App Bundle 是一種受主流構(gòu)建工具支持的開源格式,,因此在 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 中),,對此谷歌表示,所有“簽名密鑰都將存儲在谷歌用來存儲自己的密鑰的同一基礎(chǔ)設(shè)施上” ,,因此開發(fā)者的私人簽名密鑰都會受到嚴密的安全保護,。

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




電子技術(shù)圖片.png

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