ver studio proyectos exportar ejemplo datos conexion con aplicaciones acceder android android-studio android-sqlite ddms

studio - ver base de datos en android



Ver los contenidos del archivo de base de datos en Android Studio (14)

Conéctese a Sqlite3 a través de ADB Shell

No he encontrado ninguna forma de hacerlo en Android Studio, pero accedo a la base de datos con un shell remoto en lugar de extraer el archivo cada vez.

Encuentra toda la información aquí: http://developer.android.com/tools/help/adb.html#sqlite

1- Vaya a la carpeta de herramientas de plataforma en un símbolo del sistema

2- Ingrese el comando adb devices para obtener la lista de sus dispositivos

C:/Android/adt-bundle-windows-x86_64/sdk/platform-tools>adb devices List of devices attached emulator-xxxx device

3- Conecte un caparazón a su dispositivo:

C:/Android/adt-bundle-windows-x86_64/sdk/platform-tools>adb -s emulator-xxxx shell

4- Navega a la carpeta que contiene tu archivo db:

cd data/data/<your-package-name>/databases/

5- Ejecute sqlite3 para conectarse a su db:

sqlite3 <your-db-name>.db

6- ejecute comandos sqlite3 que le gusten, por ejemplo:

Select * from table1 where ...;

Nota: Encuentre más comandos para ejecutar a continuación.

SQLite cheatsheet

Hay algunos pasos para ver las tablas en una base de datos SQLite:

  1. Enumere las tablas en su base de datos:

    .tables

  2. Enumera cómo se ve la tabla:

    .schema tablename

  3. Imprime toda la tabla:

    SELECT * FROM tablename;

  4. Enumere todos los comandos de solicitud de SQLite disponibles:

    .help

He estado usando Android Studio para desarrollar mi aplicación desde que se lanzó.

Todo funciona bien hasta hace poco, tengo que depurar junto con verificar el archivo de la base de datos. Como no sé cómo ver la base de datos directamente, cuando depuré para generar el archivo de la base de datos, tengo que exportar el archivo de la base de datos de mi teléfono a la PC.

Para hacer esto, tengo que abrir DDMS > File Explorer . Una vez que abro el DDMS, tengo que volver a conectar el USB y pierdo mi hilo de depuración. Después de consultar el archivo de la base de datos, tengo que cerrar el DDMS y volver a conectar el USB para volver al modo de depuración.

Es demasiado complicado. ¿Alguien tiene una mejor manera de hacer esto en Android Studio (sé que es más fácil en Eclipse)?


Visualización de bases de datos desde Android Studio:

Editar: para ver su base de datos en un emulador, siga estos pasos (para el dispositivo real, vaya al final):

  1. Descargue e instale http://sqlitebrowser.org/ .
  2. Copie la base de datos del dispositivo a su PC:

    • Versiones de Android Studio <3.0 :

      • Abre DDMS a través de Tools > Android > Android Device Monitor

      • Haga clic en su dispositivo a la izquierda.
        Debería ver su solicitud:

      • Vaya a File Explorer (una de las pestañas a la derecha), vaya a /data/data/databases

      • Seleccione la base de datos simplemente haciendo clic en ella.

      • Ve a la esquina superior derecha de la ventana del monitor del dispositivo Android. Haga clic en el botón '' extraer un archivo del dispositivo '':

      • Se abrirá una ventana preguntándole dónde desea guardar su archivo de base de datos. Guárdelo en cualquier lugar que desee en su PC.

    • Versiones de Android Studio> = 3.0 :

      • Abra el Explorador de archivos del dispositivo a través de View > Tool Windows > Device File Explorer

      • Vaya a la base de data > data > PACKAGE_NAME > database , donde PACKAGE_NAME es el nombre de su paquete (es com.Movie en el ejemplo anterior)

      • Haga clic con el botón derecho en la base de datos y seleccione Save As... Guárdelo en cualquier lugar que desee en su PC.

  3. Ahora, abra el SQLiteBrowser que instaló. Haga clic en '' abrir base de datos '', navegue hasta la ubicación donde guardó el archivo de la base de datos y ábralo . Ahora puede ver los contenidos de su base de datos.

Para ver su base de datos en su dispositivo móvil:

Vaya a this repositorio de Github y siga las instrucciones en el archivo Léame para poder ver su base de datos en su dispositivo. Lo que obtienes es algo como esto:

Eso es. Sin embargo, es necesario deshacer todos estos pasos antes de publicar su aplicación.


De hecho, estoy muy sorprendido de que nadie haya dado esta solución:

Eche un vistazo a Stetho

He usado Stetho en varias ocasiones para diferentes propósitos (uno de ellos es la inspección de la base de datos). En el website real, también hablan sobre las características para la inspección de red y mirando a través de la jerarquía de vistas.

Solo requiere una pequeña configuración: 1 adición de dependencia de gradle (que puede comentar para las compilaciones de producción), algunas líneas de código para instanciar Stetho y un navegador Chrome (porque usa las herramientas de Chrome para todo).

Actualización : ahora puede usar Stetho para ver archivos Realm (si está usando Realm en lugar de una base de datos SQLite): https://github.com/uPhyca/stetho-realm

Actualización n.º 2 : ahora puede usar Stetho para ver los documentos de Couchbase: https://github.com/RobotPajamas/Stetho-Couchbase


El método más simple cuando no se usa un emulador

$ adb shell $ run-as your.package.name $ chmod 777 databases $ chmod 777 databases/databse_name $ exit $ cp /data/data/your.package.name/databases/database_name /sdcard $ run-as your.package.name # Optional $ chmod 660 databases/database_name # Optional $ chmod 660 databases # Optional $ exit # Optional $ exit $ adb pull /sdcard/database_name

Advertencias:

No he probado esto por un tiempo. Es posible que no funcione en API> = 25. Si el comando cp no funciona, intente uno de los siguientes en su lugar:

# Pick a writeable directory <dir> other than /sdcard $ cp /data/data/your.package.name/databases/database_name <dir> # Exit and pull from the terminal on your PC $ exit $ adb pull /data/data/your.package.name/databases/database_name

Explicación:

El primer bloque configura los permisos de su base de datos para que sea legible. Esto aprovecha run-as que le permite suplantar al usuario de su paquete para realizar el cambio.

$ adb shell $ run-as your.package.name $ chmod 777 databases $ chmod 777 databases/databse_name $ exit # Closes the shell started with run-as

Luego copiamos la base de datos a un directorio legible / escribible en todo el mundo. Esto permite que el ADB tire del acceso del usuario.

$ cp /data/data/your.package.name/databases/database_name /sdcard

Luego, reemplace los privilegios de lectura / escritura existentes. Esto es importante para la seguridad de su aplicación, sin embargo, los privilegios se reemplazarán en la próxima instalación.

$ run-as your.package.name $ chmod 660 databases/database_name $ chmod 660 databases $ exit # Exit the shell started with run-as

Finalmente, copie la base de datos al disco local.

$ exit # Exits shell on the mobile device (from adb shell) $ adb pull /sdcard/database_name


En Android Studio 3 , puede ver una sección del "Explorador de archivos del dispositivo" en la parte inferior derecha de Android Studio.

Ábrelo, luego puede ver el árbol de archivos, puede encontrar una base de datos de aplicaciones en esta ruta:

/data/data/{package_name}/databases/


Esta es una pregunta MUY antigua y mi respuesta es similar a algunas respuestas anteriores, pero se hace MUCHO más rápido. El siguiente script es para Mac, pero estoy seguro de que alguien puede modificarlo para Windows.

1) Abre el Editor de scripts en tu Mac (solo puedes buscar el Editor de scripts en Spotlight)
2) Copie y pegue el texto a continuación y modifíquelo con su ruta SDK, nombre del paquete, etc. (vea abajo)
3) Guarde el script !!

Eso es todo! Simplemente presione el botón de reproducción en la parte superior para obtener el archivo de base de datos actualizado, que estará en su escritorio.

reemplace las siguientes cosas en el siguiente script:

path_to_my_sdk == >> poner ruta completa a su SDK
my_package_name == >> nombre del paquete de su aplicación
myDbName.db == >> nombre de archivo de su base de datos

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db" do shell script getLocalDb

Espero que esto ayude a alguien.


Estoy usando Windows 7, mi dispositivo es una API emulada del dispositivo Android 23. Supongo que es el mismo para cualquier dispositivo real, siempre y cuando esté rooteado y la API no esté por encima de 23.

Vaya a Herramientas -> Android -> Android Device Monitor. Ve al Explorador de archivos. En mi caso, está en data / data // app_webview / databases / file_0 / 1

Tengo que agregar manualmente .db al final del archivo llamado "1"


Finalmente, encontré una solución simple que no necesita abrir el DDMS.

En realidad, la solución se basa en lo que @Distwo mencionó, pero no tiene por qué ser tan complicado.

En primer lugar , recuerde la ruta de su archivo de base de datos en el dispositivo, siempre debe ser el mismo. Por ejemplo, el mío es: /data/data/com.XXX.module/databases/com.XXX.module.database

Segundo , ejecuta este comando que lleva tu archivo de base de datos a tu PC

adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

Lo que debe hacer es copiar y almacenar este comando, luego puede usarlo una y otra vez.

Tercero , si obtuviste el permiso denegado o algo así, simplemente ejecuta adb root antes del comando anterior.


He creado una automatización de línea de comandos de Unix para este proceso y coloqué el código aquí:

https://github.com/elliptic1/Android-Sqlite3-Monitor

Es un script de shell que toma el nombre del paquete y el nombre de la base de datos como parámetros, descarga el archivo de la base de datos del dispositivo Android adjunto y ejecuta el script personalizado contra el archivo descargado. Luego, con una herramienta de Unix como ''reloj'', puede tener una ventana de terminal abierta con una vista de actualización periódica de la salida de script de la base de datos.


Para saber dónde ha almacenado la base de datos sqlite creada por usted en android studio, debe seguir los pasos simples:

1.Run your application 2.Go to Tools--->Android---->Device Monitor 3.Find your application name in left panel 4.Then click on File Explorer tab 5.Select data folder 6.Select data folder again and find your app or module name 7.Click on your database name 8.On right-top window you have an option to pull file from device. 9.Click it and save it on your PC 10.Use FireFox Sqlite manager to attach it to your project.

Para más información, este enlace será útil. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Para ver sus datos presentes en un archivo db, necesita descargar el navegador sqlite o agregar el complemento del mismo en cualquier navegador, por lo que debe abrir el archivo en el navegador y ver sus datos.

Descargue el navegador de http://sqlitebrowser.org/

Aquí está la captura de pantalla que muestra el buscador que contiene la base de datos de registro

Gracias,


Prueba este plugin de estudio android SQLScout . puede ver y editar la base de datos de su aplicación en tiempo real.

Editar: Recuerde que es un complemento pago, pero tiene 24 horas de prueba y es adecuado para el dolor de cabeza.


Puede que esta no sea la respuesta que está buscando, pero no tengo una forma mejor de descargar DB desde el teléfono. Lo que voy a sugerir es asegurarse de que esté usando este mini-DDMS. Sin embargo, estará súper escondido si no haces clic en la pequeña caja de camuflaje en la parte inferior izquierda del programa. (intenté pasar el cursor sobre él, de lo contrario, podría perderlo).

También el menú desplegable que dice que no hay filtros (arriba a la derecha). Literalmente tiene un montón de maneras diferentes de monitorear diferentes procesos / aplicaciones por PPID, nombre y mucho más. Siempre he usado esto para monitorear el teléfono, pero tenga en cuenta que no estoy haciendo el tipo de trabajo de desarrollo que necesita ser 120% positivo, la base de datos no está haciendo algo fuera de lo común.

Espero eso ayude


Sé que la pregunta es bastante antigua, pero creo que este problema aún está presente.

Visualización de bases de datos desde su navegador

Creé una herramienta de desarrollo que puedes integrar como lib en tu proyecto de aplicación de Android. La herramienta abre un socket de servidor en su aplicación para comunicarse a través del navegador web. Puede navegar por toda su base de datos y descargar el archivo de la base de datos directamente a través del navegador.

La integración se puede hacer a través de jitpack.io:

proyecto build.gradle:

//... allprojects { repositories { jcenter() maven { url ''https://jitpack.io'' } } } //...

aplicación build.gradle:

//... dependencies { //... debugCompile ''com.github.sanidgmbh:debugghost:v1.1'' //... } //...

Configuración de clase de aplicación

Para compilar solo DebugGhostLib en ciertos tipos de compilación o sabores de productos, necesitamos una clase de aplicación abstracta que se derivará en los sabores especiales. Coloque la siguiente clase en su carpeta main (en java > your.app.package ):

public class AbstractDebugGhostExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); // Do your general application stuff } }

Ahora, para el tipo de versión de lanzamiento (o sabor del producto), agregue la siguiente clase de aplicación a la carpeta de release (o sabor del producto) (también en java > your.app.package ):

public class MyApp extends AbstractDebugGhostExampleApplication { @Override public void onCreate() { super.onCreate(); } }

Esta es la clase de aplicación que no hará referencia a DebugGhostLib.

También dígale a su AndroidManifest.xml que está usando su propia clase de aplicación. Esto se hará en su carpeta main :

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android"> <!-- permissions go here --> <application android:name=".MyApp"> <!-- register your own application class --> <!-- your activities go here --> </application> </manifest>

Ahora, para su tipo de compilación de depuración (o sabor del producto), agrega la siguiente clase de Aplicación a su carpeta de debug (o sabor del producto) (también en java > your.app.package ):

public class MyApp extends AbstractDebugGhostExampleApplication { private DebugGhostBridge mDebugGhostBridge; @Override public void onCreate() { super.onCreate(); mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION); mDebugGhostBridge.startDebugGhost(); } }

Puedes obtener la herramienta aquí .