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



コメント欄を表示する

おススメ

WEB+DB PRESS総集編[Vol.1~102] (WEB+DB PRESS plusシリーズ)

知識の幅を広げたい人は必携

【防水進化版 IPX6対応】SoundPEATS(サウンドピーツ) Q30 Bluetooth イヤホン 高音質 [メーカー1年保証] 低音重視 8時間連続再生 apt-Xコーデック採用 人間工学設計 マグネット搭載 CVC6.0ノイズキャンセリング マイク付き ハンズフリー通話 ブルートゥース イヤホン IP66防塵防水 ワイヤレス イヤホン Bluetooth ヘッドホン (ブラック)

ワイヤレスはやっぱり便利

Kindle Paperwhite Wi-Fi、ブラック

読みたいときに読みたい本を読めるのが嬉しい

超小型65W ノートPC汎用 ACアダプター FINsix ”Dart” (シルバー)超軽量85g 11種類の変換プラグで1000機種以上のノートPCに対応 USB5V出力付きでPCとスマホ同時充電 ※必ずご使用のPCとの互換性をご確認ください。『PSE認証済』

持ち運びに最適な小型軽量ACアダプタ