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