Android Build
Overview
Androidのビルドについてまとめたセクション
APKとAABの違い
Androidアプリのビルド形式として代表的なものに、APK(Android Package)とAAB(Android App Bundle)がある。
それぞれの特徴と違いは以下の通り。
APK(.apk)
APKはAndroid端末に直接インストール可能なファイル形式。
ビルド時点で必要なすべてのリソースやコードが含まれており、完成された状態のアプリパッケージ。
- メリット
- 端末にそのままインストールできる
- 配布がシンプル(メール、社内ストレージなど)
- デバッグやテストに向いている
- デメリット
- 不要なリソース(複数のABIなど)も含まれている可能性があり、ファイルサイズが大きくなりやすい
- Play Storeでは最適化されない
Fat APK(ファットAPK)
Fat APK(ファットAPK)とは、すべてのCPUアーキテクチャ(ABI)用のバイナリを1つにまとめた大きなAPKファイル。
これ1つでどのAndroid端末でも動作するというメリットがありますが、その分ファイルサイズが大きくなり、ダウンロードやインストール時の負荷が高くなる。
テストや社内配布には便利ですが、公開用としては推奨されない。
Google Playで配布する場合はアプリバンドル(AAB)形式が推奨され、APKで配布する場合も --split-per-abi フラグを使って端末に最適化された分割APKを作ることをおすすめします。
AAB(.aab)
AABは、Google Play向けに最適化された配布形式で、すべてのコードとリソースがまとめられた「アプリの設計図」。
Play Storeがユーザーの端末に応じた最小構成のAPKを自動生成して配信する。
- メリット
- ユーザーごとに最適化されたAPKが配信されるため、ダウンロードサイズ・インストールサイズが小さくなる
- 将来的にPlay Store配布にはこちらが推奨(GoogleもAABを標準に移行中)
- デメリット
- 直接インストールができない(デバイスにインストールするには、Google Playまたは特殊な手順が必要)
- ローカルでの検証やデバッグには不向き
使い分けの目安
- テストや社内配布用途 → APK(Fat APK または
--split-per-abi) - Google Play配信用 → AAB(App Bundle)