我从https://developer.android.com/guide/app-bundle/了解到的
Bundle 是一种新的上传格式,包含您应用的所有编译代码和资源
Google Play 的动态交付使用您的 Android App Bundle 来构建和提供针对每种设备配置进行了优化的 APK。通过删除其他设备所需的未使用代码和资源,最终用户可以下载更小的应用程序。
所以基本上 apk 将使用动态交付构建,它将仅结合必要的资源,并确保安装在特定设计上的构建得到优化。没有提到捆绑包的大小更小,但它确保最终用户的下载大小会更小。
但是我们为什么要考虑使用 Android App Bundle?
首先,该方法为您的代码库提供了一个干净且分离的结构。由于捆绑包的工作方式(尤其是动态交付,我们稍后会介绍),按功能进行的模块化将成为您应用程序的一部分。这类似于即时应用程序中的模块化方法或通用的按功能模块化方法。无论如何,这有助于解耦应用程序的不同部分,并有助于使您的代码库更易于使用。
以前我们可能需要构建多个 APK 以针对不同的 API 版本、设备类型等——Android App Bundles 意味着我们现在只需上传单个工件和我们所有的应用程序资源,工具将负责处理什么需要构建并交付给我们的用户。这基本上为我们自动化了这个过程,意味着我们可以将重点转移到我们开发过程的其他部分。
由于 App Bundle 将构建针对特定设备及其配置的 APK,这意味着交付的 APK 通常会具有较小的大小。这实际上取决于您的应用程序,因为主要节省将来自密度/区域设置特定资源和任何其他未使用的代码。App Bundles 的早期采用者在这些大小节省中的一些显示了一些很好的结果:
著名应用
应用程序包向我们介绍了一个称为动态交付的新概念。这允许我们的应用程序向用户提供新功能,并允许在运行时下载和安装它们作为我们应用程序的扩展。这使我们能够缩小应用程序的初始大小,并将这些附加功能仅提供给可能实际使用它们的用户。
很快,app bundle 格式将支持对 bundle 的即时启用——这意味着用户无需安装我们的应用程序即可立即启动我们的功能模块,类似于即时应用程序当前的工作方式。