Я использую общие настройки для хранения определенных значений для своего приложения. Я хотел бы видеть файл, где информация фактически хранится на моем телефоне. Я нашел много способов сделать это на Eclipse, но я отлаживаю на Android Studio. Мой телефон укоренен. Я прочитал, что для доступа к этим типам файлов важно иметь корневой доступ. Если нет способа, я посмотрю, как получить доступ к информации через мою программу, а затем вывести ее в журнал cat. Надеюсь, что я могу просто просмотреть файл на телефоне напрямую, поскольку он намного проще. Спасибо.
Ответ 1
Из Android Studio запустите Android Device Monitor, зайдите в File Explorer и просмотрите "/data/data/< имя вашего пакетa > /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
После этого вы можете вытащить файл из каталога /sdcard с помощью adb.
Ответ 2
Stetho
Вы можете использовать http://facebook.github.io/stetho/ для доступа к общим настройкам, когда ваше приложение находится в режиме отладки. Нет рута
Особенности:
- просматривать и редактировать общие настройки
- просматривать и редактировать sqLite db
- просмотр просмотр иерархии
- отслеживать http-запросы сети
- просмотр потока с экрана устройства
- и многое другое....
Базовая настройка:
- в build.gradle добавьте
compile 'com.facebook.stetho:stetho:1.5.0'
- в приложении onCreate() добавьте
Stetho.initializeWithDefaults(this);
- в Chrome на вашем компьютере перейдите в chrome://inspect/
ОБНОВЛЕНИЕ: Flipper
Flipper - более новая альтернатива от Facebook. Он имеет больше функций, но на данный момент запись доступна только для Mac, его немного сложнее настроить, и ему не хватает отладки базы данных, в то же время добавлен чрезвычайно расширенный инспектор компоновки
Вы также можете использовать предложение @Джеффри:
- Открыть проводник по устройству (в правом нижнем углу экрана)
- Перейдите в data/data/com.yourAppName/shared_prefs
Ответ 3
Обозреватель файлов устройств, который является частью Android Studio 3.x, действительно хорош для изучения ваших файлов предпочтений, элементов кэша или базы данных.
- Общие настройки /data/data// каталог shared_prefs
Это выглядит примерно так
Чтобы открыть Обозреватель файлов устройства:
Нажмите "Вид"> "Окна инструментов"> "Проводник файлов устройств" или нажмите кнопку "Проводник файлов устройств" на панели инструментов.
Ответ 4
Вы могли бы просто создать специальное действие для цели отладки:
@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.
Ответ 5
Android Studio → Device File Explorer (правый нижний угол) → данные → данные → {package.id} → shared-prefs
Примечание. Вам необходимо подключить мобильное устройство к студии Android, а выбранное приложение должно быть в режиме отладки
Ответ 6
Это старая должность, но я, однако, должен поставить здесь графический ответ, поскольку речь идет о просмотре SharedPreferences.xml
с помощью Android Studio. Итак, вот оно.
Перейдите в Инструменты → Android Device Monitor. Откройте монитор устройства, щелкнув по нему.
Затем вам нужно выбрать вкладку "Проводник" на мониторе устройства. Найдите папку с данными и найдите в ней другую папку данных. Он будет содержать папку, имеющую имя вашего пакета приложений, и появится желаемый файл SharedPreferences.xml
.
Выберите файл SharedPreferences.xml
а затем вытащите и сохраните файл на своем компьютере с помощью кнопки, помеченной в правом верхнем углу изображения выше.
Я использовал эмулятор устройства.
Ответ 7
Еще один простой способ - использовать приложение root explorer на вашем телефоне.
Затем перейдите к /data/data/package name/shared preferences folder/name of your preferences.xml
, вы можете использовать ES File explorer и перейти к root
вашего устройства, а не sd card
.
Ответ 8
Файлы с одним или несколькими файлами общего доступа
Если у вас несколько файлов 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", "------------------------------------");
}
}
Выход Logcat
Мои Shared Preference
значения - это все String
, но это результат с использованием одного из двух методов выше...
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﹕ ------------------------------------
Ответ 9
В Android Studio 3:
- Откройте проводник файлов устройств (справа внизу экрана).
- Перейдите к data/data/com.yourAppName/shared_prefs.
или использовать Android Debug Database
Ответ 10
Запустите приложение в эмуляторе после ввода некоторых данных, просто закройте приложение.
Теперь откройте DDMS или Android Monitor и выберите свой эмулятор, с правой стороны вы увидите File Explorer, найдите папку данных и найдите свой пакет приложений, который вы создали, в котором вы можете найти общий файл предпочтений откройте его, вы можете увидеть XML файл, щелкнуть его и щелкнуть мышью по вытаскиванию файла с помощью кнопки устройства в верхнем правом углу.
Файл XML будет сохранен в нужном месте, затем вы можете открыть его с помощью любого редактора, например, блокнота ++, и можете просмотреть введенные данные.
Ответ 11
Я всегда нахожу эти команды полезными в консоли:
-
Найдите правильное имя файла
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
.
Ответ 12
Если вы используете эмулятор, вы можете увидеть файл sharedPrefs.xml
на терминале с помощью следующих команд:
-
adb root
-
cat/data/data/<project name>/shared_prefs/<xml file>
после этого вы можете использовать adb unroot
если вы не хотите, чтобы виртуальное устройство было укоренено.
Ответ 13
Открыть расшаренный preference
в андроид студии
Откройте файл проводника устройства из правых side- данных> данных>> shared_prefs
найти прикрепленное изображение для более подробного описания
Ответ 14
В проводнике файлов устройств следуйте по следующему пути: -
/data/data/com.**package_name**.test/shared_prefs/com.**package_name**.test_preferences.xml