APK vs AAB:徹底比較ガイド – Androidアプリ形式の違いを完全解説
APK(Android Package Kit)とAAB(Android App Bundle)の違いを徹底比較。構造、サイズ、インストール方法、ユーザー体験への影響まで詳しく解説。bundletoolを使ったAABからAPKへの変換方法も紹介。
Androidアプリの世界で「APK」と「AAB」という2つの用語を耳にしたことがあるでしょう。2021年以降、Googleは新規アプリの公開形式としてAAB(Android App Bundle)を必須化しましたが、多くのユーザーはまだ両者の違いを正しく理解していません。この記事では、APKとAABの構造や仕組み、ユーザーへの影響を徹底的に比較します。
APK(Android Package Kit)とは
APKは、Androidの黎明期から使われてきたアプリ配布形式です。基本的にZIPアーカイブ形式で、アプリの実行に必要なすべての要素が1つのファイルにパッケージされています。
app.apk/
├── AndroidManifest.xml // アプリの基本情報(権限、アクティビティ、サービス)
├── classes.dex // Java/Kotlinで書かれたプログラムコード
├── classes2.dex // マルチDEX構成の場合の追加コード
├── res/ // 画像、レイアウトXML、文字列リソース
├── assets/ // フォント、サウンド、データベースなどの生データ
├── lib/ // ネイティブライブラリ(C/C++コード)
│ ├── arm64-v8a/
│ ├── armeabi-v7a/
│ └── x86_64/
├── META-INF/ // デジタル署名と証明書(改ざんチェックに必須)
└── resources.arsc // コンパイル済みリソーステーブルAPKの特徴は、すべてのアーキテクチャと画面サイズ向けのリソースを含んでいること。これにより、どのデバイスでも同じAPKが動作しますが、ファイルサイズが大きくなりがちです。
AAB(Android App Bundle)とは
AABは2021年にGoogleが導入した新しい公開形式です。従来のAPKとは異なり、AABはインストール可能なファイルではなく、Google Playが各デバイスに最適化されたAPKを生成するための「設計図」です。開発者はAABファイルをGoogle Playにアップロードし、Google Playが端末の特性に合わせて必要な部分だけを含むAPKを生成・配信します。
AABの構造には「機能モジュール」という概念があり、アプリの一部をオンデマンドでダウンロードできるように設計されています。これにより、ゲームのステージや追加機能を、ユーザーが必要になった時だけダウンロードする「オンデマンド配信」が可能になります。
APKとAABの核心的な違い
| 項目 | APK | AAB |
|---|---|---|
| 説明 | 直接インストール可能なパッケージ | Google PlayがAPKを生成するための公開用フォーマット |
| インストール | 直接サイドローディング可能 | 単体ではインストール不可、Google Play経由が必要 |
| ファイルサイズ | すべてのリソースを含むため大きい | ソースは小さいが、APK生成後に最適化 |
| ユーザーへの配信サイズ | すべてのユーザーに同一サイズ | デバイスごとに最適化され、15~30%削減 |
| 対応Androidバージョン | すべてのバージョンに対応 | Android 5.0(API 21)以上 |
| モジュール配信 | 不可 | 可能(オンデマンド機能配信) |
ユーザーへの影響:知っておくべきこと
AABへの移行は、エンドユーザーにとっては基本的に透過的です。Google Playからアプリをインストールする場合、従来と変わらない体験が得られます。むしろ、ファイルサイズが最適化されることでダウンロードが速くなり、ストレージの節約になるというメリットがあります。
ただし、AABは直接インストールできないため、APKファイルをサイドローディングしたい場合には注意が必要です。gptoapk.comのようなツールを使えば、AABから自動的に互換性のあるAPKを生成してダウンロードできるため、この制限を簡単に回避できます。
bundletoolでAABをAPKに変換する方法
開発者や上級ユーザー向けに、Google公式のbundletoolを使う方法も紹介します:
// bundletoolをダウンロード
wget https://github.com/google/bundletool/releases/latest/download/bundletool-all.jar
// AABからAPKセットを生成
java -jar bundletool-all.jar build-apks \
--bundle=app.aab \
--output=app.apks \
--mode=universal
// 生成されたAPKセットをZIPとして展開
unzip app.apks -d app-apks/
// universal.apk が展開フォルダ内に生成されますこの方法で生成されたAPKは、Google Playが配信するものと同一の、署名済みのAPKファイルです。
よくある質問(FAQ)
APKは今後使えなくなりますか?
いいえ。AABは公開用フォーマットであり、最終的にユーザーがインストールするのはAPKファイルです。APK形式自体は引き続き使われます。
AABのAPK変換は合法ですか?
はい。個人利用のために変換することは合法です。
AABとAPK、どちらが安全ですか?
どちらも適切に署名されていれば同じレベルの安全性を持ちます。
どのAPKダウンローダーがAABに対応していますか?
gptoapk.comはAABから自動的に互換APKを生成してダウンロードできます。
AABもAPKも、gptoapk.comにお任せ
gptoapk.comならAABからもAPKを自動生成。Google Playのリンクを貼り付けるだけで、いつでもAPKをダウンロードできます。
APKダウンローダーを試す