Device File Explorer
AndoridStudio3.0以降はこれを使うのが便利。
- メニューから View > Tool Windows > Device File Explorer
- 目当てのパッケージの箇所を拡げる /data/data/[package-name]
- shared_prefs を開く
debugビルドのアプリしか中身は見れないので注意
以下は付録
##そもそもAndroidでのSharedPreferencesとは
データをxml形式でファイルに保存する、永続化のための仕組みの一つ。
iOSで言えばNSUserDefaultsを使うのと同じようなもの。
##以下のコードがあるとして
SharedPreferences preferenceService = PreferenceManager.getDefaultSharedPreferences(context);
preferenceService.edit().putString("hogehoge", "foofoo").commit();
contextはアプリケーションコンテキスト
上記のコードでプリファレンスに保存した場合
##保存パス
パッケージ名がjp.co.hoge.hoge だとすると
/data/data/jp.co.hoge.hoge/shared_prefs/jp.co.hoge.hoge_preferences.xml
##パッケージ名_preferences.xmlの形式
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="hogehoge">foofoo</string>
</map>
##保存した値の読出し
SharedPreferences preferenceService = PreferenceManager.getDefaultSharedPreferences(context);
String foo = preferenceService.getString("hogehoge" , null);
##保存したファイルの中身を確認したい場合
アプリの実機でのデバッグ時に、SharedPreferencesの内容を確認する方法
##前提
対象アプリがデバッグモードであること
ターミナルでadb コマンドを使えること(PATHが通っていること)
1.adb shellを実行
2.run-asコマンドでアプリを起動しdataディレクトリに入る
上記コマンドを実行すると /data/data/[対象アプリのパッケージ名]/ へカレントディレクトリが移動し、files,databases,shared_prefs ディレクトリが見えるようになります。
3.SharedPreferencesが保存されているディレクトリに移動
SharedPreferencesはshared_prefs配下にxmlで保存されています。
4.SharedPreferencesの内容の確認
対象ファイルをローカルPCにコピーする場合
# jp.ne.hogehoge は任意のパッケージ名とする
# /storage/sdcard0 は端末内の任意の保存場所とする
adb -d shell "run-as jp.ne.hogehoge cp /data/data/jp.ne.hogehoge/shared_prefs/jp.ne.hogehoge_preferences.xml /storage/sdcard0/jp.ne.hogehoge_preferences.xml"
# データファイルをPCに保存
adb pull /storage/sdcard0/jp.ne.hogehoge_preferences.xml ./jp.ne.hogehoge_preferences.xml
この方がPCの好きなエディタで確認できる。