Android App BundleとPlay Asset Deliveryの概要を簡単にまとめます。
はじめに - 今後は使われないOBB
まずAndroid App Bundle(AAB)やPlay Asset Delivery(PAD)の話をする前に、
前提知識としてOpaque Binary Blob (OBB)について触れておきます。
Google PlayにアップロードできるAPKのサイズには100MBという制限があるのですが、
OBBはこれに収まりきらないリソースを拡張ファイルとしてGoogle Playにアップロードできる機能です。
OBBにしたリソースは基本的にアプリと一緒にダウンロードされるため、
ユーザがアプリを起動する時には拡張ファイルも含めた全てのリソースが揃っている状態になります。
Unityでも以下のようにOBBのサポートが入っています。
さてこのOBBですが、後述するAABとは一緒に使うことができない機能となっています。
Android App Bundle は APK 拡張(*.obb)ファイルに対応していません
Android App Bundle について | Android Developers より
そして、2021年8月以降に新規公開するアプリについてはAABの対応が必須となります。
つまりこれらのことを踏まえると、2021年8月以降、新規公開するアプリについてはOBBはもはや使われない仕組みであると言えます。
Android App Bundle
さてそれでは前節で出てきたAndroid App Bundle(AAB)とは何者でしょうか。
AAB登場以前のAPKの仕組みでは、多様なデバイスや環境のためのリソースを全て一つのAPKに含んでいました。
つまり、全てのユーザが、本来自分の環境には不要なデータまで含んだAPKをインストールしていました。
この状況を改善するためにDynamic Deliveryと呼ばれる仕組みが作られました。
Google PlayにAAB形式のファイルをアップロードすると、そこから自動的に各ユーザに適したAPKが生成される仕組みになっています。
Android Developers Blog: I/O 2018: Everything new in the Google Play Console より
この仕組みによりユーザは自身の環境に適したリソースだけをインストールできるようになりました。
またAABにした場合にはファイル容量の制限がAPKよりも少し緩くなり、150MBまでになります。
Unityでは設定値を変えるだけでAABを出力できるようになっています。
Play Asset Delivery
さて前述の通り、AABはOBBに対応していません。
つまり、AABの上限150MBを超えた際に拡張ファイルであるOBBにリソースを逃すといったことができません。
こういったケースでOBBの代わりに使うのがPlay Asset Delivery(PAD)です。
PADを使うとトータルで2GBまでのファイルをGoogle Playにアップロードすることができます。
【2024/12/16 追記】
現在はトータルで 8GB までになっています。最新情報はこちら
アップロードしたファイルは以下のタイミングで柔軟に配信できます。
- install-time: ゲームのインストールと一緒に
- fast-follow: ゲームのインストール直後
- on-demand: リクエストされたときに
アップロードできる上限の仕様は以下の通りです。
- install-time: 1GB
- fast-follow: 512MB
- on-demand: 512MB
- アセットパック(ファイル)は最大50個
またUnityでPADをビルドするための仕組みもGoogle側で用意されています。
が、Unity公式でも対応が行われているようです。(後ほどまとめます)
参考
https://forum.unity.com/threads/using-addressables-along-with-google-play-asset-delivery.905831/forum.unity.com