Afficher le contenu du fichier de base de données dans Android Studio


250

J'utilise Android Studio pour développer mon application depuis sa sortie.

Tout fonctionne bien jusqu'à récemment, je dois déboguer avec la vérification du fichier de base de données. Étant donné que je ne sais pas comment voir la base de données directement, lorsque j'ai débogué pour générer le fichier de base de données, je dois exporter le fichier de base de données de mon téléphone vers le PC.

Pour ce faire, je dois ouvrir DDMS > File Explorer. Une fois que j'ouvre le DDMS, je dois reconnecter l'USB et je perds mon thread de débogage. Après avoir vérifié le fichier de base de données, je dois fermer le DDMS et reconnecter l'USB à nouveau pour revenir au mode de débogage.

C'est trop compliqué. Quelqu'un a-t-il une meilleure façon de le faire dans Android Studio (je sais que c'est plus facile dans Eclipse)?


Réponses:


302

Affichage des bases de données depuis Android Studio:

Modifier: pour afficher votre base de données sur un émulateur, procédez comme suit (pour le périphérique réel, faites défiler vers le bas):

  1. Téléchargez et installez SQLiteBrowser .

  2. Copiez la base de données de l'appareil sur votre PC:

    • Versions d'Android Studio <3.0 :

      • Ouvrez DDMS viaTools > Android > Android Device Monitor

      • Cliquez sur votre appareil à gauche.
        Vous devriez voir votre candidature: entrez la description de l'image ici

      • Accédez à l' Explorateur de fichiers (l'un des onglets à droite), accédez à/data/data/databases entrez la description de l'image ici

      • Sélectionnez la base de données en cliquant simplement dessus.

      • Accédez au coin supérieur droit de la fenêtre Android Device Monitor. Cliquez sur le bouton « extraire un fichier de l'appareil »: entrez la description de l'image ici

      • Une fenêtre s'ouvrira vous demandant où vous souhaitez enregistrer votre fichier de base de données. Enregistrez-le où vous voulez sur votre PC.

    • Versions d'Android Studio> = 3.0 :

      • Ouvrez l' Explorateur de fichiers de périphérique viaView > Tool Windows > Device File Explorer

      • Accédez à data > data > PACKAGE_NAME > database, où PACKAGE_NAME est le nom de votre package (il s'agit de com.Movie dans l'exemple ci-dessus).

      • Faites un clic droit sur la base de données et sélectionnez Save As.... Enregistrez-le où vous voulez sur votre PC.

  3. Maintenant, ouvrez le SQLiteBrowser que vous avez installé. Cliquez sur « ouvrir la base de données », accédez à l'emplacement où vous avez enregistré le fichier de base de données et ouvrez . Vous pouvez maintenant afficher le contenu de votre base de données.


Pour afficher votre base de données sur votre appareil mobile:

Accédez à ce référentiel Github et suivez les instructions du fichier Lisezmoi pour pouvoir afficher votre base de données sur votre appareil. Ce que vous obtenez est quelque chose comme ceci:

entrez la description de l'image ici

C'est tout. Il va de soi cependant que vous devez annuler toutes ces étapes avant de publier votre application.


2
c'est pour moi la bonne réponse parce que le conseil avec l'outil sqlitebrowser, c'est génial. Remerciements
Manu Zi

26
/ data ne se développe pas dans l'explorateur de fichiers de Device Monitor, je suppose que son inaccessible car la liste des entrées de / data ou / data / data directory nécessite un accès superutilisateur. Je suis toujours en mesure d'accéder à mes fichiers de base de données via le shell adb avec les privilèges su. Vous avez une idée de comment obtenir un accès su dans le gestionnaire de fichiers?
Saravanabalagi Ramachandran

2
@ZekeDran, oui, la méthode n'affiche que les données d'un émulateur et non votre appareil.J'ai cependant ajouté des étapes pour afficher la base de données sur votre appareil.Vérifiez l'édition
Ojonugwa Jude Ochalifu

11
Cela fonctionne, mais l'émulateur ne doit pas exécuter plus que l'API 23. Si vous utilisez l'API 25, il n'y a aucun contenu dans l'explorateur de fichiers
Manos

2
Le gestionnaire de base de données de votre lien Github travaille pour moi! Il a également la possibilité de tester des requêtes!
basti12354

199

Se connecter à Sqlite3 via ADB Shell

Je n'ai trouvé aucun moyen de le faire dans Android Studio, mais j'accède à la base de données avec un shell distant au lieu de tirer le fichier à chaque fois.

Trouvez toutes les informations ici: http://developer.android.com/tools/help/adb.html#sqlite

1- Accédez à votre dossier platform-tools dans une invite de commande

2- Entrez la commande adb devicespour obtenir la liste de vos appareils

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

3- Connectez un shell à votre appareil:

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

4- Accédez au dossier contenant votre fichier db:

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

5- Exécutez sqlite3 pour vous connecter à votre base de données:

sqlite3 <your-db-name>.db

6- Exécutez les commandes sqlite3 que vous aimez par exemple:

Select * from table1 where ...;

Remarque: recherchez d'autres commandes à exécuter ci-dessous.

Cheatsheet SQLite

Il y a quelques étapes pour voir les tables dans une base de données SQLite:

  1. Listez les tables dans votre base de données:

    .tables
  2. Indiquez à quoi ressemble le tableau:

    .schema tablename
  3. Imprimez l'intégralité du tableau:

    SELECT * FROM tablename;
  4. Répertoriez toutes les commandes d'invite SQLite disponibles:

    .help

17
je reçois la permission refusée à l'étape 4, qu'en pensez-vous?
Adrian Olar

4
Vous devrez peut-être rooter votre avd et / ou démarrer adb en tant que root à l'étape 3 'root adb -s emulator-xxxx shell'
Distwo

2
étape 5: sqlite3 introuvable. Pourquoi?
sabsab

3
Parce que vous devez installer pour pouvoir utiliser
Paul Paca-Vaca Seleznev

12
J'ai personnellement obtenu l' autorisation refusée en essayant d'accéder au dossier des bases de données , l'exécution a run-as your.package.namefait l'affaire.
Yann39

83

Je suis en fait très surpris que personne n'ait donné cette solution:

Jetez un oeil à Stetho .

J'ai utilisé Stetho à plusieurs reprises à des fins différentes (l'une d'entre elles étant l'inspection de base de données). Sur le site Web actuel , ils parlent également de fonctionnalités pour l'inspection du réseau et la recherche dans la hiérarchie des vues.

Il ne nécessite qu'un peu de configuration: 1 ajout de dépendance gradle (que vous pouvez commenter pour les builds de production), quelques lignes de code pour instancier Stetho et un navigateur Chrome (car il utilise Chrome devtools pour tout).

Mise à jour : vous pouvez désormais utiliser Stetho pour afficher les fichiers Realm (si vous utilisez Realm au lieu d'une base de données SQLite): https://github.com/uPhyca/stetho-realm

Mise à jour # 2 : vous pouvez maintenant utiliser Stetho pour afficher les documents Couchbase: https://github.com/RobotPajamas/Stetho-Couchbase

Mise à jour # 3 : Facebook concentre ses efforts sur l'ajout de toutes les fonctionnalités de Stetho dans son nouvel outil, Flipper. Flipper possède déjà de nombreuses fonctionnalités de Stetho. Donc, le moment est peut-être venu de faire le changement. https://fbflipper.com/docs/stetho.html


9
Merci beaucoup. Pour être plus simple, 1. compile 'com.facebook.stetho:stetho:1.3.1' et 2. ajoutez ce code Stetho.initializeWithDefaults(this);et 3.chrome://inspect/#devices
Frank Myat jeu

2
Très simple, vous pouvez voir les données de la base de données sans outils tiers, dans le navigateur Chrome.
Mateus Viccari

N'oubliez pas que vous Stetho.initializeWithDefaults(this);devriez être en Applicationclasse.
wonsuc

1
Excellent outil. Votre application sera répertoriée sur la page # appareils si vous avez correctement effectué la configuration. Cliquez sur Inspecter, puis accédez à Ressources> Web SQL> [nom_bd] et vous pouvez écrire vos instructions sqlite.
Brad

73

Méthode la plus simple lorsque vous n'utilisez pas d'émulateur

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_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

Avertissements:

Je n'ai pas testé cela depuis un moment. Cela peut ne pas fonctionner sur l'API> = 25. Si la commande cp ne fonctionne pas pour vous, essayez plutôt l'une des solutions suivantes:

# 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

Explication:

Le premier bloc configure les autorisations de votre base de données pour qu'elles soient lisibles. Cet effet de levier run-asvous permet d'usurper l'identité de l'utilisateur de votre package pour effectuer la modification.

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

Ensuite, nous copions la base de données dans un répertoire lisible / inscriptible dans le monde. Cela permet à l'utilisateur adb pull d'accéder.

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

Ensuite, remplacez les privilèges de lecture / écriture existants. Ceci est important pour la sécurité de votre application, mais les privilèges seront remplacés lors de la prochaine installation.

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

Enfin, copiez la base de données sur le disque local.

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

4
J'ai des problèmes avec la 2ème commande: run-as. Je reçois «com.mycompany.myappname» est inconnu. Et oui, je suis certain d'utiliser le bon nom de package!
Scott Biggs

1
@PhuLai avez-vous essayé un autre appareil? Quel appareil tombe en panne?
deadthreetimes

1
J'ai essayé avec Nexus 6P, API 25. Je pense que cette méthode ne fonctionnera pas sur les nouvelles versions d'Android.
foo

chmod 660 databases/database_namedevrait être avantchmod 660 databases
Alaa M.

@PhuLai - J'ai aussi eu ça et j'ai essayé de sauter la cpcommande et de faire juste pullde l'extérieur (après avoir changé les permissions) et ça a marché ( adb pull data/data/package.name/databases/db_name.db)
Alaa M.

52

Dans Android Studio 3 et supérieur, vous pouvez voir une section "Explorateur de fichiers de périphérique" dans le côté inférieur droit d'Android Studio.

Ouvrez-le, puis vous pouvez voir l'arborescence des fichiers, vous pouvez trouver une base de données d'application dans ce chemin:

/data/data/{package_name}/databases/

entrez la description de l'image ici


2
Lorsque je double-clique sur le fichier DB de mon application, il affiche tous les caractères illisibles. Quel lecteur SQLite utilisez-vous pour consulter le contenu de la base de données?
Surekha

4
Je recommande sqlitebrowser.org gratuit, open source et disponible pour toutes les plateformes.
Ali Zeynali

3
mon fichier database.db ne contient aucune table.
Binil

Le dossier est vide. Erreur: run-as: Could not set capabilities: Operation not permitted. Appareil Samsung: stackoverflow.com/questions/37413667/…
O-9

25

Enfin, j'ai trouvé une solution la plus simple qui n'a pas besoin d'ouvrir le DDMS.

En fait, la solution est basée sur ce que @Distwo a mentionné, mais cela ne doit pas être si compliqué.

Tout d'abord , souvenez-vous du chemin de votre fichier de base de données dans l'appareil, il devrait toujours être le même. Par exemple, le mien est:/data/data/com.XXX.module/databases/com.XXX.module.database

Deuxièmement , exécutez cette commande qui extrait votre fichier de base de données sur votre PC

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

Ce que vous devez faire est simplement de copier et de stocker cette commande, puis vous pouvez l'utiliser à plusieurs reprises.

Troisièmement , si vous avez obtenu l'autorisation refusée ou quelque chose comme ça, exécutez juste adb rootavant la commande précédente.


9
La course adb rootne fonctionne pas sur mon téléphone. Il imprime adbd cannot run as root in production builds. Après l'exécution adb root, cependant, la commande pull se fige et je dois l'arrêter manuellement.
LaDude

@Daniela essayez run-as your.package.namececi devrait "vous connecter" en tant qu'utilisateur appartenant à votre application
m02ph3u5

Utilisez la commande ci-dessus pour copier le fichier .db sur votre bureau, installer le plug-in de navigateur SQLiteManager dans Firefox et commencer à naviguer. Travail de 2 minutes!
JaydeepW

cette commande root était pour l'émulateur, vous ne pouvez pas simplement exécuter cette commande et rooter votre 'téléphone'.
Darpan

1
tout est fait, a obtenu le database.db. fichier MAIS ce fichier database.db ne contient aucune table
Binil

16

Essayez ce plugin de studio Android SQLScout . vous pouvez voir et modifier la base de données de votre application en temps réel.

SQLScout

Edit: N'oubliez pas que c'est un plugin payant, mais disposez d'un essai de 24h et adapté au temps de maux de tête.


17
C'est un produit payant, vous avez oublié de le mentionner.
yshahak

58
pas vraiment, il a un essai de 24 heures, j'ai prévu mon avenir de développeur pendant plus de 24 heures.
yshahak

Malheureusement, ce n'est pas gratuit.
K.Sopheak

Le temps d'essai n'est que de 36 heures.
Mahdi Moqadasi

9

Après avoir parcouru toutes les solutions, je proposerai

Utilisez Stethos
Permet de voir à quel point c'est simple

Ajouter les dépendances suivantes dans le fichier build.gradle

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

Ensuite, passez à votre méthode mainActivity onCreate, ajoutez la ligne suivante

Stetho.initializeWithDefaults(this);

cela vous obligerait à

import com.facebook.stetho.Stetho;

maintenant lors de l'exécution de l'application depuis le studio Android, Open Chrome et dans la barre d'adresse, tapez
chrome: // inspect /

dans l'onglet ressources> web SQL vérifier la base de données et jouer avec facilement en temps réel


La chambre est juste orm, rien ne change en termes de sql cela fonctionne de la même manière
ShankPossible

9

La façon la plus simple est d'utiliser la bibliothèque de base de données de débogage Android (7,3k étoiles sur GitHub) .

Base de données de débogage Android

Avantages:

  • Implémentation rapide
  • Voir toutes les bases de données et préférences partagées
  • Modifier, supprimer, créer directement les valeurs de la base de données
  • Exécutez n'importe quelle requête SQLite sur la base de données donnée
  • Rechercher dans vos données
  • Télécharger la base de données
  • Ajout de fichiers de base de données personnalisés
  • Pas besoin de rooter l'appareil

Comment utiliser:

  1. Ajouter debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'à build.gradle (module);
  2. Lancer l'application;
  3. Trouvez le lien de débogage dans les journaux (dans LogCat) (c'est D/DebugDB: Open http://192.168.232.2:8080 in your browser-à- dire que le lien sera différent) et ouvrez-le dans le navigateur;
  4. Profitez du puissant outil de débogage!

Important:

  • Malheureusement, ne fonctionne pas avec les émulateurs
  • Si vous l'utilisez via USB, exécutez adb forward tcp:8080 tcp:8080
  • Votre téléphone Android et votre ordinateur portable doivent être connectés au même réseau (Wifi ou LAN)

Pour plus d'informations, rendez-vous sur la page de la bibliothèque sur GitHub.


1
C'est le processus le meilleur et le moins douloureux! Merci Daniel
Sudip

4

Pour savoir où la base de données sqlite stockée créée par vous dans Android Studio, vous devez suivre des étapes 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.

Pour plus d'informations, ce lien sera utile. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Pour afficher vos données présentes dans le fichier db, vous devez télécharger le navigateur sqlite ou ajouter un plugin de celui-ci dans n'importe quel navigateur, vous devez donc ouvrir le fichier dans le navigateur et afficher vos données.

Téléchargez le navigateur depuis http://sqlitebrowser.org/

Voici une capture d'écran montrant un navigateur contenant une base de données de registres

Merci,


4

Un moyen simple et facile de voir le contenu de la base de données dans Android studio .

#Pour Android Studio 4.1 Canary 6 et supérieur

Vous pouvez utiliser un inspecteur de base de données très simple d'Android Studio . Où vous pouvez inspecter, interroger et modifier les bases de données de votre application à l'aide du nouvel inspecteur de base de données. Par exemple, vous pouvez déboguer votre application en cours d'exécution en modifiant les valeurs de votre base de données et en testant ces modifications sur l'appareil en temps réel sans quitter Android Studio .

Pour commencer, déployez votre application sur un appareil exécutant l'API de niveau 26 ou supérieur et sélectionnez Affichage> Fenêtres d'outils> Inspecteur de base de données dans la barre de menus.

#Pour Android Studio 4.0 et versions antérieures

Tout d'abord , installez le plug-in Database Navigator dans Android Studio

entrez la description de l'image ici

Deuxièmement , redémarrez Android Studio

Troisièmement , enregistrez la base de données dans l'emplacement par défaut comme: (C: \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator ou device \ data \ data \ package name \ databases)

entrez la description de l'image ici

Quatrièmement , connectez le fichier dbname_db enregistré dans Database Navigator

entrez la description de l'image ici entrez la description de l'image ici

Donnez le même chemin de fichier DB qui est utilisé à l'étape troisième

c'est-à-dire (C: \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator or device \ data \ data \ package name \ databases \ package naem \ dbname_db)

Enfin , testez simplement la connexion DB et ouvrez la console et faites ce que vous voulez.

entrez la description de l'image ici

Si vous souhaitez actualiser la base de données, répétez simplement l'étape deuxième et enregistrez-la ou actualisez-la.

CODAGE HEUREUX !!!!!


3
Cette solution nécessite beaucoup d'efforts pour votre travail quotidien. Et à chaque changement dans la base de données, vous devez recharger le fichier sql - cela semble un peu compliqué. Je préfère utiliser certains plugins qui permettent de visualiser la base de données sur le serveur local
Максим Петлюк

1
Oui, vous avez raison, jusqu'à ce qu'il n'y ait pas de mise à jour des données en temps réel dans Database Navigator, j'espère qu'il mettra bientôt à jour ses plugins.
Nabin

Exactement, ce serait une excellente fonctionnalité
Максим Петлюк

Oui, jusqu'à présent, celui-ci est le meilleur moyen pour moi si nous devons interroger des données, ajouter, modifier et supprimer
Nabin

Dois-je toujours faire la sauvegarde pour actualiser la base de données? existe-t-il un moyen plus simple, comme dans mysql, tout ce dont j'ai besoin est d'appuyer sur le bouton d'actualisation.
ン ド リ ュ ー ラ イ ア ン ア

3

Le moyen le plus simple consiste à attacher votre appareil et à exécuter Android Studio puis à partir de la barre d'outils:

  1. Affichage -> Fenêtre Outils -> Explorateur de fichiers de périphérique
  2. Allez dans data / data et trouvez votre package
  3. trouver le fichier DB que vous souhaitez explorer et le télécharger
  4. Je recommande sur cet outil en ligne: https://sqliteonline.com/ pour explorer le fichier db

Une autre façon utilise la bibliothèque Stetho:

  1. Ajoutez la dépendance Stello à votre build.gradle:

    compilez 'com.facebook.stetho: stetho: 1.5.0'

  2. Mettez la ligne suivante sur votre onCreate () de votre classe d'application ou activité principale:

    Stetho.initializeWithDefaults (this);

  3. Connectez votre appareil, exécutez l'application et accédez au site suivant sur Chrome:

    chrome: // inspecter / # appareils

et c'est tout. vous pouvez maintenant explorer vos tables.

Remarque: il est recommandé de supprimer la dépendance avant de passer en production.


2

Si vous souhaitez parcourir vos bases de données DANS ANDROID STUDIO, voici ce que j'utilise:

Allez dans Fichiers / Paramètres / Plugins et recherchez ceci:

entrez la description de l'image ici

... Après avoir redémarré Android Studio, vous pouvez choisir votre fichier de base de données téléchargé comme ceci: entrez la description de l'image ici

... Cliquez sur l'icône "Open SQL Console", et vous vous retrouvez avec cette belle vue de votre base de données dans Android Studio: ! [entrez la description de l'image ici


2
Je dois donc copier la base de données de l'émulateur tout le temps?
Maksim Kniazev

2

Nouvel inspecteur de base de données introduit dans Android 4.1 Aperçu de Canary 5 où vous pouvez désormais inspecter, interroger, modifier et déboguer des bases de données SQLite dans votre application en cours d'exécution directement à partir de l'EDI - https://developer.android.com/studio/preview/features?linkId = 86173020 # inspecteur de base de données

Prend également en charge la requête en direct de la base de données - https://developer.android.com/studio/preview/features?linkId=86173020#query

entrez la description de l'image ici


1

Il s'agit d'une TRÈS vieille question et ma réponse est similaire à certaines réponses ci-dessus mais elle est BEAUCOUP plus rapide. Le script ci-dessous est pour Mac mais je suis sûr que quelqu'un peut le modifier pour Windows.

1) Ouvrez Script Editor sur votre Mac (vous pouvez simplement rechercher Script Editor dans Spotlight)
2) Copiez et collez le texte ci-dessous et modifiez-le avec votre chemin SDK, le nom du package, etc. (voir ci-dessous)
3) Enregistrez le script! !

C'est tout! Appuyez simplement sur le bouton de lecture en haut pour obtenir le fichier de base de données mis à jour, qui sera sur votre bureau.

remplacez les éléments suivants dans le script ci-dessous:

path_to_my_sdk == >> mettre le chemin complet vers votre sdk
my_package_name == >> nom du package de votre application
myDbName.db == >> nom de fichier de votre base de données

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

J'espère que cela aide quelqu'un.


Ça a marché pour moi. Sauf que vous devez changer le 'User' en nom d'utilisateur de votre MacBook dans le répertoire de sortie /Users/User/Desktop/myDbName.db
Kenny Dabiri

1

Je sais que la question est assez ancienne mais je pense que ce problème est toujours d'actualité.

Affichage des bases de données à partir de votre navigateur

J'ai créé un outil de développement que vous pouvez intégrer en tant que bibliothèque dans votre projet d'application Android. L'outil ouvre un socket de serveur dans votre application pour communiquer via un navigateur Web. Vous pouvez parcourir toute votre base de données et télécharger le fichier de base de données directement via le navigateur.

entrez la description de l'image ici

L'intégration peut se faire via jitpack.io:

projet build.gradle:

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

app build.gradle:

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

Configuration de la classe d'application

Afin de compiler uniquement DebugGhostLib dans certains types de build ou versions de produit, nous avons besoin d'une classe d'application abstraite qui sera dérivée dans les versions spéciales. Mettez la classe suivante dans votre maindossier (sous java> your.app.package):

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

Maintenant, pour votre type de build de version (ou version de produit), vous ajoutez la classe Application suivante à votre releasedossier (ou version de produit) (également sous java> your.app.package):

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

Il s'agit de la classe d'application qui ne référencera pas DebugGhostLib.

Dites également à votre AndroidManifest.xmlque vous utilisez votre propre classe d'application. Cela se fera dans votre maindossier:

<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>

Maintenant, pour votre type de build de débogage (ou version de produit), vous ajoutez la classe Application suivante à votre debugdossier (ou version de produit) (également sous 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();
    }
}

Vous pouvez obtenir l' outil ici .


ceci est un bon outil spécifiquement après que Stetho a cessé de travailler dans le nouveau chrome,
Homayoun Behzadian


1

Ouvrez le terminal d'exploration de fichiers de périphérique en bas d'Android Studio.

Ouvrez le dossier nommé Data , puis à l'intérieur de Data, ouvrez à nouveau les données du dossier .

Ouvrez les données du dossier

Faites défiler la liste des dossiers et recherchez le dossier avec votre.package.nom. Ouvrez le dossier your.package.name > Base de données . Vous obtenez votre.databaseName . Cliquez avec le bouton droit sur votre.databaseName et enregistrez sous dans C: / votre / ordinateur / répertoire.

Allez dans C: / votre / ordinateur / répertoire ouvrez votre.databaseName avec DB SQLite

entrez la description de l'image ici


1

Pour Android Studio 3.X

  1. Affichage -> Fenêtres d'outils -> Explorateur de fichiers de périphérique
  2. Dans l'explorateur de fichiers data-> data-> com. (Votre package d'application) -> bases de données
  3. Faites un clic droit sur la base de données et enregistrez sur votre ordinateur local. Pour ouvrir, le fichier que vous pouvez utiliser SQLite Studio en faisant simplement glisser le fichier de base de données dessus.

Voici le lien vers SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download


1

Avec la sortie d' Android Studio 4.1 Canary et Dev preview , vous pouvez utiliser un nouvel outil appelé

Inspecteur de base de données

Inspecteur DB

Installez AS 4.1+, exécutez l'application, ouvrez l'inspecteur de base de données, vous pouvez maintenant afficher vos fichiers de base de données sur le côté gauche du panneau de l'inspecteur de base de données, puis sélectionnez la table pour afficher le contenu.

Requêtes en direct

Soit vous pouvez exécuter vos requêtes en utilisant l' option Exécuter SQL , soit si vous utilisez Room puis ouvrir l'inspecteur de base de données et exécuter l'application, vous pouvez exécuter les requêtes DAO dans votre interface en cliquant sur le bouton Exécuter à gauche de l' @Queryannotation.

requêtes en direct


1

Utilisez Android sqlite comme la base de données côté serveur

Suivez ces étapes ci-dessous:

  1. Trouvez la fenêtre de l'outil de base de données et cliquez dessus comme l'image ci-dessous

entrez la description de l'image ici

  1. Cliquez sur l' icône plus et sélectionnez Android SQLite comme l'image ci-dessous

entrez la description de l'image ici

  1. Connectez votre appareil Android à votre ordinateur

  2. Sélectionnez le package qui vous intéresse et sélectionnez la base de données comme l'image ci-dessous entrez la description de l'image ici

  3. Avant toutes ces étapes ci - dessus vous devez esure que vous avez le droit l' autorisation d'accéder au fichier: /data/data//database/databasefile.db

Après toutes ces étapes, vous verrez le contenu de la base de données comme ci-dessous:

entrez la description de l'image ici

entrez la description de l'image ici

La dernière chose importante est

Vous devez cliquer sur l'icône de mise à jour chaque fois que les données de la base de données ont été mises à jour.

entrez la description de l'image ici

J'espère que cela fonctionne pour vous! Je vous remercie !


0

Ce n'est peut-être pas la réponse que vous cherchez, mais je n'ai pas de meilleur moyen de télécharger la base de données à partir du téléphone. Ce que je vais suggérer, c'est de vous assurer que vous utilisez ce mini-DDMS. Il sera super caché si vous ne cliquez pas sur la très petite boîte de camouflage en bas à gauche du programme. (J'ai essayé de le survoler sinon vous pourriez le manquer.)

Aussi le menu déroulant qui dit pas de filtres (en haut à droite). Il a littéralement une tonne de façons différentes de surveiller différents processus / applications par PPID, nom et bien plus encore. J'ai toujours utilisé cela pour surveiller le téléphone, mais gardez à l'esprit que je ne fais pas le type de travail de développement qui doit être positif à 120%, la base de données ne fait pas quelque chose hors de l'ordinaire.

J'espère que ça aide

entrez la description de l'image ici


0

J'ai mis en place une automatisation en ligne de commande unix de ce processus et mis le code ici:

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

Il s'agit d'un script shell qui prend le nom du package et le nom de la base de données comme paramètres, télécharge le fichier de base de données à partir du périphérique Android connecté et exécute le script personnalisé sur le fichier téléchargé. Ensuite, avec un outil Unix comme 'watch', vous pouvez ouvrir une fenêtre de terminal avec une vue de mise à jour périodique de la sortie de votre script de base de données.


0

J'utilise Windows 7, mon appareil est une API d'appareil Android émulée 23. Je suppose que c'est la même chose pour tout appareil réel tant qu'il est enraciné et que l'API n'est pas supérieure à 23

Allez dans Outils -> Android -> Moniteur de périphérique Android. Accédez à l'Explorateur de fichiers. Dans mon cas, c'est dans data / data // app_webview / databases / file_0 / 1

Je dois ajouter manuellement .db à la fin du fichier nommé "1"


0

C'est une combinaison d'autres réponses avec un plus

  1. Installer le navigateur DB pour SQLite
  2. Obtenez l'emplacement exact de l'Explorateur de fichiers de périphérique pour MyBase.db quelque chose comme "/data/data/com.wwhat.myapp/databases/MyBase.db"
  3. Définissez la fenêtre de projet d'Android sur Project - afin que vous puissiez voir les fichiers (build.gradle, gradle.properties, ... etc)
  4. Dans la fenêtre Projet, faites un clic droit et choisissez Ouvrir dans le terminal
  5. Dans le terminal, vous êtes maintenant dans le directeur racine de votre application à partir du disque dur, alors exécutez: adb pull /data/data/com.wwhat.myapp/databases/MyBase.db
  6. Maintenant, dans la fenêtre Projet de votre Android Studio, vous avez un fichier "MyBase.db"
  7. Double-cliquez sur votre fichier db dans Project et vous pouvez maintenant parcourir / modifier vos bases de données dans DB Browser
  8. Lorsque vous êtes prêt, écrivez simplement les modifications dans le navigateur DB afin que les bases de données soient enregistrées sur le disque dur
  9. Dans le terminal avec la commande: adb push MyBase.db /data/data/com.wwhat.myapp/databases/MyBase.db que vous envoyez simplement du Hardisk au périphérique de la base de données éditée.

0

Suivez les étapes ci-dessus pour ouvrir le dossier de base de données de votre application dans l'explorateur d'appareils Android et vous pouvez y voir six fichiers, les trois premiers sont nommés Android et les trois derniers sont nommés comme nom de votre base de données. Vous n'avez qu'à travailler avec les trois derniers fichiers, enregistrez ces trois fichiers à votre emplacement préféré. Vous pouvez enregistrer ces fichiers en cliquant avec le bouton droit sur le fichier et en cliquant sur le bouton Enregistrer sous (comme si ma base de données était nommée room_database et que trois fichiers étaient nommés room_database, room_database-shm et room_database-wal. Renommez le fichier correspondant comme suit : -

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

Ouvrez maintenant le 1er fichier dans n'importe quel navigateur SQLite et les trois fichiers seront remplis dans le navigateur.


0

Enfin, Android Studio prend en charge cette fonctionnalité avec l'onglet inspecteur de base de données. Vous pouvez facilement appliquer des opérations d'affichage / mise à jour / requête. Ce n'est pas dans un canal stable pour l'instant, mais vous pouvez essayer avec Android Studio 4.1 Canary 5 et supérieur.

Vous pouvez voir à quoi ressemble l'inspecteur de base de données ici

Et vous pouvez télécharger la version appropriée ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.