Cuando se quieren depurar bases de datos en Android no la tenemos fácil, pues Android no ofrece una manera nativa y fácil de exportar o importar la base de datos de nuestra app.
En este post te mostraré una herramienta que te ayudará a visualizar y depurar las bases de datos SQLite en Android sin necesidad de ser root o instalar apps de terceros.
Únicamente debemos agregar la librería llamada Android-Debug-Database que personalmente me ha ayudado bastante al analizar o depurar bases de datos en Android.
Android Debug Database
La librería de la que hablo se llama Android Debug Database y no hace otra cosa más que ayudarnos a depurar bases de datos SQLite en Android.
El repositorio está aquí, y en este post te mostraré a agregarla y usarla.
Nota: si tú prefieres extraer la base de datos con la shell, mira este post.
¿Cómo funciona esta dependencia para analizar bases de datos en Android?
Me parece que abre un puerto en el dispositivo y a través de él muestra una interfaz web que sirve para analizar todas las tablas existentes y bases de datos.
Además de mostrar los datos existentes, da la opción de editar y eliminar registros, o insertar nuevos.
Todo esto se hace a través de nuestro navegador web, además de que no supone ningún riesgo en la app final.
Agregar dependencia
Abre tu archivo build.gradle
, el que dice app
, y agrega lo siguiente en el apartado de dependencies
:
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
Seguramente se te pedirá que sincronices, hazlo haciendo click en Sync now:
Como estamos agregando la dependencia en modo debugImplementation
el puerto solo se abrirá al estar en modo desarrollo, pero al compilar nuestra app, no estará presente.
Averiguando el puerto
En el logcat aparecerá el puerto y la ip en donde se está escuchando para conectarnos desde el navegador. De hecho solo tenemos que hacer click en la URL y eso es todo.
Para ver el puerto y la IP abre el logcat, elige el filtro Debug y escribe DebugDB
en la barra de búsqueda, te debe aparecer la URL completa.
Depurar bases de datos en Android desde el navegador web
Si abres esa URL verás las bases de datos de tu app:
Puedes seleccionar los datos de las tablas, ejecutar consultas, etcétera.
Conclusión
Como lo dije, esta herramienta solo se acciona en modo de desarrollo, así que al compilar la app no habrá riesgo de que alguien modifique la información desde el navegador.
En lo personal me ayudó bastante a depurar bases de datos en Android ya que no existe una manera nativa de hacerlo, y siempre viene bien saber lo que está pasando a nivel de datos.
Puedes encontrar más información en el repositorio oficial.
Recuerda que puedes leer más sobre Android o SQLite en mi blog.