小任班长的博客 - Android App Bundles
type: channel
link: https://cnxiaocheng.top/tag/Android-App-Bundles/
items: 谷歌应用商店用 AAB 格式替代 APK：改变应用打包和交付方式，8 月实施

谷歌应用商店用 AAB 格式替代 APK：改变应用打包和交付方式，8 月实施
type: item
date: 2021-06-30T13:00:00+08:00
description: Google Play 应用商店正在不断发展，以满足安卓用户和开发者不断增长的需求和要求。其中许多改进依赖于由人工智能和机器学习驱动的自动化系统，特别是在筛选应用程序的恶意软件或禁止内容方面。然而，有些改进要求开发者对他们编写和发布应用程序的方式做出改变。最具颠覆性的变化之一将在 8 月到来，届时谷歌应用商店将改用 App Bundles 而不是 APK 作为其标准包格式，这一变化不仅会影响到开发者，也会影响到安卓用户，希望能有更好的效果。采用 App Bundles 的原因APK 是安卓包（Android Package）的简称，长期以来一直是安卓的应用程序和游戏的标准包格式。APK 更类似于 Java 的 JAR 文件（实际上是它的延伸），旨在捆绑一个应用程序在设备上安装所需的一切，从代码到图像和声音等文件，其中一些将为不同种类和尺寸的设备提供不同版本。然而，随着安卓生态系统的发展，需要打包在 APK 中才能使用的东西也越来越多。然而，APK 不能很好地适应安卓系统的增长，谷歌不得不为大型应用制定变通方案，特别是有时需要数千兆字节额外数据的游戏。这种变通方法是以 OBB 的形式出现的，甚至在你开始玩游戏或使用该应用程序之前就需要下载。这些都是 Android App Bundles 承诺要解决的问题，虽然这些变化对用户来说应该是透明的，但它们仍然应该是非常明显的。Android App Bundles，可能会被简称为 AAB，将改变安卓应用的打包方式，更重要的是，将改变其交付方式。最直接的区别之一是，将不再需要一个 APK 来包含所有类型的安卓设备的所有内容，这意味着包的大小应该更小，下载时间应该更快。事实上，App Bundles 要求应用程序的大小不应超过 150MB。Android App Bundles 提供相同东西的新方法对于需要超过 150MB 的应用程序，App Bundles 引入了一种新的功能来取代 OBB，称为 Play Asset Delivery（PAD）。使用更好的数据压缩和动态交付策略，这个 PAD 系统承诺对非代码文件的下载速度也会更快，甚至可能在已经在玩游戏的时候。未来的更新也可以更小，因为 PAD 不会包含所有的新文件，而只包含不同版本的文件之间的变化，也就是它们的 deltas。游戏文件交付也有安全方面的好处，因为文件存储在 Google Play 并从其下载，而不是由开发者自己安排的一些 CDN 托管。Android App Bundles 启用的另一个新功能是 Play Feature Delivery（Play 功能交付），这是 APK 无法实现的。它扩展了应用程序捆绑包的概念，只包含特定设备上需要的应用程序的部分，但侧重于尽快实际开始使用该应用程序所需的功能。简单的理解是，它将允许用户在安装应用后的几秒钟内立即使用该应用，将应用的其他部分的下载推迟到以后。安卓用户应该不需要做任何事情就能从这些变化中受益，但应用开发者必须做繁重的工作。幸运的是，谷歌应用商店的 Android App Bundle 要求在 8 月生效，只适用于提交给应用商店的新应用。当然，如果开发者想改善用户的体验，他们也可以自愿采用 App Bundles。Android App Bundles 的“隐藏陷阱”这听起来确实不错，至少对用户来说是这样，但它确实有一个微妙的细节。所有这些功能都只能在谷歌应用商店中使用，这听起来似乎没有什么问题，但对一些安卓开发者有重要影响。与 APK 不同，Android App Bundles 不能存在于 Google Play 商店之外，也不能在其之外分发。这意味着，从 APK 转向 App Bundles 的开发者不能再在其他应用源上提供完全相同的软件包或体验，除非他们选择维护一个单独的 APK 版本。这自然使第三方应用商店处于不利地位，但谷歌很可能会宣传 Play 商店的安全性，作为避免使用这些来源的一个主要原因。