Comment accéder à la base de données lors du développement sur le téléphone Android? [dupliquer]

StackOverflow https://stackoverflow.com/questions/2811615

  •  26-09-2019
  •  | 
  •  

Question

    

Cette question a déjà une réponse ici:

         

Je ne parviens pas à accéder à la base de données alors que je développe sur le téléphone. Chaque fois que j'exécute

cd /data/data/com.mycompck/databases

et puis exécutez ls je reçois: "opendir failed, Permission denied"

Ou quand je tape sqlite3 je reçois: "sqlite3: permission denied"

Qu'est-ce que je fais mal?

Y a-t-il des applications qui peuvent me aider à obtenir une vue humaine de résolveurs de contenu valeurs et / ou bases de données SQLite?

Était-ce utile?

La solution

Pour répondre à la première partie de votre question, consultez cette réponse . En gros, votre téléphone a besoin d'avoir un accès root, et vous devez exécuter adb en mode root (en utilisant "root adb").

En ce qui concerne la deuxième partie, j'utilise SQLite Database Browser pour afficher mes SQLite dbs (bien que ce soit seulement lorsque le db est sur mon ordinateur, je ne sais pas de tous les navigateurs sur-appareil). Je ne connais pas de moyen d'obtenir une vue humaine de résolveurs de contenu.

Autres conseils

Vérifier ma réponse du fil suivant: Pourquoi ai-je vu refuser l'accès au dossier de données lors de l'utilisation adb

  

A partir du niveau 8 API (Android 2.2), si vous construisez l'application comme débogable, vous pouvez utiliser la commande run-as shell pour exécuter une commande ou exécutable comme   utilisateur spécifique / application ou tout simplement passer à l'UID de votre   l'application afin que vous puissiez accéder à son répertoire data.

Donc, fondamentalement, vous aurez besoin de faire une version de débogage (qui est fait automatiquement chaque fois que vous lancez l'application de l'Android studio sauf si vous demandez la version release) et exécutez les commandes suivantes:

run-as com.mycompck
cd /data/data/com.mycompck/databases
ls
sqlite3 ./yourdatabase.db

Il faut toutefois noter que binaire sqlite3 n'est pas présent par défaut sur de nombreux téléphones. Ainsi, vous aurez peut-être besoin de le télécharger quelque part (par exemple, des archives SuperOneClick http://shortfuse.org/ ), économiser sur la carte SD et le rendre exécutable (ce qui est un peu difficile cependant), par exemple:

run-as com.mycompck
cd /data/data/com.mycompck/
cat /sdcard/sqlite3 >./sqlite3
chmod 744 ./sqlite3
./sqlite3 ./databases/yourdatabase.db

Vous devez être root pour accéder à tous les fichiers de base de données. Ainsi, vous pouvez obtenir la racine sur votre téléphone (rechercher des informations sur Google) ou la base de données de débogage seulement de l'émulateur (Wich vous donne un accès root toujours).

Au revoir!

La meilleure façon de voir et de gérer votre base de données Android app est d'utiliser cette bibliothèque https://github.com/ sanathp / DatabaseManager_For_Android

Son un seul fichier d'activité java, il suffit d'ajouter le fichier java dans votre dossier source, vous pouvez afficher les tables de votre base de données de l'application, la mise à jour, supprimer, ajouter des lignes à vous déposerez .Everything de votre application.

Lorsque le développement est fait supprimer le fichier java de votre dossier src thats it.

Il m'a beaucoup aidé .Hope il vous aide aussi.

Vous pouvez voir ici la démo 1 minute: http://youtu.be/P5vpaGoBlBY

Je l'ai lu sur ce un peu et accéder à vos fichiers de base de données pour mobile semble tout à fait d'un tracas.

Jetez un oeil à ce sujet. avec cela, vous pouvez consulter la base de données à l'intérieur de votre application. Gestionnaire de base de données de

Pour moi, cela a bien fonctionné. Ce genre de dépend aussi de ce que vous avez l'intention de faire ofcourse.

it helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top