アプリで画像やXMLを利用するには res/drawable や res/value res/xml に配置してリソースIDを使用するよう決められているがそれ以外のファイルはassetsフォルダとres/raw どちらに配置するか迷った。
が、規約があった。
要はこういうこと
【assetsフォルダ】
・アプリから保存可能!!
・ディレクトリ構造可能(フォルダ作成可能)
・リソースIDが振られないので引数に使用するAPIには使用できない
・URLを引数とするAPIに「file:///android_asset/」として使える
【res/rawフォルダ】
・アプリからの保存不可
・ディレクトリ構造不可
・res/raw-en res/raw-hdpiのように解像度・言語別に端末自動判別してくれる機能が使える
・リソースIDがコンパイル時に振られるので引数に使うAPIに使用できる。
※特に音楽やビデオファイルの場合はAPIがリソースIDを求められることが多いし、公式でここ指定されている
・URLとしては取れないので引数をURLとするには一旦assetやテ゛ータフォルタ゛に保存する必要がある ←俺追加
↑ごめんちゃい。ContentProviderでできました。
ちなみにアプリ固有なバイナリファイルを読み込む場合はここに「you might consider saving some resources in the assets/ directory (instead of res/raw/). 」
※俺訳:リソース(リソースID関連のソース・動作メモリ)を節約できるのでres/rawよりassetsを検討しる
とあったのでメテ゛ィアファイルやXMLのような特定のファイル形式でなく、解像度・言語別判別を使わないのならばassetsフォルダのほうがいいみたい
【おまけ】
フォントファイル(ttf)をアプリから使用する時のようにリソースIDが全く使えず、AssetManagerを優先するAPI
もあるので注意
0 件のコメント:
コメントを投稿