Android実機で/data以下のファイルを確認する openFileOutputでファイル作成したらこの方法でチェックしよう

Androidでファイル操作をする簡単な方法は、ActivityクラスのopenFileOutput/openFileInputメソッドを使うことです。

これらのメソッドを使うと、Androidの方で自動的にアプリごとに設定された領域にファイルを生成してくれるので楽ちんなわけですね。

で、そのAndroidの方で自動的にアプリごとに設定された領域というのが以下のパスになります。

このパスにopenFileOutput/openFileInputメソッドで指定するファイル名のファイルが作成され、読み込みされます。

Android Device Monitor で確認

どんなファイルができているか確認するには、Android Device Monitorというツールを使うといいでしょう。

Android Device Monitorは、

にあります。

起動して、「File Explorer」というタブに行くと、Androidのディレクトリが丸見えです。

ただ、Android実機でopenFileOutput/openFileInputメソッドを使ってファイルを作成した場合、Android Device Monitorツールでは /data 以下が見えないので、ファイルができてるのかよくわかりません。

DDMS

Permissionの影響ですかね。
これは自動的に設定されるので仕方がないです。

こんなときは、コマンドラインからシェルを使って見に行くことができます。
Unixコマンドが普通に使える人であれば、簡単に使えると思います。

adb shell

Android実機をMacにUSB接続した状態で、「ターミナル」を起動して、次のコマンドを打ちます。

なお、ここで使う「adb」のあるパスはこちらになります。

このパスに移動してから「adb shell」を実行してくださいね。

run-as アプリのパッケージ名

特にエラーなどなさそうなら、次のコマンドを打ちます。

アプリごとに自動的に設定される領域なので、アプリのパッケージ名を指定するだけで当該領域が確認できるのでしょう。

エラーなどなさそうなら、「/data/data/パッケージ名」がカレントディレクトリになっていますので、

でファイルの中身を見ることができます。

「ls」も使えますので、どんなファイルができているのか確認してもいいでしょう。

ちょっとわかりづらいかもしれませんが、こんな感じで確認できますよ、というスクリーンショットを貼っておきます。

コンソールから実行

おわりに

Android実機でファイル作成してみたところ、Android Device Monitorではファイルが作られているのかよくわからなくて、ちょっとハマっちゃいました (^^;

おそらく /data のPermissionが影響していると思うのですが・・・

コマンドラインでAndroid実機に突入したら普通に見えました。
ちゃんとファイルができていて、内容が書き込まれていることが確認できました。

ちょっと手間がかかりますが、ちゃんとファイルができていることがわかったらOKでしょう。

なお、「SQLiteOpenHelper」でDBファイルを作ったときも同じパスにファイルが作られますので、こちらで紹介した方法でファイルの存在を確認することができます。

元大手電機メーカのシステムエンジニア。
詳しくはこのサイトについての「サイト管理者について」をご覧ください。

無料メールセミナー