來源:愛范兒
玩過王者榮耀的朋友,幾乎無人不曉「魯班七號」這個英雄。
作為 Android 的應用程序包,「APK」對于資深 Android 用戶來說,知名度并不亞于前者。
也正因如此,日前 Google 的一份聲明,牽動了許多 Android 用戶的神經。
Google 宣布,從 2021 年 8 月開始,Google Play 商店將要求開發者使用 Android App Bundle(AAB)發布新應用。這將取代 APK 作為標準發布格式。
▲ 圖片來自:hitechglitz
消息一出,一些用戶開始猜測甚至擔憂:「以后還能借一部 APK 說話嗎」?「Google 是不是在故意為難國產品牌」?
實際上,有這些疑問的朋友,大概率誤解 Google 的這個動作了。
什么是 AAB?
這次輿論漩渦的中心,就是 AAB 格式。所以首先我們要搞清楚,AAB 是什么。
在 2018 年 5 月舉行的 Google 開發者大會上,Google 就已公布了 Android App Bundle(AAB)格式,并稱這是其現代化開發的一部分。
Google 介紹道,開發者在上傳應用至 Google Play 時,需采用 AAB 格式。Google Play 將負責生成 APK 文件及簽名。
這句話有兩個重點。
一是 AAB 只是上傳時應用的格式,用戶下載時,獲取的依舊是 APK。
▲ 圖片來自:techlog360
對于開發者來說,從 APK 轉戰到 AAB 沒什么痛點。AAB 是一種開源格式,在構建時,選擇相關的工具或引擎即可。
另外根據 Google 的聲明,已經存在的應用,無需重新上傳 AAB 文件。只是今年 8 月份開始,提交新應用時才需要使用 AAB。
用戶這邊更不必擔憂,因為我們在終端設備上看到的,依舊是 APK 格式。
▲ 圖片來自:9to5google
二是生成 APK 的工作,將由 Google Play 完成。
Google Play 將根據用戶設備的配置,從 AAB「源文件」里提取、組裝適合該用戶設備的代碼及資源,從而生成 APK 安裝包。
也就是說,這時用戶下載的應用,已經過 Google Play 優化,以確保該應用可在當前設備上以最佳狀態運行。
▲圖片來自:beebom
換種說法,方便你理解:AAB 就像是一袋方便面,里面有各種口味的調料包。Google Play 就是大廚,它會根據你設備的喜好,來判斷面要煮多久、放什么調料包。
最終煮好的面,就是 APK 了。
AAB 的三大優勢
Google 之所以要「強硬」地推行 AAB 格式,很大原因是 AAB 相比 APK 有著多種先天優勢。
第一點,是體積輕盈。
上文說到,Google Play 會從 AAB 里,個性化地生成并優化 APK,以針對不同配置的設備、語言進行分發。
舉個例子:假設你的手機是 2K 屏幕,首選語言是中文。那么 Google Play 在拼裝 APK 時,就會只把 2K 分辨率、中文字符包的資源放進 APK 里。
而傳統的 APK,開發者會將各種分辨率和語言包,打包在一起。用戶下載下來,手機需要從中挑出適合自己的資源安裝運行。
隨著機型的不斷增加,開發者需要在 APK 文件里塞上越來越多的資源,來提高適配性。因此,App 越來越大,動輒上百 MB。
▲ 圖片來自:altavia
那么 AAB 的應用,相當于「把復雜留給 Google Play,把簡單留給用戶」。用戶下載的 APK,是經過 Google 精簡過的,因此體積會小一些。
那么會小多少呢?根據 Google 的說法,此舉可將 APK 的體積壓縮 15%。
不過實際情況可能要好于這一預期。例如愛彼迎在擁抱 AAB 后,體積減少了 22%。Netflix 更甚,達到了 57%。
▲ 利用 AAB 特性縮減體積的案例
所以對于用戶來說,可感知的一點就是安裝包變小了,下載、安裝的速度會更快。
其次,AAB 使得用戶下載的應用,最大程度的符合設備配置,因此運行起來或許會更流暢。某種程度上算是提升了設備性能。
▲ 圖片來自:angelseoservices
第二點,是應用模塊化。
AAB 允許開發者將應用的功能拆分開來。讓有需要的用戶,自行下載。
我們繼續舉例子。假設開發者現在要做一個拍照 app,我的手機是單攝,你的手機是雙攝。為了減小應用初始的大小,開發者可以把某些功能,設置為按需下載。
比如你想用這款 app 里,針對雙攝手機推出的功能,你就下載額外的資料包即可。
▲圖片來自:unsplash
開發者還可以決定什么時間,向什么機型推送應用的新功能。相當于自定義和掌控各類用戶的體驗。
「你我用著同一個 app,但享受著不同功能」的情況,或在將來成為常態。
第三點,是免下載體驗。
AAB 的免安裝分發特性,可讓用戶在 Google Play 里,無需下載應用,便可體驗到應用的某些功能。
比如有一款游戲,我們不確定是否值得下載,就可以點擊「立即體驗」,試玩前幾個關卡,且不用下載該應用。
這有點像 iOS 14 新增的 App Clip 功能,可以被看作完整版應用的快捷方式,當中會包含應用的一部分功能。
▲ iOS 14 的 App Clip 功能
所以對于用戶來說,AAB 格式的推廣,我們是可以感知到的,且會有更好的體驗。
光打用戶體驗牌肯定不行,還得考慮開發者的感受。為了讓他們有動力轉戰 AAB 格式,Google 給出了多個理由:
版本管理更高效,一個工件便可包含應用所有經過編譯的代碼、資源和原生庫。 模塊化應用開發功能,可提升工程速度。 編譯系統的優化,可縮短編譯時間。 自定義功能傳送,可掌控用戶體驗。
不感興趣也沒關系,那就來「硬的」:8 月起,應用程序包不改成 AAB 格式,就不許上傳,逼迫著開發者進行轉變。
這足以見得 AAB 對于 Google Play 未來規劃的重要性。
這對 Android 用戶有何影響?
推廣 AAB 格式,對于大眾用戶來說絕對是一件好事。誰不希望自己下載的應用,體積又小、適配又好呢?
不過,Google 只是要求 Google Play 這樣做,沒有強制其他應用商店跟進。
也就是說,如果你沒有在使用 Google Play,那么這個改動暫時是感知不到的。
但 AAB 格式的優點這么多,我們有理由相信,國內的應用商店會逐步跟上 Google 的步伐,擁抱 AAB。
而且我們上文說到,用戶下載的安裝包,依舊會以 APK 格式呈現。因此那些「Google 此舉是為了針對國內廠商」的謠言,也就不攻自破了。
何況華為等應用商店,從前兩年開始,就已經支持開發者上傳 AAB 格式的應用。所以用戶們大可放寬心,靜等 AAB 格式推廣的紅利即可。