你使用应用的所有代码和资源构建一个单一的工件。
传统的我们会使用 Apk 将我们的代码传给用户,用户使用 Apk 安装代码,并使用应用。简单来说 App Bundle 就是打包分发的一种新的方法。我们不在使用 Apk 这样的方式,而是用一种更加快速、高效的方法将我们的代码传递到用户的手中。
从下图中可以看到,Google Play 针对每个设备的配置提供专门优化过的应用。每一个用户得到的资源都不相同。
从下图可以看到,传统的 Apk 分发机制需要将不同屏幕大小、cpu 型号、语言相关的资源都打包到 Apk 中,即使你的手机不需要 x86、非中文、低分辨相关的资源,你也需要下载。
而使用 App Bundle 后,用户就不在需要无用的资源,大大减少的应用的体积。
与通用 Apk 相比,应用大小平均缩减百分比 20%、应应用大小缩减带来的安装量增长高达 11%
但 App Bundle 仅仅能做到这一点么?
可以发现有了这样的机制后,开发者就可以关注以下三点:
拆分资源给开发者带来了巨大的灵活性。
可能遇到的场景:
由 Google Play 管理的应用内更新,用户不需要在经历 切换到应用市场->覆盖安装->打开应用这一套繁琐的流程。开发者也只需要触发应用更新即可。
应用提示用户进行更新,用户选择更新后,可以继续使用应用。当更新完成以后,应用会提示用户重启。灵活的应用更新可以给开发者灵活的控制更新流程的能力。
你可以指定一些条件,满足这些条件后,系统将在应用安装过程中分发某个功能模块,不满足条件则不会分发。可以让一些组件排除在一些设备的初始安装之外,避免把无用的功能安装在用户的手机上。
条件可以组合、所有条件都满足才会分发模块
按需分发指的是可以根据需要安装和移除特定的功能。
如某些用户并不需要上传的功能、新手指引功能,只需要对有对应需求的用户提供该功能即可。
如下图所示,该应用可以在线安装客户服务功能,而该功能可能是大部分用户不需要的。