Google Play商店中的大型應用程序和游戲的下載率普遍較低,這是因為用戶擔心會使用設備上過多的存儲空間,耗盡他們的數據流量,而且在網速緩慢的時候進行下載會等待更長時間。Android App Bundle是全新的Android應用發布格式,它能使用戶設備上的游戲更小。
在Unity 2018.3 beta中,我們為部分硬件配置加入了App Bundle的支持。本文將介紹如何構建Android App Bundle,而不是APK。當用戶希望釋放設備空間時,通常會首先卸載較大的游戲。所以該項功能會影響所有市場中的用戶,尤其是設備存儲空間和數據流量較昂貴的市場。
Android App Bundle
Android App Bundle 包含游戲中所有已編譯的代碼和資源,但它會推遲APK生成和Google Play簽名。Google Play的新版應用服務模型Dynamic Delivery,它會使應用程序包根據用戶的設備配置來生成並提供優化過的APK文件,所以用戶只需下載運行應用所需的代碼和資源即可。開發者不再需要構建、簽名並管理多個APK來為多個不同設備提供支持,而用戶則能下載到更小的優化過的文件。
Android App Bundles擁有多個選項,可以根據不同的語言資源、屏幕分辨率和像素密度以及ABI生成APK文件,以及全新Dynamic Features動態功能。
在Unity 2018.3中,我們為CPU架構/ABI (ARMv7, ARM64 & x86)加入了對App Bundle的支持,我們還會繼續開發更多的目標平台以便開發者進行使用。
構建Android App Bundle
首先在Unity 2018.3 beta中打開項目。構建Android App Bundle(AAB)而不是APK,請點擊File > Build Settings打開Build Settings 窗口,勾選Build App Bundle 復選框,如下圖所示。
如果選擇Build ,Unity會生成AAB文件,該文件可以直接發布到Google Play。
如果選擇Build and Run,Unity會生成AAB文件,該文件會為關聯設備生成臨時APK文件,然后安裝APK文件到設備並運行應用程序。
如果選擇Build 並希望手動安裝應用程序到設備上,可以使用Google提供的bundletool utility ,你可在Unity安裝目錄中的Editor/Data/PlaybackEngines/AndroidPlayer/Tools目錄下找到它。
請注意,當構建應用程序包時,菜單Edit > Setting > Player下的Split APKs by target architecture 會被禁用,因為生成的應用程序包應包含所有支持目標的庫。
使用技巧
在開發期間,為了減少使用構建和運行時的迭代次數,可以禁用應用程序包的生成功能,並使用常規的APK文件,因為從應用程序包生成APK需要額外時間,之后才會部署到設備上。
應用程序包還可以從Android Studio生成,它使用從Unity導出的Gradle項目。為此,你需要使用Android Studio 3.2或更高版本,並選擇Build > Build Bundle(s) / APK(s) > Build Bundle(s)。
如果目標商店不支持Android App Bundles,你可以使用Player settings中的Split APKs by target architecture選項,從而根據終端用戶設備的CPU架構提供APK文件,或使用bundletool,該工具可以構建支持運行在任何環境的“通用APK”文件
參考和資源
-
ABI:應用程序二進制接口,每個接口用於一個CPU和指令集的組合。
-
Dynamic Features動態功能介紹
https://developer.android.com/guide/app-bundle/configure
-
了解bundletool的標識和選項
https://developer.android.com/guide/app-bundle/test
-
Android App Bundle文檔
https://developer.android.com/guide/app-bundle/test#generate_apks
小結
Unity 2018.3 beta中的Android App Bundle (AAB)支持就為大家介紹完畢,更多Unity最新功能介紹盡在Unity官方中文論壇(UnityChina.cn)!