J'ai testé la création, l'insertion et la récupération de données dans la base de données de mes applications et je sais que cela fonctionne grâce à l'utilisation des instructions Log.
Cependant, je souhaite accélérer les tests et utiliser le moniteur de périphériques Android. Cependant, bien que la base de données existe et que les données soient stockées, lors de l'accès ci-dessous, le dossier data
est vide:
Pourquoi serait-ce le cas? Comment cela peut-il être configuré pour afficher le fichier db et son contenu?
Le dossier /data
peut être vide car il vous manque les autorisations appropriées. Pour le résoudre, je devais exécuter les commandes suivantes.
adb Shell
su
Ces commandes démarrent un shell dans l'émulateur et vous octroient les droits root. La commande adb
se trouve dans le dossier platform-tools
du SDK Android, généralement installé dans ~/Library/Android/sdk/
sur MacOS.
chmod -R 777 /data
Modifiez les autorisations du dossier (et des sous-dossiers de manière récursive) /data
afin de les faire apparaître dans l'outil A ndroid Device Monitor .
adb root
Enfin, cette commande redémarre adb
en tant que root. Attention, cela ne fonctionne que sur les versions de développement (généralement les versions d'émulateurs).
Ensuite, vous pouvez voir le contenu du dossier /data
et transférer les données situées dans. Vous pouvez également le faire dans la console, en utilisant adb pull <remote> <locale>
, par exemple:
adb pull /data/data/<app name>/databases/<database> .
En plus des réponses de @Steven K: Si vous souhaitez accéder à vos données sans avoir à rooter votre appareil réel, vous devez exécuter votre application dans un emulator avec API 23 (ou une version inférieure). C'est un problème connu que des API supérieures à 23 peuvent poser des problèmes lors du déploiement d'Android Device Monitor.
Ce n'est pas vide ... vous n'avez simplement pas la permission de voir ce dossier sur un appareil.
Essayez-le dans un simulateur et cela fonctionnera pour vous puisque vous avez un accès root.
Si quelqu'un rencontre le problème indiqué, suivez les étapes ci-dessous dans la fenêtre du terminal:
C'est tout. Problème résolu.
Il peut être plus facile de stocker la base de données dans un dossier public pendant le développement.
Ou vous pouvez voir ce post:
Comment accéder aux données/dossier de données dans un appareil Android?
Il existe deux manières de parcourir le dossier de données (données/données) de votre appareil.
Emplacement ADM - (YOUR_SDK_PATH\Android\sdk\tools)
adb root
Si vous voulez juste voir votre DB & Tables, alors le plus simple consiste à utiliser Stetho
. Outil assez cool pour chaque développeur Android qui utilise SQLite
buit by Facobook developed
.
Steps to use the tool
'compiler' com.facebook.stetho: stetho: 1.4.2 '
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
Maintenant, construisez votre application et lorsque l'application est en cours d'exécution, vous pouvez parcourir votre base de données d'applications en ouvrant chrome dans l'URL:
chrome://inspect/#devices
Les images de la même chose sont comme ci-dessous_
ChromeInspact
Votre DB
J'espère que cela aidera tous! :)
J'ai eu le même problème avec API_25
, cela n'a pas fonctionné pour moi.
Configurez un API_23 emulator
, cela fonctionnera sur API_23
.
Dans cmd GoTo:
C:\Users\UserName\Android-sdks\platform-tools
Exécuter:
adb root
Terminé
Si vous utilisez Windows, suivez ces instructions étape par étape:
cd C:\Android\sdk\platform-tools
.adb root
adb pull /data/data/ name-of-your-package /databases/name-of-your-database
platform-tools
.Vous pouvez ensuite installer l'extension Sqlite Manager dans Google Chrome via la boutique en ligne Chrome et l'utiliser pour afficher et gérer votre base de données exportée.
Si vous avez un téléphone enraciné, vous pouvez suivre les mêmes instructions que ci-dessus.