Android XAPK 格式的生成原理与安装指南

4 阅读5分钟

当你在 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 的首选工具,操作极为简便:

  1. 从 Google Play 或 APKPure 下载并安装 XAPK Installer

  2. 应用会自动扫描手机中的 .xapk 文件并列出

  3. 选择目标文件,点击“安装”即可

SAI(Split APKs Installer) 是另一个强大选择,特别擅长处理拆分 APK 的安装,支持 XAPK、APKS 等多种格式。

方式二:使用 APKPure 官方应用

APKPure 作为 XAPK 的“发明者”,直接用其官方应用安装兼容性最好:打开 APKPure “我的” “应用管理” “APK/XAPK管理” 选择文件安装。

方式三:手动安装(备用方案)

如果不想安装额外工具,可以将 .xapk 重命名为 .zip 并解压:

  1. 先安装解压出的 .apk 文件

  2. 再将解压出的 Android/obb/ 文件夹整体复制到手机内部存储的 /Android/obb/ 目录下(若目录不存在则创建)。OBB 文件必须严格按照 Android/obb/包名/ 的路径存放,否则应用会因找不到资源而闪退

  3. 完成放置后即可正常打开应用

方式四:使用 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 时代提供了可行的分发方案。