安装分包 APK——APKS、APKM、XAPK 不用拆包
四种分包格式是什么意思
Android 生态里很多应用不再只发布一个 APK 文件,而是用分包(Split APK) 格式:
| 格式 | 组成 | 典型来源 |
|---|---|---|
| APK | 单个文件,一切都在里面 | F-Droid、GitHub Release |
| APKS | 一个 ZIP,内含 base.apk + 多个 split.apk(按 ABI、语言、屏幕尺寸分) | 从设备导出、ApkPure 等 |
| APKM | 类似 APKS 但多了 DRM 加密 | Google Play 直装包、某些商店 |
| XAPK | 类似 APKS 但额外包含 OBB 数据包(游戏资源包) | 某些游戏商店 |
分包的好处是体积更小——比如一个全球发行的应用,APK 里只含英文资源,中文用户装的时候只下载含中文资源的 split,省流量。但对安装器来说分包麻烦得多,因为要同时装好几个 APK 还得处理依赖关系。
系统安装器为什么不支持
Android 的标准安装流程(PackageInstaller API)一次只接受一个 APK 文件。APKS/APKM/XAPK 里面有好几个 APK + 可能的 OBB 数据包——系统安装器不会解压、不会理解分包间的依赖关系、更不会把 OBB 拷到正确位置。
所以你在文件管理器里直接点 APKS 文件通常会提示"无法打开"或"不支持此格式"。
App Manager 怎么处理
App Manager 的安装器内置了完整的分包支持:
1. 自动识别分包格式
文件扩展名不一定可信——有些 APKS 被改成了 ZIP。App Manager 通过文件内部结构判断是不是分包。
2. 自动解压
识别出分包后,App Manager 自动解压到临时目录:
- APKS / APKM——解出所有 split.apk
- XAPK——解出所有 split.apk + OBB 数据包目录(
Android/obb/<包名>/)
3. 安装顺序
先装 base.apk,再按依赖关系依次装各个 split.apk。APKM 格式的 DRM 加密 split 会先自动解密再装。
4. OBB 数据包
XAPK 里的 OBB 数据包会被自动复制到 Android 的标准 OBB 目录:
/Android/obb/<包名>/
不需要手动拷。
安装后注意事项
分包应用安装后在系统里是一个应用(按包名聚合),而不是好几个独立应用。但 App Manager 的详情页会在拆分 APK 信息标签里列出所有 split:
- 每个 split 的文件名、类型、大小
- 版本号
- ABI / 语言 / 屏幕尺寸标记
遇到装不上的分包怎么办
| 现象 | 排查 |
|---|---|
| 安装过程中某个 split 装不上 | 检查分包完整性,可能下载损坏了 |
| 装完打开提示"资源找不到" | 可能是 OBB 没拷对位置,手动检查 /Android/obb/<包名>/ |
| APKM 加密解不开 | 可能是 DRM 保护的版本,App Manager 解密不了,换其他来源 |
| 设备空间不够 | 分包解压+安装需要至少两倍 APK 大小的临时空间 |
导出自己的分包
App Manager 不仅能装分包,还能导出分包:在应用详情页用 App Manager 的格式重新打包成 APKS,方便拷贝分享给同样用 App Manager 的人。这比单独发 base.apk + 各个 split 高效得多。