DocBit Notes チュートリアル

Binance APK は split bundle ですか? フォルダ内に複数の apk がある理由

一部のユーザーが特定のチャネルから Binance のインストールパッケージをダウンロードした際、1 つの .apk ファイルではなく、ZIP 圧縮パッケージになっており、解凍すると中に base.apksplit_config.arm64_v8a.apksplit_config.zh.apk など複数のファイルが含まれていることがあります。このような「複数ファイルの APK」が split bundle です。本ノートでは、この概念とインストール方法を明確に解説します。Binance 公式の universal APK を取得するには、Binance公式サイト を開くか、直接 Binance公式アプリ の入口をご利用ください。iPhone ユーザーは iOSインストールチュートリアル をご覧ください。

App Bundle と split APK の関係

Google は Android 5.0 から、エンドユーザーがダウンロードする APK のサイズを削減することを目的に、App Bundle(.aab)形式を導入しました。その仕組みは以下の通りです:

  1. 開発者はすべてのアーキテクチャ、すべての言語、すべての画面密度のリソースを 1 つの .aab にパッケージ化します。
  2. Google Play サーバーは、ユーザーがダウンロードする際、そのデバイスの CPU アーキテクチャ、システム言語、画面解像度に基づいて、.aab からそのデバイスに最適な APK の集合を**動的にスライス(切り出し)**します。
  3. ユーザーが最終的にデバイスにインストールするのは 1 つの .apk ではなく、複数の split apk の組み合わせになります。

このメカニズムにより、ユーザーのダウンロードサイズは 30〜50% 削減されますが、その代償としてダウンロードプロセスは必ず Play サーバーを経由する必要があります。

なぜ .aab や split を持っている人がいるのか

Binance 公式が中国(またはその他の Play ストアが利用できない地域)のユーザー向けにダウンロードページで直接提供しているのは universal APK(1 つのファイルにすべてのアーキテクチャが含まれる)であり、.aab は必要ありません。しかし、一部の状況下でユーザーは split を入手することがあります:

  • APKMirror や APKPure などの海外 APK サイトからダウンロードする際、一部のバージョンは split bundle としてのみ提供されている。
  • ADB を使用してインストール済みのデバイスから APK を抽出すると、split が得られる(Play ストアがインストールしたものが元々 split であるため)。
  • 一部の「APK 抽出ツール」が Play ストアからダウンロードする際、直接 split 形式で保存する。

split APK の内部構成

典型的な split bundle を解凍すると、以下のようなファイルが含まれています:

ファイル名 役割
base.apk メインのコードとリソース
split_config.arm64_v8a.apk arm64 アーキテクチャのネイティブライブラリ
split_config.armeabi_v7a.apk armv7 アーキテクチャのネイティブライブラリ
split_config.xxhdpi.apk 超高密度画面用の画像
split_config.zh.apk 簡体中国語の文字列
split_config.en.apk 英語の文字列

それぞれのファイルは独立した APK ですが、完全に独立してインストールできるのは base.apk のみです。その他の split は必ず base と一緒にインストールする必要があります。

split bundle のインストール方法

方法1 · SAI(Split APKs Installer)を使用する Google Play で入手できる無料ツールで、split のインストール専用です:

  1. SAI をインストールする
  2. split bundle を 1 つのディレクトリに解凍する
  3. SAI で「Install APKs」を選択 → ディレクトリを選択
  4. SAI が適切な split を自動的に選択して一緒にインストールする

方法2 · APKMirror Installer を使用する APKMirror 公式のインストーラーで、ロジックは SAI と似ています。

方法3 · ADB install-multiple を使用する 開発者向けの方法:

  1. PC に ADB をインストールする
  2. スマートフォンで USB デバッグを有効にし、PC に接続する
  3. コマンドラインで adb install-multiple base.apk split_config.arm64_v8a.apk split_config.zh.apk を実行する

方法4 · bundletool で .aab から生成する split ではなく .aab ファイルを入手した場合は、まず Google の bundletool を使用して .aab を対象デバイス用の APKs に変換する必要があります:

  1. bundletool(オープンソースの jar パッケージ)をダウンロードする
  2. bundletool build-apks コマンドを実行して .apks ファイルを生成する
  3. その後、install-apks を使用してスマートフォンにインストールする

一般ユーザーは、最初の 2 つのツールを使用すれば十分です。

どの方法が最も簡単か

ユーザータイプ 推奨される方法
一般ユーザー Binance 公式サイトから universal APK を直接ダウンロードする
ストレージを節約したい SAI で split をインストールする
開発者/研究者 bundletool + ADB
既に Play ストアを使用中 Play ストアから直接アップグレードする

大多数の人は 1 番目の方法を選ぶだけでよく、わざわざ 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 の署名を共有する)。
  • いずれか 1 つの split が欠けた状態でインストールすると、異常な動作を引き起こす。

一部の split しか入手できない場合は、そのパッケージを放棄し、完全な universal APK を探し直すことをお勧めします。

Binance 公式の split に対する姿勢

Binance 公式は、グローバル市場には .aab を提供して Play ストア経由で配信し、中国や制限された市場には universal APK を提供して自社のダウンロードページ経由で配信しています。これら 2 つの形式は互いを補完しています:

  • Play ユーザー:自動的に split を受信し、詳細を気にする必要はない。
  • 中国の(またはPlayストアを使わない)ユーザー:直接 universal をダウンロードし、Play 開発者サービスに依存しない。

したがって、一般のユーザーにとって、split に遭遇しないのが普通であり、遭遇した場合は非公式のチャネルからダウンロードしたということになります。公式ソースに変更することをお勧めします。

FAQ

Q:split bundle は universal APK より安全ですか? A:署名が同じであるため、安全性は同等です。違いはサイズのみです。

Q:複数の split を 1 つの APK に結合することはできますか? A:技術的には APKEditor などのツールを使って結合できますが、操作が複雑であり、直接 universal をダウンロードした方が早いです。

Q:APKMirror でダウンロードしたものが .apkm という拡張子になっているのはなぜですか? A:.apkm は APKMirror の独自フォーマットであり、本質的には ZIP 圧縮された split bundle です。

Q:split をインストールするには root 化が必要ですか? A:必要ありません。SAI はシステムの標準である PackageInstaller を使用しています。

関連記事