La forma más fácil: conectarse 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.
Encuentre toda la información aquí:
http://developer.android.com/tools/help/sqlite3.html
1- Vaya a la carpeta de herramientas de su 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- Conecta una carcasa a tu dispositivo:
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
4a- Puede omitir este paso en un dispositivo rooteado
run-as <your-package-name>
4b- Navegue a la carpeta que contiene su archivo db:
cd data/data/<your-package-name>/databases/
5- ejecute sqlite3 para conectarse a su base de datos:
sqlite3 <your-db-name>.db
6- ejecute los comandos sqlite3 que le gusten, por ejemplo:
Select * from table1 where ...;
Nota: Encuentre más comandos para ejecutar a continuación.
Hoja de referencia de SQLite
Hay algunos pasos para ver las tablas en una base de datos SQLite:
Enumere las tablas en su base de datos:
.tables
Enumere cómo se ve la mesa:
.schema tablename
Imprime la tabla completa:
SELECT * FROM tablename;
Enumere todos los comandos de solicitud de SQLite disponibles:
.help
/data/data
directoriocp /data/data/<your-package-name>/databases/<your-db-name>.db /sdcard
. Luego, use un administrador de archivos como Explorer para enviar el archivo a su correo electrónico. :)La forma más fácil para mí es usar Android Device Monitor para obtener el archivo de base de datos y el navegador SQLite DataBase para ver el archivo mientras sigo usando Android Studio para programar Android.
1) Ejecute e inicie la aplicación de base de datos con el emulador de Android desde Android Studio. (Inserté algunos datos en la aplicación de base de datos para verificar)
2) Ejecute el Monitor de dispositivo Android. ¿Como correr?; Ir a
[your_folder] > sdk >tools
. Puede ver monitor.bat en esa carpeta.shift + right click
dentro de la carpeta y seleccione "Open command window here
". Esta acción iniciará el símbolo del sistema. typemonitor
y se iniciará el Monitor de dispositivo Android.3) Seleccione el emulador que está ejecutando actualmente. Luego ve a
data>data>[your_app_name]>databases
4) Haga clic en el ícono (ubicado en la esquina superior derecha) (coloque el cursor sobre el ícono y verá "extraer un archivo del dispositivo") y guárdelo en cualquier lugar que desee
5) Inicie el navegador SQLite DataBase. Arrastre y suelte el archivo que acaba de guardar en ese navegador.
6) Vaya a la
Browse Data
pestaña y seleccione su tabla para ver.fuente
El problema que tiene es común y no se explica bien en la documentación. Los dispositivos normales no incluyen el binario de la base de datos sqlite3, razón por la cual recibe un error. Android Emeulator, OSX, Linux (si está instalado) y Windows (después de instalado) tienen el binario para que pueda abrir una base de datos localmente en su máquina.
La solución alternativa es copiar la base de datos de su dispositivo a su máquina local. Esto se puede lograr con ADB pero requiere varios pasos.
Antes de comenzar, necesitará información:
<package name>
, por ejemplo,com.example.application
<local path>
para colocar su base de datos, por ejemplo.~/Desktop
o%userprofile%\Desktop
A continuación, deberá comprender en qué terminal se escribe cada comando en el primer carácter en los ejemplos a continuación que no se escribe, pero le permite saber en qué shell estamos:
>
= el símbolo del sistema de su sistema operativo$
= Símbolo del sistema de shell ADB!
= Shell ADB como símbolo del sistema de administración%
Luego ingrese los siguientes comandos desde la Terminal o Comando (no ingrese el primer carácter o texto
()
)Esta es una forma realmente redonda de copiar la base de datos a su máquina local y leer localmente la base de datos. Hay SO y otros recursos que explican cómo instalar el binario sqlite3 en su dispositivo desde un emulador, pero por una vez, este proceso funciona.
Si necesita acceder a la base de datos de forma interactiva, sugeriría ejecutar su aplicación en un emulador (que ya tenía sqlite3) o instalar sqlite en sus dispositivos / ruta xbin .
fuente
cd <ANDROID_SDK_PATH>
(para mí en Windowscd C:\Users\Willi\AppData\Local\Android\sdk
)cd platform-tools
adb shell
(esto solo funciona si solo se está ejecutando un emulador)cd data/data
su
(obtenga privilegios de superusuario)cd <PACKAGE_NAME>/databases
sqlite3 <DB_NAME>
;
, de lo contrario, la sentencia no se emite y se rompe a una nueva línea).Nota: Utilice
ls
(Linux) odir
(Windows) si necesita enumerar el contenido del directorio.fuente
¿Qué menciona mientras escribe adb?
step1. >adb shell step2. >cd data/data step3. >ls -l|grep "your app package here" step4. >cd "your app package here" step5. >sqlite3 xx.db
fuente
adb
... Cuando lo escribo en el shell SQLite3, me da...>
y espera una continuación de un comando. Básicamente está esperando a;
. Si escribo el punto y coma, obtengoerror: near "adb": syntax error
... Escribiradb shell
en un símbolo del sistema me dice que adb no es un comando reconocido ... ¿Se supone que debo agregar adb a mis archivos de ruta?/system/bin/sh: sqlite3: not found
... Y ya agregué SQLite3 y ADB como variables de ruta ...Puede usar una herramienta muy agradable llamada
Stetho
agregando esto albuild.gradle
archivo:compile 'com.facebook.stetho:stetho:1.4.1'
Y lo inicializó dentro de su método
Application
oActivity
onCreate()
:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
Luego puede ver los registros db en Chrome en la dirección:
chrome://inspect/#devices
Para obtener más detalles, puede leer mi publicación: Cómo ver fácilmente sus registros de base de datos
fuente
Dependiendo de los dispositivos, es posible que no encuentre el comando sqlite3 en adb shell. En ese caso, es posible que desee seguir esto:
shell adb
como referencia, vaya a https://stackoverflow.com/a/17177091/3758972 .
Puede haber casos en los que obtenga "objeto remoto no encontrado" después de seguir el procedimiento anterior. Luego, cambie el permiso de la carpeta de su base de datos a 755 en adb shell.
Pero tenga en cuenta que solo funcionará en la versión de Android <21.
fuente