Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo ver el archivo de preferencias compartidas con Android Studio?

Estoy usando las preferencias compartidas para almacenar ciertos valores para mi aplicación. Me gustaría ver el archivo donde la información realmente se almacena en mi teléfono. He encontrado muchas maneras de hacer esto en Eclipse, pero estoy depurando en Android Studio. Mi teléfono está enraizado. He leído que tener acceso root es importante para leer estos tipos de archivos. Si no hay manera, entonces buscaré cómo acceder a la información a través de mi programa a continuación, la salida de registro de gato. Espero que, sin embargo, sólo puedo ver el archivo en el teléfono directamente, ya que es mucho más simple. Gracias.

  • Cómo burlar una SharedPreferences usando Mockito
  • Android - ¿Cómo usar SharedPreferences en la clase non-Activity?
  • La aplicación sigue olvidando las preferencias compartidas al reiniciar
  • ¿Cómo leer las SharedPreferences de otra aplicación (el mismo ID de usuario)?
  • Guardar paquete con SharedPreferences
  • Hacer que una actividad aparezca sólo una vez, cuando se inicia la aplicación
  • SharedPreferences no se actualiza
  • Guardar en SharedPreferences desde DialogPreference personalizado
  • 8 Solutions collect form web for “¿Cómo puedo ver el archivo de preferencias compartidas con Android Studio?”

    Desde Android Studio, inicie Android Device Monitor, vaya a File Explorer y explore "/ data / data / <nombre del paquete> / shared_prefs /". Usted encontrará el XML allí … y también se puede copiar para su inspección.

    Si tiene un dispositivo no enraizado, no es posible hacerlo directamente desde Android Studio. Sin embargo, puede acceder al archivo con adb shell siempre y cuando su aplicación sea la versión de depuración.

     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 

    Después de eso, puede extraer el archivo del directorio / sdcard con adb.

    Puede utilizar http://facebook.github.io/stetho/ para acceder a sus preferencias compartidas mientras su aplicación está en el modo de depuración. Sin raíz

    caracteristicas:

    1. Ver y editar las preferencias compartidas
    2. Ver y editar sqlite db
    3. Vista ver heirarchy
    4. Supervisar las solicitudes de red http
    5. Ver flujo desde la pantalla del dispositivo
    6. y más….

    Introduzca aquí la descripción de la imagen

    Configuración básica:

    1. En la build.gradle add compile 'com.facebook.stetho:stetho:1.5.0'
    2. En la aplicación onCreate () agregue Stetho.initializeWithDefaults(this);
    3. En Chrome en tu PC, ve al chrome: // inspecciona /

    Usted podría simplemente crear una actividad especial para el propósito de depuración:

     @SuppressWarnings("unchecked") public void loadPreferences() { 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; } // create a TextView with printVal as text and add to layout } } 

    Otra forma sencilla sería utilizar una aplicación de explorador de raíz en tu teléfono.

    A continuación, vaya a /data/data/package name/shared preferences folder/name of your preferences.xml , puede utilizar ES File explorer , y vaya a la root de su dispositivo, no la sd card .

    Archivos de preferencias compartidas individuales o múltiples

    Si tiene varios archivos de Shared Preference , aquí hay una buena manera de mostrarlas todas, pero también puede pasar un nombre de archivo.

    • loadSharedPrefs("pref_name");

    • loadSharedPrefs("shared_pref1", "shared_pref2", "shared_pref3");

    Elija una de las siguientes opciones para satisfacer sus necesidades …

    Valores de un solo tipo

     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", "----------------------------------"); } 

    Valores de tipo múltiple

     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", "------------------------------------"); } } 

    Salida Logcat

    Mis valores Shared Preference son todos String , pero esta es la salida utilizando cualquiera de los 2 métodos anteriores …

     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﹕ ------------------------------------ 

    Siempre encuentro estos comandos útiles en la consola:

    1. Encuentra el nombre de archivo correcto

      adb shell

      ls /data/data/com.your.package/shared_prefs

    2. Obtener el archivo en el directorio local

      adb pull /data/data/com.your.package/shared_prefs/the_file_you_want $local_dir

    3. Compruébelo en su $local_dir .

    Ejecute la aplicación en Emulator después de insertar algunos datos, sólo cierre la aplicación.

    Ahora abra el Monitor de DDMS o Android y seleccione su emulador, en el lado derecho puede ver el Explorador de archivos, busque la carpeta Datos en él y busque el paquete de aplicaciones que ha creado, en el que puede encontrar el archivo de preferencias compartidas abierto , Puede ver el archivo XML, haga clic en él y haga clic en el extraer un archivo desde el botón del dispositivo en la esquina superior derecha.

    El archivo XML se guardará en la ubicación deseada y, a continuación, podrá abrirlo utilizando cualquier editor como el bloc de notas ++ y podrá ver los datos introducidos.

    Esta es una antigua publicación, pero creo que debo poner una respuesta gráfica aquí, ya que la pregunta es acerca de la visualización de SharedPreferences.xml con Android Studio. Así que aquí va.

    Vaya a Herramientas -> Android Device Monitor. Abra el monitor del dispositivo haciendo clic en él.

    Introduzca aquí la descripción de la imagen

    A continuación, debe seleccionar la pestaña Explorador de archivos en el monitor del dispositivo. Encuentre la carpeta de datos y busque otra carpeta de datos dentro de ella. Contendrá una carpeta con el nombre de su paquete de aplicación y habrá el SharedPreferences.xml deseado.

    Introduzca aquí la descripción de la imagen

    Seleccione el archivo SharedPreferences.xml y luego tire y guarde el archivo en su computadora usando el botón marcado en la esquina superior derecha de la imagen de arriba.

    He utilizado un emulador de dispositivo.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.