Google Play商店中的大型应用程序和游戏的下载率普遍较低,这是因为用户担心会使用设备上过多的存储空间,耗尽他们的数据流量,而且在网速缓慢的时候进行下载会等待更长时间。Android App Bundle是全新的Android应用发布格式,它能使用户设备上的游戏更小。
在中,我们为部分硬件配置加入了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)!