APK和AAB有什么区别?为什么要从APK切换到AAB?

APK和AAB有什么区别?为什么要从APK切换到AAB?

一个正在发生的变革

如果你在2021年之后下载过Google Play上的App,你可能已经悄悄地用上了AAB——而不自知。

从2021年8月起,Google Play要求所有新应用必须使用**Android App Bundle(AAB)**格式提交。这意味着你在Google Play下载的绝大多数新App,背后都是AAB,而不是传统的APK。

但APK并没有消失。第三方应用商店、侧载安装、Gptoapk.com等第三方APK下载站——这些地方仍在使用APK格式。

两者到底有什么区别?AAB真的更好吗?为什么有人还在坚持用APK?


一、APK和AAB的本质区别

APK(Android Package Kit)

APK存在了将近15年——从Android 1.0时代就开始用。

它是完整的:一个APK文件包含App的所有内容——所有语言、所有屏幕分辨率、所有CPU架构的资源。不管你用哪个设备下载,下载的都是同样的完整包。

优点:拿到就能用,直接安装,零依赖

AAB(Android App Bundle)

AAB是2018年引入的新格式,2021年成为Google Play强制标准。

它不是完整的:AAB并不是一个可安装的文件。它只是一个"材料包",包含App的所有资源,但不打包在一起。当你从Google Play下载App时,Play服务器会根据你的设备特征(屏幕分辨率、语言、CPU架构),从AAB中提取出你需要的部分,拼成一个针对你设备优化的APK

对比维度APKAAB
文件后缀.apk.aab
诞生时间2008年2018年
安装方式直接安装需要通过Google Play或bundletool转换
文件大小较大(包含所有资源)用户实际下载只占一部分
分发渠道一切渠道仅Google Play(官方)
侧载支持✅ 方便❌ 不能直接安装

二、为什么Google要推AAB?

1. 更小的下载体积

这是最核心的优势。

以一个支持33种语言、4种屏幕密度、2种CPU架构的App为例:

格式用户下载大小节省空间
旧版APK(不分包)150MB
新版APK(多APK分包)100MB33%
AAB动态发放45MB70%

用户只下载自己需要的那部分,不浪费流量和空间。

2. 自动适配不同设备

  • 你的手机是arm64+中文+xxxhdpi屏幕→ AAB只提供这一套资源
  • 平板电脑是arm64+英文+xhdpi屏幕→ AAB给不同的资源

开发者只需要提交一个AAB文件,Google Play自动处理所有适配。

3. Play Feature Delivery(按需下载)

AAB支持条件功能交付(Conditional Delivery)

  • 核心功能:安装时提供
  • 附加功能:运行时按需下载(比如游戏的后期关卡)
  • 昂贵资源:只在特定条件下提供

这让App的首次安装体积大幅减小,安装率上升。


三、为什么APK仍然重要?

1. 侧载安装

超过90%的Android设备支持APK侧载,这是AAB做不到的:

  • 从第三方网站下载App
  • 手机之间分享App
  • 在没有Google Play的设备上安装App(华为、部分国产手机)
  • 安装Mod版App
  • 测试自己开发的App

2. 不受Google Play限制

AAB完全依赖Google Play的分发能力。如果你的App因为某些原因不在Google Play上架(或者被下架了),AAB就没有任何意义。

APK给了用户分发自由的选项

3. 保留版本控制

用APK你可以:

  • 选择不升级某个App
  • 降级到旧版本(如果新版本有问题)
  • 保留某个功能被砍掉之前的版本
  • 安装特定区域的版本

用Google Play自动更新,你没有这些控制权。


四、如果你想自己从AAB转APK

有一个官方工具:bundletool

# 1. 下载 bundletool(Java应用)# https://github.com/google/bundletool# 2. 从AAB生成通用APK集java-jarbundletool build-apks\--bundle=app.aab\--output=app.apks\--mode=universal# 3. 解压 .apks 文件(它其实是个ZIP)unzipapp.apks-dapk-output/# 4. 你会得到 universal.apk → 这就是可以在任何设备上安装的完整APK这样你就能从 AAB"提取"出传统 APK,用于侧载或第三方分发。![](md_divider)五、作为用户,你需要关心什么? 如果你只用 Google Play 你不需要关心 APK 还是 AAB。Google Play 帮你处理了一切。你甚至不会知道自己下载的是什么格式——对于你来说,只是"安装了一个 App"。 需要注意:AAB 发布的 App,如果你备份 APK 到本地,这些 APK 是"设备专属"的,换一部手机就不能用了。 如果你经常侧载 APK 你需要关心 APK 是否安全: * 来源可靠吗?(官网?知名开发者?) * 病毒扫描过了吗? * 签名信息正常吗? 建议:从 Gptoapk 或 APKPure 等可靠网站下载 APK,下载后扫描一下。![](md_divider)六、开发者的选择![](md_divider)七、总结 结论很简单: * 开发者提交 Google Play → 用 AAB * 用户侧载、第三方分发 → 用 APK * 日常用 Google Play → 不用管,系统自动处理 两种格式在未来很长一段时间内会共存。 AAB 是 Google Play 的"官方语言",APK 是 Android 世界的"通用语"