アプリの特定の値を保存するために共有設定を使用しています。情報が実際に私の電話に保存されているファイルを見たいのですが。 Eclipseでこれを行う多くの方法を見つけましたが、Android Studioでデバッグしています。私の電話は根づいています。これらの種類のファイルを読むには、ルートアクセス権を持つことが重要だと読みました。方法がない場合は、プログラムを介して情報にアクセスする方法を調べ、それをlog catに出力します。しかし、願わくば、ファイルがはるかに単純なので、電話で直接表示できることを願っています。ありがとう。
Android StudioからAndroid Device Monitorを起動し、ファイルエクスプローラーに移動して、「/ data/data/<パッケージの名前>/shared_prefs /」を参照します。そこにXMLがあります...また、検査のためにコピーすることもできます。
ルート化されていないデバイスがある場合、Android Studioから直接実行することはできません。ただし、アプリケーションがデバッグバージョンである限り、adb Shell
を使用してファイルにアクセスできます。
adb Shell
run-as your.app.id
chmod 777 shared_prefs/your.app.id_preferences.xml
exit # return to default user
cp /data/data/your.app.id/shared_prefs/your.app.id_preferences.xml /sdcard
その後、adbを使用して/ sdcardディレクトリからファイルをプルできます。
http://facebook.github.io/stetho/ を使用して、アプリケーションがデバッグモードのときに共有設定にアクセスできます。 ルートなし
特徴:
基本設定:
compile 'com.facebook.stetho:stetho:1.5.0'
を追加しますStetho.initializeWithDefaults(this);
を追加しますFlipper は、facebookの新しい代替手段です。より多くの機能がありますが、現時点ではMacでしか使用できず、構成がやや難しく、データベースのデバッグ機能がありません。
- デバイスファイルエクスプローラーを開きます(画面右下)
- Data/data/com.yourAppName/shared_prefsに移動します
デバッグ用の特別なアクティビティを作成するだけです:
@SuppressWarnings("unchecked")
public void loadPreferences() {
// create a textview with id (tv_pref) in Layout.
TextView prefTextView;
prefTextView = (TextView) findViewById(R.id.tv_pref);
Map<String, ?> prefs = PreferenceManager.getDefaultSharedPreferences(
context).getAll();
for (String key : prefs.keySet()) {
Object pref = prefs.get(key);
String printVal = "";
if (pref instanceof Boolean) {
printVal = key + " : " + (Boolean) pref;
}
if (pref instanceof Float) {
printVal = key + " : " + (Float) pref;
}
if (pref instanceof Integer) {
printVal = key + " : " + (Integer) pref;
}
if (pref instanceof Long) {
printVal = key + " : " + (Long) pref;
}
if (pref instanceof String) {
printVal = key + " : " + (String) pref;
}
if (pref instanceof Set<?>) {
printVal = key + " : " + (Set<String>) pref;
}
// Every new preference goes to a new line
prefTextView.append(printVal + "\n\n");
}
}
// call loadPreferences() in the onCreate of your Activity.
Android Studio->デバイスファイルエクスプローラー(右下隅)->データ->データ-> {package.id}-> shared-prefs
注:モバイルデバイスをAndroid studioに接続する必要があり、選択したアプリケーションはデバッグモードである必要があります
これは古い投稿ですが、質問はAndroid Studioを使用してSharedPreferences.xml
を表示することに関するものなので、ここにグラフィカルな答えを入れます。だからここに行く。
ツール-> Androidデバイスモニターに移動します。デバイスモニターをクリックして開きます。
次に、デバイスモニターの[ファイルエクスプローラー]タブを選択する必要があります。データフォルダーを探し、その中の別のデータフォルダーを見つけます。アプリケーションパッケージの名前を持つフォルダーが含まれ、必要なSharedPreferences.xml
があります。
SharedPreferences.xml
ファイルを選択し、上の画像の右上隅にあるボタンを使用してコンピューターにファイルをプルして保存します。
デバイスエミュレーターを使用しました。
もう1つの簡単な方法は、携帯電話でルートエクスプローラーアプリを使用することです。
次に、/data/data/package name/shared preferences folder/name of your preferences.xml
に移動し、 ES File Explorer を使用して、sd card
ではなく、デバイスのroot
に移動します。
Android Studio 3:
または Android Debug Database を使用します
複数のShared Preference
ファイルがある場合、ここにそれらのすべてを表示する良い方法がありますが、1つのファイル名だけを渡すこともできます。
loadSharedPrefs("pref_name");
loadSharedPrefs("shared_pref1", "shared_pref2", "shared_pref3");
ニーズに合わせて次のいずれかを選択してください...
public void loadSharedPrefs(String ... prefs) {
// Logging messages left in to view Shared Preferences. I filter out all logs except for ERROR; hence why I am printing error messages.
Log.i("Loading Shared Prefs", "-----------------------------------");
Log.i("----------------", "---------------------------------------");
for (String pref_name: prefs) {
SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
for (String key : preference.getAll().keySet()) {
Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
preference.getString(key, "error!"));
}
Log.i("----------------", "---------------------------------------");
}
Log.i("Finished Shared Prefs", "----------------------------------");
}
public void loadSharedPrefs(String ... prefs) {
// Define default return values. These should not display, but are needed
final String STRING_ERROR = "error!";
final Integer INT_ERROR = -1;
// ...
final Set<String> SET_ERROR = new HashSet<>(1);
// Add an item to the set
SET_ERROR.add("Set Error!");
// Loop through the Shared Prefs
Log.i("Loading Shared Prefs", "-----------------------------------");
Log.i("------------------", "-------------------------------------");
for (String pref_name: prefs) {
SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
Map<String, ?> prefMap = preference.getAll();
Object prefObj;
Object prefValue = null;
for (String key : prefMap.keySet()) {
prefObj = prefMap.get(key);
if (prefObj instanceof String) prefValue = preference.getString(key, STRING_ERROR);
if (prefObj instanceof Integer) prefValue = preference.getInt(key, INT_ERROR);
// ...
if (prefObj instanceof Set) prefValue = preference.getStringSet(key, SET_ERROR);
Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
String.valueOf(prefValue));
}
Log.i("------------------", "-------------------------------------");
}
Log.i("Loaded Shared Prefs", "------------------------------------");
}
}
私のShared Preference
値はすべてString
ですが、これは上記の2つの方法のいずれかを使用した出力です...
I/Loading Shared Prefs﹕ -----------------------------------
I/------------------﹕ -------------------------------------
I/Shared Preference : FAVORITE - 135397﹕ Jurassic World
I/Shared Preference : FAVORITE - 87101﹕ Terminator Genisys
I/Shared Preference : FAVORITE - 177677﹕ Mission: Impossible – Rogue Nation
I/------------------﹕ -------------------------------------
I/Shared Preference : WATCHED - 177677﹕ Mission: Impossible – Rogue Nation
I/Shared Preference : WATCHED - 157336﹕ Interstellar
I/Shared Preference : WATCHED - 135397﹕ Jurassic World
I/Shared Preference : WATCHED - 87101﹕ Terminator Genisys
I/------------------﹕ -------------------------------------
I/Shared Preference : WILL_WATCH - 211672﹕ Minions
I/Shared Preference : WILL_WATCH - 102899﹕ Ant-Man
I/------------------﹕ -------------------------------------
I/Loaded Shared Prefs﹕ ------------------------------------
データを挿入した後、エミュレータでアプリケーションを実行し、アプリケーションを閉じます。
次に、DDMSまたはAndroidモニターを開き、エミュレーターを選択します。右側でファイルエクスプローラーを確認し、その中のDataフォルダーを探し、作成したアプリケーションパッケージを探します。共有設定ファイルを見つけて開き、XMLファイルを表示してクリックし、右上隅のデバイスボタンからファイルをプルをクリックします。
XMLファイルは目的の場所に保存され、notepad ++などのエディターを使用して開き、入力したデータを表示できます。
私はいつもコンソールでこれらのコマンドが便利だと感じています:
正しいファイル名を見つける
adb Shell
ls /data/data/com.your.package/shared_prefs
ファイルをローカルディレクトリに取得する
adb pull /data/data/com.your.package/shared_prefs/the_file_you_want $local_dir
$local_dir
で確認してください。
エミュレータを使用している場合は、次のコマンドを使用して端末にsharedPrefs.xml
ファイルを表示できます。
adb root
cat /data/data/<project name>/shared_prefs/<xml file>
その後、仮想デバイスをルート化したくない場合は、adb unroot
を使用できます。
Android studioで共有preference
を開くには
右側からデバイスエクスプローラーファイルを開きます。data> data>> shared_prefs
詳細については、添付の画像をご覧ください