アプリのサイズは技術的な品質の重要な要素であり、アプリのインストールやアンインストールの指標に影響する可能性があります。Google Play には、アプリや動的コンテンツ(機能モジュールやアセットパックなど)のサイズ上限もあります。アプリのサイズをできるだけ継続的に最適化できるよう、この記事では Google Play のサイズ上限について詳しく説明するとともに、Google Play Console を使用してアプリのサイズを把握する方法についても説明します。
Google Play のサイズの上限
App Bundle、機能モジュール、アセットパックには、以下のサイズ上限が適用されます。Google Play のサイズ上限はすべて、圧縮後のダウンロード サイズに基づいています。このサイズは、App Bundle のアップロード時に Google Play Console によって計算されます。bundletool コマンドライン ツールを使用すると、Google Play Console にアップロードする前にサイズをより正確に推定できます。このツールでは、Google Play Console の計算と似た(ただし同一ではない)方法が使用されます。
重要: Google Play では、インストールに関する指標を向上させるために、アプリのサイズをできるだけ小さくして最適化することをおすすめします。ほとんどのデベロッパーは、これらのサイズ上限を十分に下回る設定にしています。
|
アプリ コンポーネント |
アプリのダウンロード サイズの上限 |
|---|---|
|
ベース モジュール |
200 MB |
|
個々の機能モジュール |
200 MB |
|
個々のアセットパック |
1.5 GB |
|
すべてのモジュールとインストール時のアセットパックの合計 |
4 GB |
|
オンデマンドまたは fast-follow で配信されたアセットパックの合計 (Level Up プログラムに登録していない、または Android XR のタイトルを配信していないデベロッパーの場合) |
4 GB |
|
オンデマンドまたは fast-follow で配信されたアセットパックの合計 (Level Up プログラムに登録している、または Android XR のタイトルを配信しているデベロッパーの場合) |
30 GB |
Google Play で公開されるアプリの圧縮後の合計ダウンロード サイズの上限は 8 GB です。ただし、Level Up プログラムと Android XR タイトルのゲームは 34 GB です。
前述のサイズ上限に加えて、次の点に注意してください。
- 1 GB を超えるアプリの場合、対象となる最小 SDK バージョンを Android Lollipop(API レベル 21)以降にする必要があります。
- 最小 SDK バージョンが Android Oreo(API レベル 26)以降のアプリの場合、推奨される機能モジュールの最大数は 100 個です。これよりも小さい SDK バージョンをターゲットとする場合、機能モジュールの最大数は 50 個になります。
- 各 App Bundle 内のアセットパックの最大数は 100 個です。
- アプリのサイズが 200 MB を超える場合、ユーザーがモバイルデータ通信を使用して Google Play からアプリをインストールする際に、Android デバイスにインストールするアプリのサイズが大きいことを知らせる非ブロックのダイアログが表示されます。
- App Bundle ではなく APK で公開されているアプリについては、前述のサイズ上限ではなく、従来の APK のサイズ上限(APK の最大サイズ 100 MB)が適用されます。
アプリのダウンロード サイズを確認する
アプリを製品版トラックでリリースした後、[アプリのサイズ] ページ([モニタリングと改善] > [Android Vitals] > [アプリのサイズ])でアプリのダウンロード サイズを確認できます。
[アプリのサイズ] ページには以下のデータが表示されます。
- アプリのダウンロード サイズ: 参照デバイス上でのアプリのサイズと、すべてのデバイス設定におけるアプリのサイズ範囲がわかります。
- 類似アプリとのアプリのダウンロード サイズの比較: アプリのサイズが、類似アプリと比較してどの程度かがわかります。
- [類似アプリのグループを編集] をクリックすると、8~12 個の類似アプリからカスタム グループを作成できます。
- アプリのダウンロード サイズの推移: 時間の経過によるアプリのサイズの変化について、その度合いや、類似アプリと比較しての違いがわかります。
- グラフの右上で、データの表示期間を設定できます。また、右上のチェックボックスを使用して、すべてのデバイス設定におけるアプリのサイズ範囲を表示するかどうかを選択できます。
- 空き容量が 2 GB 未満のアクティブなデバイス: アプリのアクティブ ユーザーのうち、デバイスの残りの保存容量が 2 GB 未満のユーザーの割合です。
- 空き容量が 2 GB 未満のデバイスでのアンインストール: すべてのアクティブなデバイスでのアンインストールのうち、残りの保存容量が 2 GB 未満のアクティブなデバイスでのアンインストールの割合です。
注:
- すべてのサイズは、最新の製品版リリースと
XXXHDPI ARMv8デバイス設定(またはアプリでサポートされているデバイス設定のうちこれに最も近いもの)に基づいて概算されています。 - [空き容量が 2 GB 未満のアクティブなデバイス] および [空き容量が 2 GB 未満のデバイスでのアンインストール] の指標は、過去 30 日間の移動平均に基づいて計算され、アプリに該当すると判断された場合にのみ表示されます。
サイズの内訳を表示する
Android App Bundle を使用してアプリを公開した場合は、過去 5 回のリリースにおけるアプリのダウンロード サイズやインストール サイズに占める各コンポーネントのサイズの内訳を、バンドル バージョン コード別にまとめたグラフが表示されます。
この内訳を見ることで、アプリのどの部分が最もサイズを占めており、どの部分をさらに最適化できるかを特定できます。なお、この内訳は、App Bundle で参照デバイス設定用に生成された APK に基づいて概算したものです。
内訳には、次のデータが表示されます。
- コード / DEX: Android での実行用にコンパイルされたアプリ内のすべての Java または Kotlin コード(DEX 形式)です。
- リソース: リソースには、リソース テーブルと、文字列や画像など、res/ ディレクトリに保存されているコード以外のアプリのコンポーネントが含まれます
- アセット: アセットとは、アプリが使用する assets/ ディレクトリ内の音声ファイルや動画などのその他のファイルです
- ネイティブ ライブラリ: アプリの libs/ ディレクトリ内のネイティブ コードです。これは通常、Java または Kotlin 以外のコードです。
- その他: アプリ内のその他のファイルです