1. 簡介
Android App Bundle是一種發(fā)布格式驹马,簡稱aab,其中包含您應(yīng)用的所有經(jīng)過編譯的代碼和資源除秀,它會(huì)將
APK 生成及簽名交由 Google Play 來完成糯累,aab包大小上限提高到 150MB。
重要提示:從 2021 年 8 月起册踩,新應(yīng)用需要使用 Android App Bundle 才能在 Google Play 中發(fā)布泳姐。
2. 特性:apk構(gòu)建優(yōu)化
Google Play 會(huì)使用您的 App Bundle 針對(duì)每種設(shè)備配置生成并提供經(jīng)過優(yōu)化的 APK ,因此只會(huì)下載特定設(shè)備所需的代碼和資源來運(yùn)行您的應(yīng)用暂吉。您不必再構(gòu)建胖秒、簽署和管理多個(gè) APK 來優(yōu)化對(duì)不同設(shè)備的支持,而用戶也可以獲得更小且更優(yōu)化的下載文件包慕的。比如:應(yīng)用為了給用戶更好的體驗(yàn)扒怖,同一張圖片,會(huì)有360p业稼,720p盗痒,1080p三套資源。若無優(yōu)化,那么一個(gè)傳統(tǒng)apk有三套資源占用空間俯邓,上傳abb后1080p設(shè)備會(huì)安裝只有1080p一套資源的apk骡楼。
3. 特性:運(yùn)行時(shí)部署功能模塊
Play Feature Delivery 使用了 App Bundle 的多種高級(jí)功能,讓您可按條件分發(fā)或按需下載應(yīng)用的某些功能稽鞭,并且分發(fā)功能之后也可以選擇卸載這些功能鸟整。
分發(fā)方式:
安裝時(shí)分發(fā):安裝應(yīng)用時(shí)下載。
按需分發(fā):允許您的應(yīng)用根據(jù)需要請(qǐng)求和下載功能模塊朦蕴。
根據(jù)條件分發(fā):允許您指定特定的用戶設(shè)備需求(例如硬件特性篮条、區(qū)域設(shè)置和最低 API 級(jí)別),以確定是否在安裝應(yīng)用時(shí)下載模塊化功能吩抓。
免安裝分發(fā):用戶可以通過 Google Play 商店中的"立即體驗(yàn)"按鈕或您創(chuàng)建的網(wǎng)址體驗(yàn)?zāi)膽?yīng)用涉茧。
使用參考:
Play Feature Delivery
4. 特性:分發(fā)游戲資源
使用 App Bundle 發(fā)布應(yīng)用的游戲開發(fā)者可以使用 Play Asset Delivery(PAD)進(jìn)行游戲資源的分發(fā)。PAD提供了靈活的分發(fā)模式疹娶、自動(dòng)更新伴栓、壓縮和增量修補(bǔ)功能,并且可免費(fèi)使用雨饺。使用 PAD钳垮,所有資源包均在 Google Play 上托管和提供,因此您無需使用內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 向玩家提供游戲資源额港。
PAD使用資源包(Asset Pack)饺窿,資源包由資源(如紋理、著色器和聲音)組成移斩,但不包含可執(zhí)行代碼肚医。
PAD通過 Dynamic Delivery分發(fā),您可以按照以下三種分發(fā)模式自定義如何以及何時(shí)將各個(gè)資源包下載到設(shè)備上:安裝時(shí)分發(fā)叹哭、快速跟進(jìn)式分發(fā)和按需分發(fā)忍宋。
4.1 分發(fā)模式
install-time:安裝時(shí)分發(fā)痕貌,資源包在用戶安裝應(yīng)用時(shí)分發(fā)风罩。這些資源包以拆分 APK(APK 集的一部分)的形式提供。您可以在應(yīng)用啟動(dòng)時(shí)立即使用這些資源包舵稠。這些資源包會(huì)增加 Google Play 商店上列出的應(yīng)用大小超升。用戶無法修改或刪除這些資源包。
fast-follow:快速跟進(jìn)式分發(fā)哺徊,資源包會(huì)在用戶安裝應(yīng)用后立即自動(dòng)下載室琢;用戶無需打開應(yīng)用即可開始 fast-follow 下載。這些資源包會(huì)增加 Google Play 商店上列出的應(yīng)用大小落追。
on-demand:按需分發(fā)盈滴,資源包會(huì)在應(yīng)用運(yùn)行時(shí)下載。
Google Play 商店會(huì)以歸檔文件(而非拆分 APK)的形式提供配置為 fast-follow 和 on-demand 的資源包,可以理解為獨(dú)立資源包巢钓。這些資源包隨后會(huì)在應(yīng)用的內(nèi)部存儲(chǔ)空間中展開病苗。
4.2 資源更新
更新應(yīng)用時(shí),install-time Asset Pack 會(huì)作為基礎(chǔ)應(yīng)用更新的一部分進(jìn)行更新(開發(fā)者無需執(zhí)行任何操作)症汹。對(duì)于 fast-follow 和 on-demand Asset Pack 的應(yīng)用更新硫朦,下載新的資源包,替換舊的資源包背镇。
4.3 下載大小上限
Asset Pack 因具有較高的大小上限而成為大型游戲的理想之選:
每個(gè) fast-follow 和 on-demand Asset Pack 的下載大小上限為 512 MB咬展。
所有 install-time Asset Pack 的總下載大小上限為 1 GB。
一個(gè) Android App Bundle 中的所有 Asset Pack 的總下載大小上限為 2 GB瞒斩。
一個(gè) Android App Bundle 中最多可以使用 50 個(gè)資源包破婆。
使用參考:
Play Asset Delivery
5. 補(bǔ)充
5.1 APK擴(kuò)展文件obb
Google Play要求上傳的apk大小不能超過100MB。如果超過100MB济瓢,Google Play 允許附加兩個(gè)大型擴(kuò)展文件荠割,每個(gè)擴(kuò)展文件大小上限為2GB,一個(gè)為主擴(kuò)展文件包含主體游戲資源一般不更新旺矾,一個(gè)為補(bǔ)丁擴(kuò)展用于為主擴(kuò)展文件提供小規(guī)模的更新蔑鹦。擴(kuò)展文件可以為任意格式,但是Google Play最終都會(huì)作為obb(Opaque Binary Blob)文件箕宙,并重新按照后面格式命名:[main|patch].<expansion-version>.<package-name>.obb嚎朽,例:main.16.com.example.zhazha.obb。
在大多數(shù)設(shè)備上柬帕,Google Play 會(huì)同時(shí)下載擴(kuò)展文件和APK哟忍,因此當(dāng)用戶首次打開您的應(yīng)用時(shí),所需的一切都已準(zhǔn)備就緒陷寝。不過在某些情況下锅很,您的應(yīng)用必須在啟動(dòng)時(shí)從 Google Play 下載這些文件。
6. 參考
Android App Bundle簡介:https://developer.android.com/guide/app-bundle
APK擴(kuò)展文件:https://developer.android.com/google/play/expansion-files
Play Feature Delivery 概覽:https://developer.android.com/guide/playcore/feature-delivery
Play Asset Delivery 概覽:https://developer.android.com/guide/playcore/asset-delivery