ページ

2013/09/06

[Android]assetsとres/rawの違いまとめ

イマイチ違いがわからなかったので調べてみました。
Providing Resources | Android Developers の Table.1 の raw/ についての説明や
Accessing Resources | Android Developersの Access to Original Files によると、
ディレクトリ構造を持たせたかったら assets で、
ビデオやオーディオファイルとかの生データを読み込みたいだけだったら
res/raw を使えって感じみたい。


assets res/raw
ファイルへのアクセス AssetsManager経由など resId(R.raw.filename)をメソッドに渡すなど
ファイル名の制限 なし [a-z_\.]+
拡張子による同名ファイルの区別 拡張子も含めてファイルを区別する 同一のファイル名の場合、
filenameに拡張子が含まれず
区別できないのでエラー
ディレクトリの作成 ◯(アンダーバー始まりのディレクトリはビルドに含まれない) ×
未圧縮ファイルの容量制限 1MB ~ 2MB なし?
アプリからの書き込み × ×
res/raw には 100MB 以上の動画とか入っていてもビルドはできた。
しかし、Google Play は apk 容量が 50MB までなのでリリースができない。

いまいちドキュメントにも書かれていないので俺はメンドいから嫌なので誰か確認用サンプルアプリ作って下さい。

参考:
任意データの置き場所は、/assets or /res/raw? - 整理できない底辺プログラマのメモブログ
[android] rawとassetsの使い分け | uni開発ブログ
Androidアプリ開発Tips「assetsフォルダ内で利用できない名前」 Intelligent Technology's Technical Blog
assetsフォルダには1MB以上の非圧縮ファイルを設置できない - [Androidアプリ/Android] ぺんたん info