币程笔记 教程

币安 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 体积。原理是:

  1. 开发者把所有架构、所有语言、所有屏幕密度的资源都打进一个 .aab
  2. 谷歌 Play 服务器在用户下载时,根据用户设备的 CPU 架构、系统语言、屏幕分辨率,从 .aab 中动态切片出适合该设备的 APK 集合
  3. 用户最终装到设备上的不是一个 .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:

  1. 安装 SAI
  2. 把 split bundle 解压到一个目录
  3. 在 SAI 里选「Install APKs」→ 选目录
  4. SAI 会自动选择合适的 split 一起装

方法二 · 用 APKMirror Installer APKMirror 官方出的安装器,逻辑与 SAI 类似。

方法三 · 用 ADB install-multiple 开发者方式:

  1. 电脑装 ADB
  2. 手机开 USB 调试,连接电脑
  3. 命令行执行 adb install-multiple base.apk split_config.arm64_v8a.apk split_config.zh.apk

方法四 · 用 bundletool 从 .aab 生成 如果你拿到的是 .aab 文件而不是 split,需要先用谷歌的 bundletool 工具把 .aab 转成对应设备的 APKs:

  1. 下载 bundletool(开源 jar 包)
  2. 执行 bundletool build-apks 命令生成 .apks 文件
  3. 再用 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。

延伸阅读