幣程筆記 教學

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

延伸閱讀