backport

技術ネタと野球とときどき雑談

Google Playの100MB制限とAPK Expansion Files

2017/06/26
development Android

Google Playには100MBを超えるapkをアップロードできません。

100MBを超えるデータを扱いたい場合のために、Google Playでは拡張ファイル(APK Expansion Files)という仕組みが提供されています。この仕組みを使うと1つのアプリにつき2つの拡張ファイルを保存できます。1つの拡張ファイルのサイズは最大2GB。

ファイルは2つまでなので、多数のファイルを扱いたい場合はobb(Opaque Binary Blob)ファイル化もしくはzipファイル化するのがセオリーです。

obbは複数ファイルをひとまとめにしたディスクイメージのようなもの。apkでobbをマウントし、中に含まれるファイルにアクセスする形となります。zipは普通のzipファイルです。圧縮によってサイズが小さくなりますが、展開処理のコストがかかります。

obbにせよzipにせよ万能ではなく、いくつかの制約があります。

  • obbやzipに含めることができるのは通常はアセット類(画像、動画など)だけで、プログラムそのものを分割することはできない
    • つまり、分割によって外出しできる容量の上限はアセット類の合計となる
  • 拡張ファイルが正しく機能するかどうかのテストを行うためには、アルファ版、ベータ版としてGoogle Playにapkをアップする必要がある
    • 開発中のテストもGoogle Playからの配信が必須ですね...
  • 実装がいろいろと大変
    • obbにせよzipにせよ、ファイルアクセス部分を自前で実装する必要がある
    • ヘルパー的なライブラリは存在するが、それでもそれなりの実装工数がかかる

開発やテストが煩雑になるのはかなりのデメリットだと思います。なるべく100MBに収めるのがベターですね。

参考URL



コメント欄を表示する