ストレージリソース

Android用語集

カテゴリー: リソース  閲覧数:490 配信日:2014-03-24 08:25


Database(Content Provider)


SQLite を用いたデータベース
・ContentProvider というインタフェースを用意することで、他のAndroidアプリ向けにモデルを提供出来るようになる
・OS 標準では、ギャラリーやカレンダーなどのデータベースへのインタフェースとして ContentProvider が利用されている
・通常、ContentProvider で提供されているリソースのアクセスは、ContentResolver オブジェクトを介して行う

・Android のファイルシステムの中では、以下のディレクトリに、SQLite3 のデータベースファイルが指定した名前で格納される
/data/data/(package name)/databases


SharedPreferences


アプリ内で共有する設定ファイルのモデル
・中身は XML ファイル
・各種プリミティブ型と String 型、Set 型のデータを格納することが可能
・SharedPreferences の XML ファイルへのアクセス権限を設定することができ、他のアプリからも見える形にすることも可能だが、セキュリティホールの原因となるため、自分のアプリ以外からはアクセスできないように設定するべき

・Android のファイルシステムの中では、以下のディレクトリに、指定した名前で保存される(一部端末で、保存場所が違うことによる不具合が報告されている)
/data/data/(package name)/shared_prefs


Internal Storage


内部ストレージ
・データベースファイルや XML ファイル以外に、直接内蔵メモリにファイルを保存するインタフェースも用意されている
・デフォルトでは、アクセス権限は自分のアプリのみしか持っていないが、SharedPreferences 同様他のアプリからもアクセスデキるようにすることが可能(非推奨)。
・Android では、標準の API として、Internal Storage を使ったキャッシュの仕組みを公開している
・Internal Storage の容量が少なくなると、システムが自動的にキャッシュファイルを削除するようになるが、自前でアプリが利用するキャッシュファイルの管理(総容量の管理、CRUD)をするべき


External Storage


外部ストレージ
・SD カードや、外部ストレージ扱いの内蔵メモリを扱うことが可能
・外部ストレージに配置するファイルにはアクセス権限の設定がないので、どのアプリからでも読み取ることが可能
・このため、秘匿すべきデータを外部ストレージに書き込むべきではない

・また、外部ストレージは取り外し可能な場合があるため、常にアクセス可能とは限らない
・SD カードのようなメディアを取り外す以外に、ストレージ扱いで USB 接続中や電源を入れた直後も、SD カードがマウント状態とはならない為、External Storage にアクセスできなくなる

・External Storage のデータは、以下に格納される
/sdcard/Android/data