SharedPreferencesに出力したデータの保存場所

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

SharedPreferencesに出力したデータの保存場所と形式 を参照

AndroidでのSharedPreferencesを使ったデータの保存と読込

iOSで言えばNSUserDefaultsを使うのと同じようなもの。

以下のコードがあるとして

SharedPreferences preferenceService = PreferenceManager.getDefaultSharedPreferences(context);
preferenceService.edit().putString("hogehoge", "foofoo").commit();

contextはアプリケーションコンテキスト
上記のコードでプリファレンスを保存した場合

保存パス

/data/data/"パッケージ名"/shared_prefs/"パッケージ名_preference.xml"

パッケージ名がjp.co.hoge.hoge だとすると
/data/data/jp.co.hoge.hoge/shared_prefs/jp.co.hoge.hoge_preference.xml

パッケージ名_preference.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を実行
adb shell

2.run-asコマンドでアプリを起動しdataディレクトリに入る
run-as [対象アプリのパッケージ名]

上記コマンドを実行すると /data/data/[対象アプリのパッケージ名]/ へカレントディレクトリが移動し、files,databases,shared_pref ディレクトリが見えるようになります。

3.SharedPreferencesが保存されているディレクトリに移動
cd shared_pref

SharedPreferencesはshared_pref配下にxmlで保存されています。

4.SharedPreferencesの内容の確認
cat [対象SharedPreferencesのファイル名]

なお、Windowsのコマンドプロンプト上から、日本語が含まれているSharedPreferencesを確認する場合は、中身を確認した際に日本語の部分が文字化けするので、adb shell実行前に「コマンドプロンプトのプロパティ」の「フォント」でMSゴシックを指定し、以下のコマンドを実行してコマンドプロンプトの文字コードをUTF-8にしてください。
chcp 65001

  • この記事は以下の記事からリンクされています
  • KotlinでAndroidからリンク