APK、AAB 有什么区别?开发、发布与安装流程对比
APK 与 AAB 有什么区别?本文从用途、安装方式、签名、体积、Split APK 和应用商店发布流程完整比较。

文章目录 10 项
APK 和 AAB 都能由 Android 项目构建出来,但用途完全不同:APK 是 Android 的可安装、可执行格式;AAB 是交给应用商店处理的发布格式,不能直接安装到手机。
开发者上传 AAB 后,Google Play 或其他支持它的分发系统会根据手机的 CPU、屏幕密度、语言和功能需求生成一组优化 APK。用户表面上点击一次“安装”,底层拿到的仍是 APK。
APK 与 AAB 核心区别
| 对比项 | APK | AAB |
|---|---|---|
| 扩展名 | .apk | .aab |
| 定位 | 安装与运行格式 | 发布格式 |
| 手机能否直接安装 | 可以(满足条件时) | 不可以 |
| 包含内容 | 某个可安装版本所需内容 | 应用支持的模块、代码、资源和发布元数据 |
| 设备优化 | 由开发者打包方式决定 | 分发系统按设备生成优化 APK |
| 常见场景 | 侧载、测试、企业分发 | 应用商店发布 |
| 最终运行形式 | APK 或 Split APK | 必须先转换为 APK |
APK 是什么?
APK 包含应用在设备上运行所需的 DEX 代码、资源、清单、原生库和签名。它可以是包含多种配置的通用 APK,也可以是只针对某种 ABI 或屏幕密度的 APK。
APK 适合直接测试、分享给测试人员、企业内部部署或侧载。在 APKBang 等下载页面看到的可安装文件,也应根据架构、最低系统版本和签名信息选择。
AAB 是什么?
AAB 即 Android App Bundle。它把应用代码和资源按基础模块、功能模块和资源包组织起来,并把针对设备生成 APK 的工作推迟到分发阶段。
Google 官方明确说明,AAB 只能用于发布,不能直接部署到设备。AAB 也不是 Google Play 私有格式;其他应用商店和构建工具可以支持它。

AAB 如何变成手机上的应用?
典型流程是:
开发者构建并上传 AAB
↓
分发系统读取设备配置
↓
生成 base APK + ABI/DPI/语言配置 APK
↓
设备把这些 Split APK 当成一个应用安装
base.apk 提供核心功能,配置 APK 提供某种 CPU 架构、语言或屏幕密度资源,功能 APK 则可承载按需功能。这样用户无需下载所有设备的资源。
使用 AAB 为什么可能减小下载体积?
传统通用 APK 可能同时包含多套 ARM/x86 原生库、多个 DPI 图片和全部语言。AAB 允许商店只生成设备需要的组合,因此下载内容通常更精简。
注意:AAB 文件自身的大小不能直接等同于用户下载大小。真正应比较的是某台设备收到的 APK 总量。
AAB 怎么安装?
AAB 不能像 APK 一样点击安装。开发和测试时,可使用 Google 的 bundletool 生成 APK Set:
bundletool build-apks --bundle=app.aab --output=app.apks
bundletool install-apks --apks=app.apks
普通用户如果只拿到 .aab,应让发布者提供 APK、APKS 或正式应用商店链接,而不是随便找在线转换网站上传文件。
APK 和 AAB 的签名有什么不同?
APK 必须经过签名才能安装。使用 Google Play App Signing 时,开发者通常使用上传密钥提交 AAB,Google Play 再使用应用签名密钥为下发 APK 签名。
因此,从商店生成的 APK 与开发者本地使用另一密钥签名的 APK 可能无法互相覆盖。切换分发渠道前应核对证书指纹和数据备份。
开发者应该选择 APK 还是 AAB?
- 发布到要求 AAB 的应用商店:构建 AAB;
- 本地快速安装和调试:构建 APK;
- 将测试包直接交给人员安装:通常提供 APK;
- 测试商店拆分交付:使用 AAB 配合 bundletool;
- 多渠道发布:根据每个渠道要求分别产出 AAB 或 APK。
它们不是必须二选一。同一项目可以针对不同流程生成不同产物。
常见误区
AAB 是更高级的 APK?
不是。它们处于分发链路的不同阶段:AAB 供分发系统加工,APK 供设备安装。
把 AAB 改名为 APK 能安装吗?
不能。文件结构和用途不同,修改扩展名不会生成可安装包。
AAB 会阻止侧载吗?
不会。AAB 的存在不改变 Android 安装 APK 的能力,只是应用商店的发布产物发生了变化。
从手机提取的 APK 能分享给另一台手机吗?
不一定。若应用由 AAB 生成,设备里可能是多个 Split APK;只提取 base APK 或缺少目标设备需要的配置包会安装失败。
常见问题(FAQ)
AAB 可以直接在 Android 手机上打开吗?
不能。需要由应用商店或 bundletool 处理成一个或多个 APK。
APK 和 AAB 哪个更安全?
格式不能单独决定安全性。关键是发布来源、签名密钥管理、构建流程和应用行为。
为什么 Google Play 推荐 AAB?
因为商店可按设备配置生成优化 APK,并支持功能和资源的灵活交付。
AAB 转 APK 后是一个文件吗?
可能是通用 APK,也可能是一组 Split APK,取决于 bundletool 参数和目标设备配置。
总结
APK 是安装格式,AAB 是发布格式。普通用户需要的是 APK 或完整 Split APK 组合;开发者向支持 AAB 的商店发布时上传 AAB,再由分发系统完成设备适配和 APK 签名。理解“发布产物”和“安装产物”的区别,就不会再尝试直接安装 AAB。