2013.08.08

【Android NDK】ファイルの保存方法をまとめる

大きく分けて2つの保存先があるみたい。

その1 data内

アプリ固有のデータを保存するために用意されているディレクトリ。

フルパスは以下の場所になります。

/data/data/(パッケージ名)

この中のファイル量がアプリケーション情報のデータに表示される。
データの消去を行なうとこの中のファイルが全て削除される。

SDKでは相対パスを指定すると、この中にfilesディレクトリを作り
そこへ保存するようになっているぽい。
なのでSDKを使わない限りfilesが作られないということ。
NDKで処理するときには注意すること。

adbでこのディレクトリ内を見ようとするとパーミッションの関係で見ることができない。
しかし、パスがわかっているのであればcdで移動可能だし、catで内容も確認できる。

自分のパッケージ名はActivity内でgetPackageName()を実行すると取得できる。
Link:Context | Android Developers

root権限を取らない限り内容はほぼ見れないと思うので
セーブデータやパスワードなどの保存などに使うといいのではないか?

その2 sdcard内

ユーザー側で閲覧できたり、任意に保存ができたりするフォルダ。
USBでつなぐと見れるものがそれにあたります。

パスは Environment.getExternalStorageDirectory() で取得可能。
Link:Environment | Android Developers
内部(本体メモリ)と外部(つけたSDカード等)のどちらが帰ってくるかはわからないらしい。

読み込みについては特に権限は必要ないが、
書き込むためには権限が必要になります。
AndroidManifest.xml以下の記述が必要です。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

用途としてはアプリとユーザーがやり取りするデータに使うとよさげ。
Jpegとかの画像系など。


ここまでわかれば後はC言語でおなじみのfopen関係の処理で
ファイル操作が出来るようになります。

Pocket

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>