2013.08.08
【Android NDK】ファイルの保存方法をまとめる
大きく分けて2つの保存先があるみたい。
アプリ固有のデータを保存するために用意されているディレクトリ。
フルパスは以下の場所になります。
/data/data/(パッケージ名)
この中のファイル量がアプリケーション情報のデータに表示される。
データの消去を行なうとこの中のファイルが全て削除される。
SDKでは相対パスを指定すると、この中にfilesディレクトリを作り
そこへ保存するようになっているぽい。
なのでSDKを使わない限りfilesが作られないということ。
NDKで処理するときには注意すること。
adbでこのディレクトリ内を見ようとするとパーミッションの関係で見ることができない。
しかし、パスがわかっているのであればcdで移動可能だし、catで内容も確認できる。
自分のパッケージ名はActivity内でgetPackageName()を実行すると取得できる。
Link:Context | Android Developers
root権限を取らない限り内容はほぼ見れないと思うので
セーブデータやパスワードなどの保存などに使うといいのではないか?
ユーザー側で閲覧できたり、任意に保存ができたりするフォルダ。
USBでつなぐと見れるものがそれにあたります。
パスは Environment.getExternalStorageDirectory() で取得可能。
Link:Environment | Android Developers
内部(本体メモリ)と外部(つけたSDカード等)のどちらが帰ってくるかはわからないらしい。
読み込みについては特に権限は必要ないが、
書き込むためには権限が必要になります。
AndroidManifest.xml以下の記述が必要です。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
用途としてはアプリとユーザーがやり取りするデータに使うとよさげ。
Jpegとかの画像系など。
ここまでわかれば後はC言語でおなじみのfopen関係の処理で
ファイル操作が出来るようになります。
関連記事