幣安 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。