币安 APK 是 split bundle 吗?为什么文件夹里有多个 apk
部分用户从某些渠道下载币安安装包时,得到的不是一个 .apk 文件,而是一个 zip 压缩包,解压出来里面是 base.apk、split_config.arm64_v8a.apk、split_config.zh.apk 等好几个文件。这种「多文件 APK」就是 split bundle。本笔记把概念与安装方法讲清楚。要拿币安官方 universal APK,请打开 币安官网 或直接走 币安官方APP 入口;iPhone 用户看 iOS安装教程。
App Bundle 与 split APK 的关系
谷歌从 Android 5.0 起引入了 App Bundle(.aab)格式,目的是减少最终用户下载的 APK 体积。原理是:
- 开发者把所有架构、所有语言、所有屏幕密度的资源都打进一个 .aab
- 谷歌 Play 服务器在用户下载时,根据用户设备的 CPU 架构、系统语言、屏幕分辨率,从 .aab 中动态切片出适合该设备的 APK 集合
- 用户最终装到设备上的不是一个 .apk,而是几个 split apk 的组合
这种机制让用户少下 30-50% 的体积,但代价是下载流程必须经过 Play 服务器。
为什么有人手里是 .aab 或 split
币安官方面向中国用户的下载页直接给出的是 universal APK(一个文件包含所有架构),不需要 .aab。但有些场景下用户会拿到 split:
- 从 APKMirror、APKPure 等海外 APK 站下载时,部分版本只提供 split bundle
- 用 ADB 从已安装的设备里抽取 APK,会得到 split(因为 Play 装的本来就是 split)
- 某些「APK 提取工具」从 Play Store 下载时直接保存的是 split 形式
split APK 的内部组成
一个典型的 split bundle 解压后包含:
| 文件名 | 作用 |
|---|---|
| base.apk | 主体代码与资源 |
| split_config.arm64_v8a.apk | arm64 架构的 native 库 |
| split_config.armeabi_v7a.apk | armv7 架构的 native 库 |
| split_config.xxhdpi.apk | 超高密度屏幕的图片 |
| split_config.zh.apk | 简体中文字符串 |
| split_config.en.apk | 英文字符串 |
每个文件都是独立的 APK,但只有 base.apk 是完整可独立安装的。其它 split 必须配合 base 一起装。
split bundle 的安装方法
方法一 · 用 SAI(Split APKs Installer) 谷歌 Play 上的免费工具,专门用来装 split:
- 安装 SAI
- 把 split bundle 解压到一个目录
- 在 SAI 里选「Install APKs」→ 选目录
- SAI 会自动选择合适的 split 一起装
方法二 · 用 APKMirror Installer APKMirror 官方出的安装器,逻辑与 SAI 类似。
方法三 · 用 ADB install-multiple 开发者方式:
- 电脑装 ADB
- 手机开 USB 调试,连接电脑
- 命令行执行 adb install-multiple base.apk split_config.arm64_v8a.apk split_config.zh.apk
方法四 · 用 bundletool 从 .aab 生成 如果你拿到的是 .aab 文件而不是 split,需要先用谷歌的 bundletool 工具把 .aab 转成对应设备的 APKs:
- 下载 bundletool(开源 jar 包)
- 执行 bundletool build-apks 命令生成 .apks 文件
- 再用 install-apks 装到手机
普通用户用前两种工具就够了。
选哪种最省事
| 用户类型 | 推荐方式 |
|---|---|
| 普通用户 | 直接从币安官网下 universal APK |
| 想节省存储 | SAI 装 split |
| 开发者/研究者 | bundletool + ADB |
| 已用 Play Store | 直接 Play 升级 |
绝大多数人选第一种就好,不需要折腾 split。
split 比 universal 真的省多少
实测对比(v2.100.5 版本):
| 包形式 | 总大小 | 装到设备占用 |
|---|---|---|
| universal APK | 96 MB | 240 MB |
| split for arm64 + zh | 38 MB | 130 MB |
| split for arm64 + zh + en | 42 MB | 145 MB |
split 在下载体积上节省约 60%,安装后占用空间也少 110 MB。对存储紧张的低端机有意义。
split 的局限
- 不能简单地用文件管理器双击安装,需要专门工具
- 跨设备转移麻烦,要把所有 split 文件一起拷
- 升级时如果新版增加了新的 split 类型(如新语言),可能不兼容
- 抓包/调试时需要分别处理多个文件
校验 split 的安全性
split 也可以做哈希与签名校验,但要注意:
- 必须对每个 split 文件分别算 SHA-256
- 每个 split 都用同一份签名(共享 base 的签名)
- 缺失任何一个 split 装上去都会运行异常
如果只能拿到部分 split,建议放弃这份包,重新去找完整的 universal APK。
币安官方对 split 的态度
币安官方对国际市场提供 .aab 走 Play Store 分发,对中国/受限市场提供 universal APK 走自家下载页。两种形式互补:
- Play 用户:自动接收 split,不用关心细节
- 中国用户:直接下 universal,不依赖 Play 服务
所以对中国用户来说,遇不到 split 是常态,遇到就是从非官方渠道下载的,建议换官方源。
FAQ
Q:split bundle 比 universal APK 安全吗? A:安全性等价,因为签名相同。区别只在体积。
Q:能不能合并多个 split 成一个 APK? A:技术上可以用 APKEditor 之类工具合并,但操作复杂,不如直接下 universal。
Q:为什么我看到的 APKMirror 下载是 .apkm 后缀? A:.apkm 是 APKMirror 的自定义格式,本质是 zip 压缩的 split bundle。
Q:装 split 需要 root 吗? A:不需要。SAI 用的是系统标准的 PackageInstaller。