tabla - importar base de datos sqlite android studio
¿Cómo veo la base de datos SQLite en un dispositivo Android? (20)
Esta pregunta ya tiene una respuesta aquí:
- Depuración de la base de datos sqlite en el dispositivo 14 respuestas
Tengo un conjunto de datos en una base de datos SQLite. Necesito ver la base de datos en un dispositivo. ¿Cómo puedo hacer eso?
He verificado el modo ddms. Los datos en el explorador de archivos están vacíos.
Aquí hay instrucciones paso a paso (en su mayoría tomadas de una combinación de las otras respuestas). Esto funciona incluso en dispositivos que no están rooteados.
Conecte su dispositivo e inicie la aplicación en modo de depuración.
Puede usar
adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"
para ver cuál es el nombre de archivo de la base de datos.
Aviso: com.yourpackge.name
es el nombre del paquete de su aplicación. Puedes obtenerlo del archivo de manifiesto.
Copie el archivo de la base de datos desde la carpeta de su aplicación a su tarjeta SD.
adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"
Aviso: filename.sqlite es el nombre de su base de datos que utilizó cuando creó la base de datos
Tire de los archivos de la base de datos a su máquina:
adb pull /sdcard/filename.sqlite
Esto copiará la base de datos de la tarjeta SD al lugar donde existe su ADB.
Instale el Administrador de SQLite de Firefox: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
Abra el Administrador de SQLite de Firefox (Herramientas-> Administrador de SQLite) y abra su archivo de base de datos desde el paso 3 anterior.
¡Disfrutar!
Aunque esto no muestra la base de datos en su dispositivo directamente, he publicado un script de shell simple para descargar bases de datos a su equipo local:
Realiza dos métodos distintos que se describen aquí:
- En primer lugar, intenta hacer que el archivo sea accesible para otros usuarios e intentar extraerlo del dispositivo.
- Si eso falla, transmite los contenidos del archivo sobre la terminal a la máquina local. Realiza un truco adicional para eliminar los caracteres que algunos dispositivos generan en el shell.
Desde aquí puede usar una variedad de aplicaciones CLI o GUI SQLite, como sqlite3
o sqlitebrowser
, para explorar los contenidos de la base de datos.
Encontré stetho biblioteca muy simple para navegar sqlite db de la aplicación en cromo, https://github.com/facebook/stetho
Espero que esto te ayude
El uso de Terminal First indica su ubicación donde se encuentra andriod sdk
eg: C:/Users/AppData/Local/Android/sdk/platform-tools>
luego verifique la lista de dispositivos conectados usando
adb devices
y luego ejecuta este comando para copiar el archivo del dispositivo a tu sistema
adb -s YOUR_DEVICE_ID shell run-as YOUR_PACKAGE_NAME chmod -R 777 /data/data/YOUR_PACKAGE_NAME/databases && adb -s YOUR_DEVICE_ID shell "mkdir -p /sdcard/tempDB" && adb -s YOUR_DEVICE_ID shell "cp -r /data/data/YOUR_PACKAGE_NAME/databases/ /sdcard/tempDB/." && adb -s YOUR_DEVICE_ID pull sdcard/tempDB/ && adb -s YOUR_DEVICE_ID shell "rm -r /sdcard/tempDB/*"
Puede encontrar el archivo de base de datos en esta ruta
Android/sdk/platform-tools/tempDB/databases
Esto funciona con Android 6.0 (al menos, las aplicaciones depurables):
adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write"
Entonces, simplemente puede ver la base de datos con aSQLiteManager por ejemplo.
Existe el navegador Android SQLite de TKlerx para Eclipse , y es totalmente funcional junto con Android Studio. Lo recomendaré, porque es inmensamente práctico.
Para instalarlo en Device Monitor, simplemente coloque el archivo JAR en [Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins
.
He estado usando SQLite Database Browser para ver el contenido SQLite DB en el desarrollo de Android. Primero tiene que extraer el archivo de la base de datos del dispositivo y luego abrirlo en el navegador SQLite DB.
La mejor forma de ver y administrar su base de datos de aplicaciones de Android es usar la biblioteca DatabaseManager_For_Android .
Es un solo archivo de actividad de Java; solo agrégalo a tu carpeta de origen. Puede ver las tablas en la base de datos de su aplicación, actualizar, eliminar e insertar filas en su tabla. Todo desde tu aplicación
Cuando finalice el desarrollo, elimine el archivo Java de su carpeta src. Eso es.
Puede ver la demostración de 5 minutos, Database Manager for Android SQLite Database .
La mejor forma que encontré hasta ahora es usar la herramienta Android-Debug-Database.
Es increíblemente fácil de usar y configurar, solo agrega la dependencia y conéctate a la interfaz de la base de datos del dispositivo a través de la web. No es necesario rootear el teléfono ni agregar actividades o lo que sea. Estos son los pasos:
PASO 1
Agregue la siguiente dependencia al archivo Gradle de su aplicación y ejecute la aplicación.
debugCompile ''com.amitshekhar.android:debug-db:1.0.0''
PASO 2
Abra su navegador y visite la dirección IP de su teléfono en el puerto 8080. La URL debería ser como: http://YOUR_PHONE_IP_ADDRESS:8080
. Se le presentará lo siguiente:
NOTA: También puede obtener siempre la URL de la dirección de depuración de su código llamando al método DebugDB.getAddressLog();
Para obtener la IP de mi teléfono, actualmente uso Ping Tools, pero hay muchas alternativas.
PASO 3
¡Eso es!
Más detalles en la documentación oficial: https://github.com/amitshekhariitbhu/Android-Debug-Database
La primera publicación ( https://.com/a/21151598/4244605 ) no funciona para mí.
Escribí un script propio para obtener el archivo DB del dispositivo. Sin raíz Trabajando bien
- Copie la secuencia de comandos al directorio con adb (por ejemplo:
~/android-sdk/platform-tools
). - El dispositivo debe estar conectado a la PC.
- Utilice
./getDB.sh -p <packageName>
para obtener el nombre de las bases de datos.
Uso: ./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device>
para obtener el archivo DB en este directorio (donde se ejecuta el script).
Recomiendo que establezca el nombre de archivo de DB como * .sqlite y lo abra con el complemento de Firefox: SQLite Manager.
(Hace mucho tiempo que escribí algo en Bash. Puede editar este código).
#!/bin/sh
# Get DB from Android device.
#
Hoption=false
Poption=false
Noption=false
Soption=false
Parg=""
Narg=""
Sarg=""
#-----------------------FUNCTION--------------------------:
helpFunc(){ #help
echo "Get names of DB''s files in your Android app.
Usage: ./getDB -h
./getDB -p packageName -n nameOfDB -s storagePath
Options:
-h Show help.
-p packageName List of databases for package name.
-p packageName -n nameOfDB -s storagePath Save DB from device to this directory."
}
#--------------------------MAIN--------------------------:
while getopts ''p:n:s:h'' options; do
case $options in
p) Poption=true
Parg=$OPTARG;;
n) Noption=true
Narg=$OPTARG;;
s) Soption=true
Sarg=$OPTARG;;
h) Hoption=true;;
esac
done
#echo "-------------------------------------------------------
#Hoption: $Hoption
#Poption: $Poption
#Noption: $Noption
#Soption: $Soption
#Parg: $Parg
#Narg: $Narg
#Sarg: $Sarg
#-------------------------------------------------------"//n
#echo $# #count of params
if [ $Hoption = true ];then
helpFunc
elif [ $# -eq 2 -a $Poption = true ];then #list
./adb -d shell run-as $Parg ls /data/data/$Parg/databases/
exit 0
elif [ $# -eq 6 -a $Poption = true -a $Noption = true -a $Soption = true ];then #get DB file
#Change permissions
./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/
./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/$Narg
#Copy
./adb shell cp /data/data/$Parg/databases/$Narg $Sarg
#Pull file to this machine
./adb pull $Sarg/$Narg
exit 0
else
echo "Wrong params or arguments. Use -h for help."
exit 1;
fi
exit 0;
Prueba AndroidDBvieweR !
- No es necesario que su dispositivo sea ENRAIZADO
- No es necesario importar el archivo de base de datos de la aplicación
- ¡Pocas configuraciones y estás listo!
Puede probar SQLiteOnWeb . Administra su base de datos SQLite en el navegador.
Puedes hacerlo:
-
adb shell
-
cd /go/to/databases
-
sqlite3 database.db
- En el indicador
sqlite>
, escriba.tables
. Esto le dará todas las tablas en el archivo database.db. -
select * from table1;
Si está utilizando un dispositivo real y no está rooteado, no es posible ver su base de datos en FileExplorer
porque, por algún motivo de seguridad, esa carpeta está bloqueada en el sistema Android. Y si lo está utilizando en un emulador, lo encontrará en FileExplorer
, / data / data / your package name / databases / yourdatabse.db .
Si no quieres usar
- adb
- Biblioteca de terceros o
- dependencia de gradle, etc.
y solo quiere el archivo de base de datos en su tarjeta SD , esta es la solución.
copia la clase DatabaseUtil.java en tu proyecto
package com.util;
import android.content.Context;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;
/**
* Shayan Rais (http://shanraisshan.com)
* created on 8/17/2016
*/
public class DatabaseUtil {
//You need to declare permission
// <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//in your Manifest file in order to use this class
//______________________________________________________________________________________________
//todo -> rename the database according to your application
final static String DATABASE_NAME = "MyDatabase.sqlite";
//example WhatsApp : /data/data/com.whatsapp/databases/msgstore.db
final static String FOLDER_EXTERNAL_DIRECTORY = Environment.getExternalStorageDirectory() + "/shanraisshan";
//______________________________________________________________________________________________
public static void copyDatabaseToExtStg(Context ctx) {
//external storage file
File externalDirectory = new File(FOLDER_EXTERNAL_DIRECTORY);
if(!externalDirectory.exists())
.
.
y simplemente llame al método copyDatabaseToExtStg () desde cualquier actividad en su aplicación
esto copiará la carpeta de la base de datos en la ubicación sdcard / shanraisshan / your_database_file
Para una explicación más detallada, consulte Android-Database-Viewer en Github. Android-Database-Viewer
Sigue estos pasos
1 > Descargue el archivo * .jar desde here .
2 > Coloque el archivo * .jar en la carpeta eclipse / dropins / y reinicie eclipse.
3 > En la esquina superior derecha de eclipse, haga clic en el ícono DDMS.
4 > Seleccione el emulador adecuado en el panel izquierdo.
5 En la pestaña Explorador de archivos en el panel principal, vaya a /data/data/[YOUR.APP.NAMESPACE]/databases.
6 > Debajo del ícono DDMS, debe haber un nuevo icono azul de una Base de datos iluminada cuando selecciona su base de datos. Haga clic en él y verá una pestaña Questoid Sqlite Manager abrir para ver sus datos.
* Nota: Si la base de datos no se enciende, puede deberse a que su base de datos no tiene una extensión de archivo * .db. Asegúrese de que su base de datos se llame [DATABASE_NAME] .db
* Nota: si desea utilizar una base de datos sin extensión .db:
Descargue este Questoid SqLiteBrowser: Descargue aquí .
- Descomprimir y ponerlo en eclipse / dropins (no complementos).
-Verifique esto para obtener más información here .
Tomado desde here , puedes probar:
- Biblioteca Stetho de fuente abierta de Facebook
En build.gradle:
dependencies {
// Stetho core
compile ''com.facebook.stetho:stetho:1.5.0''
//If you want to add a network helper
compile ''com.facebook.stetho:stetho-okhttp:1.5.0''
}
Inicialice la biblioteca en el objeto de la aplicación:
Stetho.initializeWithDefaults(this);
Y puede ver su base de datos en Chrome desde chrome://inspect
- Otra opción es este complemento (no gratuito)
- Y la última es esta biblioteca de código abierto / gratuito para ver los contenidos de DB en el navegador https://github.com/amitshekhariitbhu/Android-Debug-Database
Usando el explorador de archivos, puede ubicar su archivo de base de datos de esta manera:
data-->data-->your.package.name-->databases--->yourdbfile.db
Luego puede usar cualquier SQLite para explorar su base de datos. Uso el complemento SQLite Manager Firefox. Es lindo, pequeño y rápido.
prueba facebook Stetho.
Stetho es un puente de depuración para aplicaciones de Android, lo que permite las potentes herramientas de desarrollo de Chrome y mucho más.
paso 1 Copia esta clase en tu paquete
El paso 2 pone el siguiente código en su clase que extiende SQLiteOpenHelper.
//-----------------for show databasae table----------------------------------------
public ArrayList<Cursor> getData(String Query)
{
//get writable database
SQLiteDatabase sqlDB =this.getWritableDatabase();
String[] columns = new String[] { "mesage" };
//an array list of cursor to save two cursors one has results from the query
//other cursor stores error message if any errors are triggered
ArrayList<Cursor> alc = new ArrayList<Cursor>(2);
MatrixCursor Cursor2= new MatrixCursor(columns);
alc.add(null);
alc.add (null);
try{
String maxQuery = Query ;
//execute the query results will be save in Cursor c
Cursor c = sqlDB.rawQuery(maxQuery, null);
//add value to cursor2
Cursor2.addRow(new Object[] { "Success" });
alc.set(1,Cursor2);
if (null != c && c.getCount() > 0)
{
alc.set(0,c);
c.moveToFirst();
return alc ;
}
return alc;
}
catch(SQLException sqlEx)
{
Log.d("printing exception", sqlEx.getMessage());
//if any exceptions are triggered save the error message to cursor an return the arraylist
Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() });
alc.set(1,Cursor2);
return alc;
}
catch(Exception ex)
{
Log.d("printing exception",ex.getMessage());
//if any exceptions are triggered save the error message to cursor an return the arraylist
Cursor2.addRow(new Object[] { ""+ex.getMessage() });
alc.set(1,Cursor2);
return alc;
}
}
paso 3 registrarse en manifiesto
<activity
android:name=".database.AndroidDatabaseManager"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"/>
etapa 4
Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);