アプリのサイズは技術的な品質の重要な要素であり、アプリのインストールやアンインストールの指標に影響する可能性があります。Google Play には、アプリや動的コンテンツ(機能モジュールやアセットパックなど)のサイズ上限もあります。アプリのサイズをできるだけ継続的に最適化できるよう、この記事では Google Play のサイズ上限について詳しく説明するとともに、Google Play Console を使用してアプリのサイズを把握する方法についても説明します。
アプリのサイズについて
アプリのダウンロード サイズとインストール サイズは、それぞれインストール成功率とアンインストール数に影響を与える可能性があるため、定期的に監視し、どうしたらより小さくできるかを理解することが重要です。2 つのサイズの違いは次のとおりです。
- アプリのダウンロード サイズ: Google Play でユーザーがダウンロードするアプリのサイズ。アプリのダウンロード サイズが大きいほど、ダウンロードに時間がかかります。
- デバイス上のアプリのサイズ: アプリのインストールに必要な容量。アプリはダウンロード時には圧縮されているため、通常はインストール サイズのほうがダウンロード サイズよりも大きくなります。アプリのインストール サイズが大きいほど、インストールに必要なデバイス上の容量が増えます。アプリ起動後に必要なディスク上のサイズは、アプリの使用状況によって異なります。
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 |
on-demand または fast-follow で配信されたアセットパックの合計 |
4 GB* |
* ゲーム向け Google Play パートナー プログラムに参加しているデベロッパーは、追加のアセットパックを配信できます。on-demand および fast-follow で配信されるアセットパックの合計サイズは、4 GB ではなく 30 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)が適用されます。
アプリのダウンロード サイズやインストール サイズを確認する
アプリを製品版トラックでリリースした後、次の手順でダウンロード サイズとインストール サイズを確認できます。
- Google Play Console を開き、[アプリのサイズ] ページ([モニタリングと改善] > [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 以外のコードです。
- その他: アプリ内のその他のファイルです。
- デバイス上のアプリのサイズの内訳には、以下も表示されます。
- 抽出されたネイティブ ライブラリ: ネイティブ ライブラリが APK で圧縮されている場合、アプリを実行するにはローカル ストレージにネイティブ ライブラリを抽出する必要があります。
- 最適化された DEX: パフォーマンス向上のために Android ランタイムによってネイティブ コードに変換された DEX コードです。