Как просмотреть файл общих настроек с помощью Android Studio?

Я использую общие настройки для хранения определенных значений для своего приложения. Я хотел бы видеть файл, где информация фактически хранится на моем телефоне. Я нашел много способов сделать это на 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/ для доступа к общим настройкам, когда ваше приложение находится в режиме отладки. Нет рута

Особенности:

  1. просматривать и редактировать общие настройки
  2. просматривать и редактировать sqLite db
  3. просмотр просмотр иерархии
  4. отслеживать http-запросы сети
  5. просмотр потока с экрана устройства
  6. и многое другое....

enter image description here

Базовая настройка:

  1. в build.gradle добавьте compile 'com.facebook.stetho:stetho:1.5.0'
  2. в приложении onCreate() добавьте Stetho.initializeWithDefaults(this);
  3. в Chrome на вашем компьютере перейдите в chrome://inspect/

ОБНОВЛЕНИЕ: Flipper

Flipper - более новая альтернатива от Facebook. Он имеет больше функций, но на данный момент запись доступна только для Mac, его немного сложнее настроить, и ему не хватает отладки базы данных, в то же время добавлен чрезвычайно расширенный инспектор компоновки

Вы также можете использовать предложение @Джеффри:

  • Открыть проводник по устройству (в правом нижнем углу экрана)
  • Перейдите в data/data/com.yourAppName/shared_prefs

Ответ 3

Обозреватель файлов устройств, который является частью Android Studio 3.x, действительно хорош для изучения ваших файлов предпочтений, элементов кэша или базы данных.

  1. Общие настройки /data/data// каталог shared_prefs

enter image description here

Это выглядит примерно так

enter image description here

Чтобы открыть Обозреватель файлов устройства:

Нажмите "Вид"> "Окна инструментов"> "Проводник файлов устройств" или нажмите кнопку "Проводник файлов устройств" на панели инструментов.

enter image description here

Ответ 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. Откройте монитор устройства, щелкнув по нему.

enter image description here

Затем вам нужно выбрать вкладку "Проводник" на мониторе устройства. Найдите папку с данными и найдите в ней другую папку данных. Он будет содержать папку, имеющую имя вашего пакета приложений, и появится желаемый файл SharedPreferences.xml.

enter image description here

Выберите файл 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