当你在 APKPure 等第三方应用商店下载应用时,经常会遇到
.xapk后缀的文件,而不是熟悉的.apk。它究竟是什么?与普通 APK 有何不同?如何安装?本文将为你揭开 XAPK 的神秘面纱。
1、XAPK 是什么?核心概念
XAPK(Expansion APK) 是一种 Android 应用分发格式,本质上就是一个 ZIP 压缩包。它的设计初衷是为了解决两个实际问题:一是 Google Play 对 APK 上传大小的限制(100MB),二是 Android App Bundle(AAB)时代拆分 APK 的安装困局。
与普通 APK 相比,XAPK 可以包含一个或多个 APK 文件,以及可选的 OBB 数据文件和描述包内容的 manifest.json 元数据文件。用一个类比来理解:APK 就像一本书,而 XAPK 则是一个装着书、附赠光盘和说明书的文件袋。
本质理解:XAPK = ZIP 压缩包,内部包含 APK 文件 + 额外数据文件 + 元数据清单。
2、XAPK 的生成原理:两种场景
XAPK 的生成方式取决于它所打包的内容类型,主要分为两种场景。
场景一:打包普通 APK + OBB 数据文件(大型游戏分发)
这是 XAPK 最早的应用场景。当应用的资源文件(高清贴图、音效文件等)超过 100MB 时,开发者将主程序打包为 APK,将大量资源打包为一个或多个 OBB(Opaque Binary Blob,Android 的不透明二进制大对象)文件。第三方商店将 APK 和 OBB 文件一起压缩,生成 .xapk 文件,让用户可以一次性下载完整的应用资源,省去首次启动时等待网络下载的漫长过程。
场景二:打包拆分 APK + manifest.json(AAB 到 XAPK 的转换)
这是目前更常见的场景,背后是 Google 的 Android App Bundle(AAB) 格式在起作用。当开发者将应用以 AAB 格式上传到 Google Play 后,Google Play 会根据用户设备的具体配置(CPU 架构、屏幕密度、系统语言等)生成一个精简的 APK 安装包。然而,AAB 本身不是安装包,不能直接安装在手机上。第三方应用市场(如 APKPure)通过 bundletool 工具将 AAB 文件转换为一系列拆分 APK,然后打包成 XAPK 格式向外分发。
生成 XAPK 的核心步骤如下:
# 1. 用 bundletool 将 AAB 转成拆分 APK
java -jar bundletool.jar build-apks --bundle=app.aab --output=temp.apks
# 2. 解压出所有拆分 APK
unzip temp.apks "splits/*.apk"
# 3. 提取 APK 的元信息(包名、版本、最低 SDK 版本等)
aapt dump badging base-master.apk
# 4. 生成 manifest.json 清单文件,描述所有拆分 APK 的关系
# example manifest.json:
{
"xapk_version": 2,
"package_name": "com.example.app",
"version_code": "1",
"min_sdk_version": "21",
"splits": [
{ "file": "base-master.apk", "id": "base", "base": true },
{ "file": "base-arm64_v8a.apk", "id": "arm64-v8a", "abi": "arm64-v8a" }
]
}
# 5. 将所有 APK 和 manifest.json 打包成 .xapk
zip -j output.xapk *.apk manifest.json
3、XAPK 的文件结构
解压任意一个 .xapk 文件(直接重命名为 .zip 即可用常见工具打开),你通常会看到以下内容:
| base.apk | 主 APK,包含应用的核心代码和清单文件 |
| split_config.arm64_v8a.apk | 针对特定 CPU 架构(如 ARM 64 位)的拆分 APK |
| split_config.xxhdpi.apk | 针对特定屏幕分辨率的拆分 APK(如超高清屏) |
| split_config.en.apk | 针对特定语言的拆分 APK(如英语) |
| Android/(目录) | 包含 OBB 数据文件,存放贴图、音效等资源 |
| manifest.json | 元数据清单,记录包名、版本号和拆分 APK 的映射关系 |
4、XAPK 与 APK 的核心区别
| 文件本质 | Android 原生安装格式 | ZIP 压缩包,非 Android 标准格式 |
| 能否直接安装 | ✅ 系统包管理器直接识别 | ❌ 需要专用安装器 |
| 内部结构 | 单一文件包 | 可包含多个 APK、OBB、manifest.json |
| 官方支持 | Google Play 官方接受 | 不被 Google Play 接受,仅用于第三方分发 |
| 典型应用 | 小型应用、普通 APK | 大型游戏、使用 AAB 构建的应用的分发 |
简单来说:APK 是 Google 官方定义的标准格式,系统原生支持;XAPK 是第三方市场为应对分发需求而创造的打包格式,需要额外工具才能安装。
5、如何安装 XAPK 文件
由于 Android 系统无法直接识别 .xapk 文件,安装需要借助第三方工具。
方式一:使用专用安装器
XAPK Installer 是安装 XAPK 的首选工具,操作极为简便:
-
从 Google Play 或 APKPure 下载并安装 XAPK Installer
-
应用会自动扫描手机中的
.xapk文件并列出 -
选择目标文件,点击“安装”即可
SAI(Split APKs Installer) 是另一个强大选择,特别擅长处理拆分 APK 的安装,支持 XAPK、APKS 等多种格式。
方式二:使用 APKPure 官方应用
APKPure 作为 XAPK 的“发明者”,直接用其官方应用安装兼容性最好:打开 APKPure → “我的” → “应用管理” → “APK/XAPK管理” → 选择文件安装。
方式三:手动安装(备用方案)
如果不想安装额外工具,可以将 .xapk 重命名为 .zip 并解压:
-
先安装解压出的
.apk文件 -
再将解压出的
Android/obb/文件夹整体复制到手机内部存储的/Android/obb/目录下(若目录不存在则创建)。OBB 文件必须严格按照Android/obb/包名/的路径存放,否则应用会因找不到资源而闪退 -
完成放置后即可正常打开应用
方式四:使用 ADB 命令
对于需要部署多个拆分 APK 的专业用户,可以使用 ADB 命令:
adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk split_config.xhdpi.apk
需要特别注意:如果有 OBB 文件,需要在 APK 安装完成后通过 adb push 命令手动推送到设备 /sdcard/Android/obb/ 目录。
注意事项:安装 XAPK 文件前,请务必开启“允许安装未知来源应用”的权限,并确保文件来源可靠,以免带来安全风险。
6、总结:XAPK 的意义
XAPK 的出现并非为了“取代 APK”,而是在 Google Play AAB 分发机制和第三方应用市场的分发需求之间架起的一座桥梁。它让用户可以一次性获取完整应用数据(免去首次打开时的额外下载),也为第三方市场在 AAB 时代提供了可行的分发方案。