币安官方分发的 .aab 文件怎么用 bundletool 安装到手机
普通用户从币安官网下载到的是 universal APK,用文件管理器双击就能装。但研究人员或开发者偶尔会拿到 .aab(Android App Bundle)文件,需要借助谷歌的 bundletool 工具才能装到手机。本笔记给出完整流程。日常用户不需要折腾这条路径,下载 APK 直接走 币安官网 或 币安官方APP 即可;iPhone 装机看 iOS安装教程。
bundletool 是什么
bundletool 是谷歌官方开源的命令行工具,主要功能:
- 把 .aab 文件转成 .apks(一个包含若干 split APK 的 zip)
- 根据指定设备规格生成对应的 APK 子集
- 直接把生成的 APKs 装到通过 ADB 连接的设备
- 输出 .aab 内部结构以供分析
这套工具是开发者把应用上传 Google Play 之前的常规验证手段,对中国用户来说一般用不上,除非:
- 想研究币安 APP 的内部结构
- 拿到了第三方分发的 .aab
- 写自动化测试脚本
准备工作
需要在电脑上备齐这些:
| 软件 | 作用 |
|---|---|
| Java JDK 11+ | bundletool 依赖 |
| bundletool jar | 谷歌开源命令行工具 |
| Android SDK Platform Tools(含 ADB) | 与设备通信 |
| .aab 文件 | 来源是币安官方或自己反编译 |
| USB 数据线 | 连接 Android 手机 |
bundletool 体积约 6-8 MB,可以从 GitHub 上谷歌的 google/bundletool 仓库下载。
设备端开启 USB 调试
手机上开启开发者选项:
- 设置 → 关于本机 → 多次点击「版本号」7 次
- 返回设置 → 系统 → 开发者选项
- 启用「USB 调试」
- 用数据线连接电脑,弹出授权对话框点「允许」
不同 ROM 路径略有差异:
| ROM | 多次点击位置 |
|---|---|
| MIUI | 「MIUI 版本」 |
| HarmonyOS | 「HarmonyOS 版本」 |
| ColorOS | 「版本号」 |
| One UI | 「内部版本号」 |
开启后 ADB 才能识别设备。
完整安装流程概述
把 .aab 装到手机大致分四步:
步骤一 · 检查设备是否被 ADB 识别 在命令行输入 adb devices,如果输出里有手机序列号就说明连通。
步骤二 · 用 bundletool 生成 device-specific 的 APKs bundletool 会询问连接的设备型号、架构、语言、屏幕密度,按这些参数从 .aab 抽取出最小的 split 集合,输出为 binance.apks 文件。
步骤三 · 用 bundletool 把 APKs 装到设备 bundletool 内置 install-apks 子命令,它会自动调 ADB install-multiple 把 split 一并装上。
步骤四 · 在手机上启动币安 启动后体验与从 universal APK 装的没有差别。
具体命令涉及到命令行参数,篇幅较长,开发者可以参考谷歌官方文档。
.aab vs universal APK 的体积差异
实测同一版本(v2.100.5):
| 形式 | 总下载体积 | 装机后占用 |
|---|---|---|
| .aab(谷歌 Play 分发) | 不直接下载 | - |
| 由 .aab 生成的 device-specific APKs | 38-45 MB | 130-150 MB |
| universal APK(币安官网分发) | 96 MB | 240 MB |
差异主要来自 universal 包含全部架构与全部语言,而 device-specific 只有当前设备需要的那一份。
bundletool 常见报错
报错一 · Unsupported tools version bundletool 与 Java 版本不匹配。最新 bundletool 要求 JDK 11+,老 JDK 8 不兼容。处理:升级 JDK。
报错二 · No device connected ADB 没识别到设备。检查 USB 模式是不是「文件传输」,调试授权是不是允许。
报错三 · Multiple devices connected 连了多台设备时需要用 -s 参数指定序列号。
报错四 · Manifest version code is lower than installed 设备上已经装了同版本或新版本,要先卸载或调高 versionCode。
报错五 · Insufficient storage 设备存储满了,清理一些空间。
装完后的验证
装完后可以做几项验证:
- adb shell pm list packages 里是否有 com.binance.dev
- 启动 APP 看版本号是否与预期一致
- 对比签名指纹是否与官网公布一致
- 跑一次现货下单流程确认功能正常
适用场景与不适用场景
适合走 bundletool 路线的:
- 研究 APP 结构的安全研究人员
- 写自动化 UI 测试的 QA
- 需要在多种设备规格上测试不同 split 表现的开发者
- 学习 Android 应用打包机制的学生
不需要走这条路的:
- 想正常使用币安的普通用户(直接下 universal APK 即可)
- 没有 ADB 与命令行经验的用户
- 平板、电视盒子等非标准设备(universal 兼容性更好)
命令行新手的替代方案
如果你看到 ADB、bundletool 这些就头大,但又拿到了 .aab,有几条更友好的替代路径:
- 用图形化的 SAI(Split APKs Installer),把 .aab 复制进去自动处理
- 用 APKEditor Studio 把 .aab 转成 apkm 再装
- 直接放弃 .aab,从币安官网下 universal APK
第三种最简单。
FAQ
Q:为什么币安要发布 .aab 而不是 APK? A:实际上币安官网对中国用户主推 universal APK;.aab 主要是给 Google Play 分发用。
Q:自己做的 split APKs 能不能给别人用? A:技术上可以,但 split 与设备规格绑定,给其他设备用可能不兼容。
Q:装完 bundletool 生成的 APKs 后还能从 Play Store 升级吗? A:可以。Play 用 versionCode 判断,与签名一致就能识别为「同一应用」并升级。
Q:bundletool 会修改 APK 内容吗? A:不会。它只是把 .aab 拆成 APKs,不改字节码。