LoginSignup
38
42

More than 5 years have passed since last update.

SharedPreferencesに出力したデータの確認

Last updated at Posted at 2015-12-21

Device File Explorer

stackoverflow

AndoridStudio3.0以降はこれを使うのが便利。

  1. メニューから View > Tool Windows > Device File Explorer
  2. 目当てのパッケージの箇所を拡げる /data/data/[package-name]
  3. shared_prefs を開く

debugビルドのアプリしか中身は見れないので注意

以下は付録

そもそもAndroidでのSharedPreferencesとは

データをxml形式でファイルに保存する、永続化のための仕組みの一つ。
iOSで言えばNSUserDefaultsを使うのと同じようなもの。

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

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

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

保存パス

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

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

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

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

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

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

4.SharedPreferencesの内容の確認
cat [対象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の好きなエディタで確認できる。

38
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
42