138 votes

Comment puis-je consulter la base de données SQLite sur un appareil Android?

J'ai un ensemble de données dans une base de données SQLite. J'ai besoin de visualiser la base de données sur un appareil. Comment puis-je faire cela ?

J'ai vérifié en mode ddms. Les données dans l'explorateur de fichiers sont vides.

3voto

Kai Wang Points 1637

Essayez facebook Stetho.

Stetho est un pont de débogage pour les applications Android, permettant d'utiliser les puissants outils de développement de Chrome et bien plus encore.

https://github.com/facebook/stetho

3voto

Hardik Vasani Points 710

étape 1 Copiez cette classe dans votre package

étape 2 placez le code suivant dans votre classe qui étend SQLiteOpenHelper.

 //-----------------pour afficher la table de la base de données----------------------------------------

public ArrayList getData(String Query)
{
    //obtenir la base de données modifiable
    SQLiteDatabase sqlDB =this.getWritableDatabase();
    String[] columns = new String[] { "mesage" };
    //une liste d'array de curseurs pour sauvegarder deux curseurs : un contenant les résultats de la requête
    //l'autre contenant le message d'erreur si des erreurs sont déclenchées
    ArrayList alc = new ArrayList(2);
    MatrixCursor Cursor2= new MatrixCursor(columns);
    alc.add(null);
    alc.add (null);

    try{
        String maxQuery = Query ;
        //exécuter la requête, les résultats seront enregistrés dans le curseur c
        Cursor c = sqlDB.rawQuery(maxQuery, null);

        //ajouter une valeur au curseur2
        Cursor2.addRow(new Object[] { "Succès" });

        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("impression exception", sqlEx.getMessage());
        //si des exceptions sont déclenchées, enregistrer le message d'erreur dans un curseur et renvoyer la liste d'array
        Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() });
        alc.set(1,Cursor2);
        return alc;
    }
    catch(Exception ex)
    {
        Log.d("impression exception",ex.getMessage());
        //si des exceptions sont déclenchées, enregistrer le message d'erreur dans un curseur et renvoyer la liste d'array
        Cursor2.addRow(new Object[] { ""+ex.getMessage() });
        alc.set(1,Cursor2);
        return alc;
    }
}

étape 3 enregistrez dans le manifeste

étape 4

Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);

2voto

lomza Points 1763

Cela fonctionne avec Android 6.0 (au moins les applications débogables):

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.

2voto

NovemberEleven Points 230

Vous pouvez essayer SQLiteOnWeb. Il gère votre base de données SQLite dans le navigateur.

2voto

saeed Points 1409

J'espère que cela vous aidera

En utilisant le Terminal, commencez par pointer votre emplacement là où se trouve le SDK Android

par exemple : C:\Users\AppData\Local\Android\sdk\platform-tools>

puis vérifiez la liste des appareils connectés en utilisant

adb devices

et ensuite exécutez cette commande pour copier le fichier depuis l'appareil vers votre système

adb -s VOTRE_ID_DEVICE shell run-as VOTRE_NOM_PACKAGE chmod -R 777 /data/data/VOTRE_NOM_PACKAGE/databases && adb -s VOTRE_ID_DEVICE shell "mkdir -p /sdcard/tempDB" && adb -s VOTRE_ID_DEVICE shell "cp -r /data/data/VOTRE_NOM_PACKAGE/databases/ /sdcard/tempDB/." && adb -s VOTRE_ID_DEVICE pull sdcard/tempDB/ && adb -s VOTRE_ID_DEVICE shell "rm -r /sdcard/tempDB/*"

Vous pouvez trouver le fichier de base de données dans ce chemin

Android\sdk\platform-tools\tempDB\databases

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X