¿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.
- Preferencias compartidas vs base de datos
- Leer la preferencia compartida cuando se cambia el contexto
- Preferencias compartidas de Android en diferentes aplicaciones
- Acceso a SharedPreferences mediante métodos estáticos
- Compartir preferencias o almacenamiento de archivos internos - ¿Algún problema de memoria?
- Loader onLoadFinished () no se llama
- SharedPreferences putStringSet no funciona
- El valor SharedPreferences no se actualiza
- Cómo almacenar Hashmap en Android para que se reutilice cuando la aplicación se reinicie con las preferencias compartidas?
- Cómo iterar a través de todos los objetos Bundle
- Android-maven-plugin: método de despliegue que no elimina SharedPreferences
- onSharedPreferenceChanged no se disparó todo el tiempo
- Android: copiar / duplicar las preferencias compartidas
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:
- Ver y editar las preferencias compartidas
- Ver y editar sqlite db
- Vista ver heirarchy
- Supervisar las solicitudes de red http
- Ver flujo desde la pantalla del dispositivo
- y más….
Configuración básica:
- En la build.gradle add
compile 'com.facebook.stetho:stetho:1.5.0'
- En la aplicación onCreate () agregue
Stetho.initializeWithDefaults(this);
- 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:
-
Encuentra el nombre de archivo correcto
adb shell
ls /data/data/com.your.package/shared_prefs
-
Obtener el archivo en el directorio local
adb pull /data/data/com.your.package/shared_prefs/the_file_you_want $local_dir
-
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.
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.
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.
- Cómo deshabilitar / ocultar el indicador de tres puntos (indicador de menú opcional) en los teléfonos ICS
- Reduciendo el tamaño de la aplicación para Android (apk)