El blog de Javielinux Usuario de Linux, Android developer, programador de aplicaciones web y experimentando con HTML5, CSS3 y Javascript

Como descargar la base de datos de tu aplicación Android

Esto sólo funciona en el caso que estemos trabajando en el emulador y supongo que en los teléfonos Android que tengan acceso a root también.

La idea es poder descargarnos la base de datos SQLite de nuestra aplicación para hacer un backup o comprobar que se están guardando los datos correctamente. Una vez descargada os recomiendo usar SQLiteBrowser para ver los datos.

Simplemente una vez lanzado el emulador desde Eclipse nos vamos a la perspectiva DMMS de Android y seleccionamos la pestaña "File Explorer". Allí podremos acceder a la estructura de directorios de nuestro teléfono (emulador en nuestro caso) y navegamos al directorio "/data/data" (no me he equivocado es el directorio "data" que se encuentra en "data" ;-)).

Al abrir ese directorio veremos muchas carpetas con el nombre de los paquetes de los programas que tenemos instalados en nuestro emulador, abrimos el de nuestro programa (por ejemplo en el caso de AndAndo es "com.javielinux.andando") y si nuestra aplicación usa alguna base de datos deberá tener un directorio llamado "databases". Ábrelo y verás la base datos (si usas Android DataFramework será el nombre que le pusiste en el tables.xml).

Para descargarlo lo seleccionas y pulsas en el botón que hay arriba a la derecha que se llama "Pull a file from the device". Ya puedes ver tus datos en SQLiteBrowser.

Comentarios

Darry Morales dice:
Hay alguna manera equivalente de hacer esto pero con un terminal fisico? es decir, acceder al directorio /data/data.. sin tener priveligios de root en el terminal. y asi lograr visualizar la base de datos con SQLite Browser por ejemplo. He buscado ya infinidades de metodos: adb, el dmms de eclipse, ssh, por consola desde el terminal y no he podido
javielinux dice:
Que yo sepa no. Creo que la única forma de acceder a esos directorios es con acceso a root

Ahora existen formas muy sencillas de hacerlo... aunque yo no me atrevo

Si encuentras alguna forma no dudes en decírmela ;-)
miki dice:
Y siendo root se pueden llegar a modificar esas bbdd?? Cambiar valores? Porque quiero hacer una app para android y me gustaria que tuviese una base de datos pero no me interesa que me puedan cambiar los valores cada dos por tres
javielinux dice:
La verdad que no lo tengo claro... pero supongo que puedes bajarte la base de datos, cambiarla y subirla otra vez

Pero como te digo no lo se, ya que mi móvil no es root
Ivonne dice:
Hola muy buena info ;) pero si estoy trabajando con una base de datos q yo cree donde tengo q guardarla para poder accesar a ella ??
Jorge dice:
Hola, sigo bastante tu blog ya que he empezado a programar en Android y me parecen muy intuitivos tus artículos y ya empiezo a investigar por mi cuenta gracias a ellos :-) Me ha surgido una duda de una pequeña app que estoy desarrollando, ¿hay alguna manera de poder subir a la nube los datos de una BD (en MySql por ejemplo) para luego rescatarlo en Android y cargarla en SQLite? Gracias!
javielinux dice:
Supongo que puedes usar alguna librería java con la que poder conectarte a MySQL desde tu móvil y cargar los datos en tu base de datos. No he probado ninguna pero supongo que no hay problema

También hay opción de poder meter directamente una base de datos en SQLite en tu proyecto android para poder y usarla

Si estás interesado podría hacer un post en la página explicándolo. Lo hice para un proyecto hace un tiempo

Saludos
Jorge dice:
Muchas gracias de antemano! La aplicación que estoy desarrollando maneja la base de datos desde un programa de escritorio hecho en java y no se bien como desde dicho programa de escritorio subir los datos de la BD para luego desde la aplicación android rescatarlo de forma remota(a trevés de 3G, wifi...) Gracias por contestar y estaré muy interesado en seguir ese post! Saludos!
javielinux dice:
Yo lo que haría es lo siguiente. Desde el programa hecho en java exportaría los datos para luego crearte una base de datos en SQLite. La forma más rápida que se me ocurre es que te generes un archivo TXT con las setencias SQL (inserts y create tables)

Una vez que tengas ese archivo TXT, puedes usar SQLiteBrowser (http://sqlitebrowser.sourceforge.net/) para crear tu base de datos SQLite. Sería crearte un archivo físico con la base de datos

Después como te digo puedes coger ese archivo y meterlo directamente en tu proyecto como base de datos. Esto tendría que explicarlo en un post como hacerlo, pero es bastante fácil

Yo lo hice para un proyecto con una base de datos de 3 o 4 megas y funcionó perfectamente, hasta usaba Android DataFramework y todo

Saludos
javielinux dice:
Acabo de publicar un post con lo que te comentaba

Ya me cuentas
Jorge dice:
Muchas gracias por el post. Lo he estado leyendo y me servirá para lo que quiero hacer :-) Lo que aún no tengo muy claro es como exportar desde mi aplicación java de escritorio los datos de la BD de forma que de manera remota con mi aplicación Android pueda acceder a esos datos, descargarlos e ingresarlos en la BD del móvil para poder visualizarlo. En cierto modo (aunque no sea tal que así) es como ocurre con Sugarsync, que los datos del PC están sincronizados con los datos del móvil. En mi aplicación no tienen por qué estar sincronizados pero sí debería poder acceder de manera remota (desde la aplicación java de escritorio subo antes a la nube los datos y posteriormente descargarmelos al móvil de manera inalámbrica). Supongo que tendré que tener un espacio reservado para mí (hosting) para poder acceder pero no logro ver cómo hacerlo.
Estuve viendo a través de Sugarsync y creo que hay una sección para desarrolladores. Si logro hacerlo comentaré cómo lo he hecho por si a alguien le sirviera :-)

Muchas gracias y un saludo!
javi dice:
necesito un favor a ver si me pueden ayudar ... tengo una tablet t101 android, necesito mostrar una base de datos creada en access que programa debo descargar (la base de datos es pequeña)
javi dice:
que pena lo que pasa es que cuando ingreso a data esta vacio y en sqlite_stmt_journals pasa lo mismo es lo unico similar que encuentro, tengo grabada la base de datos en una SD cuando le hago click me abre una ventana para abrir pero ninguna me sirve....la tablet t101 sera funcional para eso... esta en access la aplicacion.
sophiaguo dice:
Muchas gracias por el post. Lo he estado leyendo y me servirá para lo que quiero hacer :-) Lo que aún no tengo muy claro es como exportar desde mi aplicación java de escritorio los datos de la BD de forma que de manera remota con mi aplicación Android pueda acceder a esos datos, descargarlos e ingresarlos en la BD del móvil para poder visualizarlo. En cierto modo (aunque no sea tal que así) es como ocurre con Sugarsync,
Cristian dice:
hola
tengo un problema al momento de exportar mi aplicación al móvil.
en el emulador me muestra los datos al momento que efectúo la consulta, pero cuando cargo la aplicación desde mi móvil no muestra los datos

me puedes ayudar?
moncler women jackets dice:
sdsds con mi aplicación Android pueda acceder a esos datos, descargarlos e ingresarlos en la BD del móvil para poder visualizarlo. En cierto modo (aunque no sea tal que así) es como ocurre con Sugarsync, que los datosdsds
Christian Louboutin Boots dice:
s como exportar desde mi aplicación java de escritorio los datos de la BD de forma que de manera remota con mi aplic
Vicente dice:
Hola tengo dos cuestiones:

1. ¿Conseguísteis averiguar si se puede acceder a la BD de una aplicación dentro del dispositivo móvil?

2. ¿Sabéis qué tipo de seguridad tiene esa BD en el dispositivo móvil?¿Está encriptada?

Escribir un comentario