J'ai créé une base de données sqlite par programme avec la méthode par défaut d'extension SQLiteOpenHelper
et de remplacement onCreate()
. De cette façon, la base de données est créée à la volée en cas de besoin.
Je voudrais vérifier le contenu du fichier db sur ma machine OS X avec un navigateur sqlite. Je connais le nom du fichier db, mais je ne le trouve pas sur l'appareil. Je me suis connecté à l'appareil via USB et j'ai regardé avec le viseur et le terminal, mais je ne trouve tout simplement pas le fichier db.
Quel est l'emplacement par défaut d'une base de données sqlite sur un appareil Android?
Réponses:
Vous pouvez trouver votre base de données créée, nommée
<your-database-name>
dans
Extrayez-le à l'aide de l'explorateur de fichiers et renommez-le pour avoir l'extension .db3 pour l'utiliser dans SQLiteExplorer
Utilisez l'explorateur de fichiers de DDMS pour accéder au répertoire de l'émulateur.
la source
700
. Vous avez besoin des privilèges root pour le voir.Pour cela, ce que j'ai fait est
Et pour ce faire, votre application doit avoir l'autorisation d'accéder à la carte SD, ajoutez le paramètre suivant à votre manifest.xml
Pas une manière brillante, mais fonctionne.
la source
Le contexte contient de nombreuses fonctions de chemin: Context.getXXXPath ()
L'une d'elles est android.content.Context.getDatabasePath (String dbname) qui renvoie le chemin absolu d'une base de données appelée dbname.
Le chemin retourné, dans ce cas, serait quelque chose comme:
Notez que ce chemin est généré automatiquement si vous utilisez SQLiteOpenHelper pour ouvrir la base de données.
la source
Si vous parlez d'un appareil réel
/data/data/<application-package-name>
n'est pas accessible. Vous devez avoir les droits root ...la source
sudo su
C'est une vieille question, mais y répondre peut aider les autres.
Le chemin par défaut où Android enregistre les bases de données ne peut pas être accédé sur les appareils non rootés. Ainsi, le moyen le plus simple d'accéder au fichier de base de données (uniquement pour les environnements de débogage) est de modifier le constructeur de la classe:
N'oubliez pas de changer d'environnement de production avec ces lignes:
la source
Failed to open database '/mnt/sdcard/itens'.
dansLogcat
/data/data/packagename/databases/
c'est à dire
/data/data/com.example.program/databases/
la source
Une base de données SQLite n'est qu'un fichier. Vous pouvez prendre ce fichier, le déplacer et même le copier sur un autre système (par exemple, de votre téléphone vers votre poste de travail), et cela fonctionnera correctement. Android stocke le fichier dans le
/data/data/packagename/databases/
répertoire. Vous pouvez utiliser leadb command
ouFile Explorer view
dans Eclipse (Window > Show View > Other... > Android > File Explorer
) pour l'afficher, le déplacer ou le supprimer.la source
Eh bien, cela pourrait être tard, mais cela aidera. Vous pouvez accéder à la base de données sans rooter votre appareil via adb
démarrez l'adb en utilisant cmd et tapez les commandes suivantes
Maintenant, vous pouvez ouvrir à partir d'ici.
la source
Si vous nommez votre base de données en tant que fichier sans donner de chemin, le moyen le plus courant d'obtenir son dossier est le suivant:
où
DBAdapter.DATABASE_NAME
est juste unString
comme "mydatabase.db".Context.getFilesDir()
renvoie le chemin des fichiers de l'application comme:/data/data/<your.app.packagename>/files/
c'est pourquoi vous devez.getParent()+"/databases/"
, pour supprimer les «fichiers» et ajouter des «bases de données» à la place.BTW Eclipse vous avertira de la chaîne "data / data /" codée en dur mais pas dans ce cas.
la source
Et vérifiez si votre base de données est stockée dans le stockage de l'appareil. Si tel est le cas, vous devez utiliser l'autorisation dans Manifest.xml:
la source
Vous pouvez y accéder en utilisant adb shell how-to
Contenu du lien ci-dessus:
la source
Si votre application crée une base de données, cette base de données est par défaut enregistrée dans le répertoire
DATA/data/APP_NAME/databases/FILENAME.
Les parties du répertoire ci-dessus sont construites sur la base des règles suivantes. DATA est le chemin que renvoie la méthode Environment.getDataDirectory (). APP_NAME est le nom de votre application. FILENAME est le nom que vous spécifiez dans votre code d'application pour la base de données.
la source
Vous pouvez également vérifier si votre IDE dispose d'un utilitaire tel que la perspective DDMS d'Eclipse qui vous permet de parcourir le répertoire et / ou de copier des fichiers vers et depuis l'émulateur ou un périphérique enraciné.
la source
Définissez le nom de votre base de données comme:
Et vous pouvez voir votre base de données dans:
la source
Ne codez pas en dur "/ sdcard /"; utilisez plutôt Environment.getExternalStorageDirectory (). getPath ()
la source
Ne pas coder en dur le chemin comme
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
. Eh bien, cela fonctionne dans la plupart des cas, mais celui-ci ne fonctionne pas dans les appareils où l'appareil peut prendre en charge plusieurs utilisateurs. Le chemin peut être comme//data/user/10/<Your-Application-Package-Name>/databases/<your-database-name>
. La solution possible à cela consiste à utilisercontext.getDatabasePath(<your-database-name>)
.la source