PDA

Ver la Versión Completa : [ SOLUCIONADO ] App con SQLite


androizado
16/07/15, 19:42:40
Buenas estoy desarrollando una app que lleva una base de datos interna. Tengo toda la parte del código(SQLite), pero me ha surgido la siguiente duda.

Cuando estoy emulando la app en mi móvil físico (real), me gustaría tener, por ejemplo, un cliente de sqlite a dicha base de datos interna del móvil, para ir comprobando realmente si se hacen los insert, es decir, como si tuviera una web y mi workbench o phpmyadmin abierto, y que pueda comprobar de modo gráfico ese registro insertado.

A lo mejor estoy diciendo una locura, porque pienso que claro al ser una base de datos en local del móvil, no tengo modo alguno de conectar con ella, pero me surgio la duda de saber si, igual que se conecta por adb el móvil para poder depurar en el y ver todo los logs, podría haber alguna manera de conectar con esa base de datos.

Un saludo y gracias de antemano.

kriogeN
16/07/15, 20:42:20
Se puede, tienes que ser Root e instalar el comando sqlite3 en tu móvil. Antiguamente venía incluido en BusyBox, ahora creo que no.

Puedes usar esta app, aunque yo no la he probado nunca, no se si funciona.

https://play.google.com/store/apps/details?id=ptSoft.util.sqlite3forroot

Luego el resto ya es fácil, conectas por adb con "adb shell" y solicitas permisos de superusuario con "su" para poder entrar en la carpeta data de tu app. Una vez hecho vas a "data/data/NOMBRE_DEL_PAQUETE/databases/" y abres la BD con "sqlite3 NOMBRE_DE_BD.db"

Si no quieres instalar el cliente SQLite3 en tu móvil también puedes copiar el fichero .db a tu PC y usar un cliente SQLite3 para Windows. Pero por cada instrucción tendrás que copiar el fichero.

De todas formas no se como será tu app, pero cuando yo en mis apps que uso SQLite3 inserto un dato inmediatamente se si se ha insertado bien o no.

Dexafree
16/07/15, 21:38:38
Varias cosas aparte de lo que te ha dicho Kriogen

1. Mediante "adb pull /data/data/nombre.de.tupaquete/databases/nombrebasededatos.db" puedes sacarla directamente
2. Si vas a hacerlo mirando en Windows te recomiendo SQLiteManager de SQLabs, a mi me gusta bastante su funcionamiento (http://www.sqlabs.com/sqlitemanager.php). Evidentemente tienes también la opción de hacerlo directamente por ADB

androizado
17/07/15, 08:05:22
Buenas gracias antes de nada tanto a kriogeN como a Dexafree, si es verdad que todo lo que estaba viendo hasta ahora apuntaba a que tenías que ser root.

Intente instalar programas de sqlite que no necesitaban se root, pero no hubo manera, supose que no sería tan fácil acceder a ella, sino eres root.

No obstante, voy a probar las opciones que me habéis comentado y os digo. Muchas gracias.

kriogeN
17/07/15, 09:32:39
Varias cosas aparte de lo que te ha dicho Kriogen

1. Mediante "adb pull /data/data/nombre.de.tupaquete/databases/nombrebasededatos.db" puedes sacarla directamente
2. Si vas a hacerlo mirando en Windows te recomiendo SQLiteManager de SQLabs, a mi me gusta bastante su funcionamiento (http://www.sqlabs.com/sqlitemanager.php). Evidentemente tienes también la opción de hacerlo directamente por ADB

¿Estás seguro de que la opción 1 funciona? Incluso siendo Root necesitarías que la aplicación adb tuviese acceso SU en ese momento al sistema. No se si funcionará si ya se había pedido previamente, pero a mi me suena que no.

androizado
17/07/15, 12:50:35
¿Estás seguro de que la opción 1 funciona? Incluso siendo Root necesitarías que la aplicación adb tuviese acceso SU en ese momento al sistema. No se si funcionará si ya se había pedido previamente, pero a mi me suena que no.

Estaba ahora mismo intentando hacer esa primera opción, con un móvil sin root, ahora mismo no puedo rotearlo el que tengo probaré hacerlo con uno que sea root.

No obstante, sin root me dice que no encuentra el archivo, no sé si es por lo que dices kriogeN de que adb debería tener permisos de SU.

Dexafree
17/07/15, 12:51:29
¿Estás seguro de que la opción 1 funciona? Incluso siendo Root necesitarías que la aplicación adb tuviese acceso SU en ese momento al sistema. No se si funcionará si ya se había pedido previamente, pero a mi me suena que no.

Hace muchísimo que utilizo CM, y permite ofrecer permisos de su a aplicaciones y adb, he dado por hecho que en ROMs ajenas a CM también se podría, pero por lo que dices es posible que no :pensando:

Estaba ahora mismo intentando hacer esa primera opción, con un móvil sin root

Lo mío venía a complementar lo que había dicho kriogeN, que empezaba con
Se puede, tienes que ser Root

kriogeN
17/07/15, 16:42:45
Hace muchísimo que utilizo CM, y permite ofrecer permisos de su a aplicaciones y adb, he dado por hecho que en ROMs ajenas a CM también se podría, pero por lo que dices es posible que no :pensando:

Si, en las ROMs CM el ADB SHELL siempre se inicia en modo SU, de hecho no tienes ni que ponerlo, pero en el resto de ROMs no, si quieres SU con ADB SHELL tienes que ponerlo.

androizado
19/07/15, 12:23:37
Estaba probando en una ROM de Stock, no tengo ni root, ni he flasheado ningúna ROM aún en mi nuevo móvil, tengo otro con el que trasteo más, probaré con una ROM de CM, gracias a ambos. :D