J'ai un ensemble de données dans une base de données SQLite. J'ai besoin de voir la base de données sur un appareil. Comment je fais ça?
J'ai vérifié en mode DDM. Les données dans l'explorateur de fichiers sont vides.
Voici des instructions pas à pas (principalement issues d’une combinaison des autres réponses). Cela fonctionne même sur des appareils non enracinés.
Connectez votre appareil et lancez l'application en mode débogage.
Vous voudrez peut-être utiliser adb -d Shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"
pour voir quel est le nom de fichier de la base de données.
Remarque:com.yourpackge.name
est le nom de votre package d'application. Vous pouvez l'obtenir à partir du fichier manifeste.
Copiez le fichier de base de données de votre dossier d’application sur votre carte SD.
adb -d Shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"
Remarque: nomfichier.sqlite est le nom de votre base de données que vous avez utilisé lors de la création de la base de données.
Tirez les fichiers de base de données sur votre machine:
adb pull /sdcard/filename.sqlite
Cela copiera la base de données de la carte SD à l’endroit où se trouve votre BAD.
Installez Firefox SQLite Manager: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
Ouvrez Firefox SQLite Manager (Outils-> SQLite Manager) et ouvrez votre fichier de base de données à partir de l'étape 3 ci-dessus.
Prendre plaisir!
Tiré de ici , vous pouvez essayer:
Dans 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'
}
Initialisez la bibliothèque dans l'objet d'application:
Stetho.initializeWithDefaults(this);
Et vous pouvez voir votre base de données dans Chrome à partir de chrome://inspect
Le meilleur moyen que j'ai trouvé jusqu'ici consiste à utiliser l'outil Android-Debug-Database.
Il est incroyablement simple à utiliser et à configurer. Ajoutez simplement la dépendance et connectez-vous à l'interface de la base de données du périphérique via Web. Pas besoin de rooter le téléphone ou d'ajouter des activités ou quoi que ce soit. Voici les étapes:
ÉTAPE 1
Ajoutez la dépendance suivante au fichier Gradle de votre application et exécutez l'application.
debugCompile 'com.amitshekhar.Android:debug-db:1.0.0'
ÉTAPE 2
Ouvrez votre navigateur et visitez l'adresse IP de votre téléphone sur le port 8080. L'URL devrait ressembler à ceci: http://YOUR_PHONE_IP_ADDRESS:8080
. Vous serez présenté avec ce qui suit:
Remarque: vous pouvez également toujours obtenir l'URL d'adresse de débogage à partir de votre code en appelant la méthode DebugDB.getAddressLog();
J'utilise actuellement Ping Tools pour obtenir l'adresse IP de mon téléphone, mais il existe de nombreuses alternatives.
ÉTAPE 3
C'est tout!
Plus de détails dans la documentation officielle: https://github.com/amitshekhariitbhu/Android-Debug-Database
Le meilleur moyen d'afficher et de gérer votre base de données d'applications Android est d'utiliser la bibliothèque DatabaseManager_For_Android .
C'est un fichier unique d'activité Java; ajoutez-le simplement à votre dossier source . Vous pouvez afficher les tables dans votre base de données d'applications, mettre à jour, supprimer, insérer des lignes dans votre table. Tout à l'intérieur de votre application.
Lorsque le développement est terminé, supprimez le fichier Java de votre dossier src. C'est tout.
Vous pouvez visionner la démonstration de 5 minutes, Gestionnaire de base de données pour la base de données Android SQLite.
Tu peux le faire:
adb Shell
cd /go/to/databases
sqlite3 database.db
sqlite>
, tapez .tables
. Cela vous donnera toutes les tables du fichier database.db.select * from table1;
Si vous utilisez un périphérique réel et qu'il n'est pas enraciné, il n'est pas possible de voir votre base de données dans FileExplorer
car, pour des raisons de sécurité, ce dossier est verrouillé dans le système Android. Et si vous l'utilisez dans un émulateur, vous le trouverez dans FileExplorer
,/data/data/le nom de votre package/bases de données/yourdatabse.db .
Essayez AndroidDBvieweR!
J'ai utilisé SQLite Database Browser pour voir le contenu de la base de données SQLite dans le développement Android. Vous devez d'abord extraire le fichier de base de données du périphérique, puis l'ouvrir dans le navigateur de base de données SQLite.
Bien que cela ne visualise pas directement la base de données sur votre appareil, j'ai publié un simple script Shell permettant de transférer des bases de données sur votre ordinateur local:
Il exécute deux méthodes distinctes décrites ici:
\r
que certains périphériques transmettent au shell.À partir de là, vous pouvez utiliser diverses applications CLI ou GUI SQLite, telles que sqlite3
ou sqlitebrowser
, pour parcourir le contenu de la base de données.
step 1Copiez cette classe dans votre package
étape 2 placez le code suivant dans votre classe qui étend 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;
}
}
étape 3 s'inscrire au manifeste
<activity
Android:name=".database.AndroidDatabaseManager"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme.NoActionBar"/>
étape 4
Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);
essayez facebook Stetho.
Stetho est un pont de débogage pour les applications Android, permettant d'utiliser les puissants outils de développement Chrome, etc.
Suivez ces étapes
1> Téléchargez le fichier * .jar à partir de ici .
2> Placez le fichier * .jar dans le dossier Eclipse/dropins/et redémarrez Eclipse.
3> Dans l'angle supérieur droit d'Eclipse, cliquez sur l'icône DDMS.
4> Sélectionnez l'émulateur approprié dans le panneau de gauche.
5 Dans l'onglet Explorateur de fichiers du panneau principal, accédez à /data/data/[YOUR.APP.NAMESPACE]/databases.
6> Sous l'icône DDMS, une nouvelle icône bleue indiquant qu'une base de données doit s'allumer lorsque vous sélectionnez votre base de données. Cliquez dessus et un onglet Questoid Sqlite Manager apparaîtra pour afficher vos données.
* Remarque: Si la base de données ne s'allume pas, c'est peut-être parce que votre base de données ne possède pas l'extension de fichier * .db. Assurez-vous que votre base de données s'appelle [DATABASE_NAME] .db
* Remarque: si vous souhaitez utiliser une base de données sans l'extension .db:
-Téléchargez ce Questoid SqLiteBrowser: Téléchargez ici .
-Décompressez et mettez-le dans Eclipse/dropins (pas des plugins).
-Vérifiez ceci pour plus d'informations Cliquez ici .
Cela fonctionne avec Android 6.0 (au moins les applications déboguables):
adb Shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write"
Ensuite, vous pouvez simplement afficher la base de données avec aSQLiteManager par exemple.
J'espère que cela vous aide
Utilisation de Terminal First pointez sur l'emplacement où est situé andriod sdk
eg: C:\Users\AppData\Local\Android\sdk\platform-tools>
puis vérifiez la liste des périphériques connectés à l'aide de
adb devices
puis exécutez cette commande pour copier le fichier du périphérique sur votre système
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/*"
Vous pouvez trouver le fichier de base de données dans ce chemin
Android\sdk\platform-tools\tempDB\databases
Vous pouvez essayer SQLiteOnWeb . Il gère votre base de données SQLite dans le navigateur.
Il existe _ le navigateur Android SQLite de TKlerx pour Eclipse, et il est entièrement fonctionnel aux côtés d'Android Studio. Je le recommanderai, car c'est extrêmement pratique.
Pour l'installer sur Device Monitor, il suffit de placer le fichier JAR dans [Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins
.
J'ai trouvé une bibliothèque très simple qui permet de parcourir sqlite db de l'application en chrome, voir
Le premier message ( https://stackoverflow.com/a/21151598/4244605 ) ne fonctionne pas pour moi.
J'ai écrit mon propre script pour obtenir le fichier DB à partir du périphérique. Sans racine. Travailler bien.
~/Android-sdk/platform-tools
)../getDB.sh -p <packageName>
pour obtenir le nom des bases de données.Utilisation: ./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device>
pour obtenir le fichier DB dans ce répertoire (où le script est exécuté).
Je vous recommande de définir le nom de fichier de la base de données comme * .sqlite et de l'ouvrir avec l'addon Firefox: SQLite Manager.
(C'est long, quand j'ai écrit quelque chose dans Bash. Vous pouvez éditer ce code.)
#!/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;
En utilisant File Explorer, vous pouvez localiser votre fichier de base de données comme ceci:
data-->data-->your.package.name-->databases--->yourdbfile.db
Ensuite, vous pouvez utiliser n’importe quel front SQLite pour explorer votre base de données. J'utilise l'addon Firefox SQLite Manager. C'est gentil, petit et rapide.