APK、AAB 有什么区别?开发、发布与安装流程对比

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

APKBang 编辑部29 次阅读
APK 与 Android App Bundle 发布和安装流程对比图
文章目录 10 项

APK 和 AAB 都能由 Android 项目构建出来,但用途完全不同:APK 是 Android 的可安装、可执行格式;AAB 是交给应用商店处理的发布格式,不能直接安装到手机。

开发者上传 AAB 后,Google Play 或其他支持它的分发系统会根据手机的 CPU、屏幕密度、语言和功能需求生成一组优化 APK。用户表面上点击一次“安装”,底层拿到的仍是 APK。

APK 与 AAB 核心区别

对比项APKAAB
扩展名.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 被处理成基础 APK 和设备配置 APK 后安装
AAB 被处理成基础 APK 和设备配置 APK 后安装

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。

参考资料

相关文章

进入指南
APK、APKS、APKM、XAPK 和 AAB 有什么区别?一篇讲清 Android 安装包APK、APKS、APKM、XAPK、AAB 到底是什么?本文用对比表和安装指南讲清 Android 安装包区别、正确安装方式、版本选择与安全注意事项。36 次阅读Universal、nodpi、xhdpi、xxhdpi 怎么选?APK 屏幕版本指南Universal、nodpi、xhdpi、xxhdpi 是什么意思?本文讲清 APK 通用包、屏幕密度和 CPU 架构的区别,并给出选择方法。34 次阅读APK 下载安全吗?识别假冒、篡改和恶意安装包的方法下载 APK 是否安全取决于来源、签名和权限。本文提供安装前核验清单,帮助识别假冒、重签名和恶意安装包。34 次阅读APK 签名是什么?如何判断安装包是否被篡改APK 为什么必须签名?本文讲清证书、签名方案和更新校验,并提供 apksigner、SHA-256 与证书指纹核验方法。26 次阅读arm64-v8a、armeabi-v7a、x86_64 怎么选?APK 版本选择指南下载 APK 时不知道 arm64-v8a、armeabi-v7a、x86_64 怎么选?本文讲清 Android ABI、CPU 架构、DPI、Android 版本与正确选择方法。25 次阅读