Estoy trabajando en una aplicación de Android que almacena datos en una base de datos SQLite. Mi pregunta es, ¿dónde se almacena este archivo de base de datos en el sistema de archivos cuando está usando un emulador?
He visto que está almacenado en
/data/data/package_name/databases
pero necesito saber en qué parte del disco duro de mi máquina local se asigna realmente. La base de datos persiste en múltiples ejecuciones del emulador, incluso después de haber apagado la máquina, por lo que no puede residir simplemente en la RAM ...
adb pull
(¡incluso con la ruta exacta !), Si no es root .adb pull /data/data/com.activeandroid.test/databases/Application.db ~/Development/Application.db
Una actualización mencionada en los comentarios a continuación:
O puede probar el enfoque anterior:
Abra la perspectiva DDMS en su Eclipse IDE
( Ventana> Abrir perspectiva> Otro> DDMS )
y lo mas importante:
SU APLICACIÓN DEBE ESTAR EJECUTANDO PARA QUE PUEDA VER LA JERARQUÍA DE CARPETAS Y ARCHIVOS .
Luego, en la pestaña Explorador de archivos , seguirá la ruta:
datos> datos> nombre-de-su-paquete> bases de datos> archivo-de-su-base de datos .
Luego seleccione el archivo, haga clic en el ícono del disquete en la esquina derecha de la pantalla para descargar el archivo .db . Si desea cargar un archivo de base de datos en el emulador, puede hacer clic en el icono del teléfono (junto al icono del disquete) y elegir el archivo que desea cargar.
Si desea ver el contenido del archivo .db , le aconsejo que utilice el Explorador de base de datos SQLite, que puede descargar aquí .
PD: Si desea ver la base de datos desde un dispositivo real, debe rootear su teléfono.
fuente
Failed to pull selection
(null)
Las otras respuestas están muy desactualizadas. Con Android Studio , esta es la forma de hacerlo:
fuente
En Android Studio 3.4.1, puede usar la función de búsqueda de Android Studio para encontrar "Device File Explorer" y luego ir al directorio / data / data / package_name / database de su emulador.
fuente
Escribí un script bash simple, que extrae la base de datos del dispositivo Android a su computadora (usuarios de Linux, Mac)
nombre de archivo: android_db_move.sh uso: android_db_move.sh com.example.app db_name.db
fuente
Dado que la pregunta no está restringida a Android Studio, estoy dando la ruta para Visual Studio 2015 (funcionó para Xamarin).
Un agradecimiento especial a otras personas que respondieron esta pregunta.
fuente
Las bases de datos se almacenan como archivos SQLite en / data / data / PACKAGE /bases / DATABASEFILE donde:
Puede ver (copiar desde / hacia el sistema de archivos) el archivo de la base de datos en el emulador seleccionando la perspectiva DDMS , en la pestaña Explorador de archivos.
fuente
Solución simple: funciona tanto para emulador como para dispositivos conectados
1 Consulte la lista de dispositivos / emuladores disponibles actualmente.
2 Ejecute una copia de seguridad en su dispositivo / emulador
3 Extraer data.ab
Encontrarás la base de datos en la
/db
carpetafuente
$ dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
bash: adb: command not found
Según los documentos de Android , Monitor quedó obsoleto en Android Studio 3.1 y se eliminó de Android Studio 3.2. Para acceder a los archivos, hay una pestaña en el estudio de Android llamada "Explorador de archivos del dispositivo" en la parte inferior derecha de la ventana de desarrollo a la que puede acceder a su sistema de archivos del emulador. Solo sigue
/ data / data / nombre_paquete / bases de datos
buena suerte.
fuente
Para Android Studio 3.5, búscalo siguiendo las instrucciones aquí: https://developer.android.com/studio/debug/device-file-explorer (Ver -> Herramientas de Windows -> Explorador de archivos del dispositivo -> -> bases de datos
fuente