Je viens de découvrir Realm et je voulais l'explorer plus en détail.J'ai donc décidé de créer un exemple d'application et de m'embêter avec. Jusqu'ici tout va bien.
Cependant, une chose que je n'ai pas encore pu comprendre est de savoir comment afficher ma base de données dans le navigateur de royaume. Comment cela peut-il être fait?
Réponses:
Actuellement, le navigateur de royaume ne prend pas en charge l'accès aux bases de données directement sur l'appareil, vous devez donc copier la base de données à partir de l'émulateur / du téléphone pour l'afficher. Cela peut être fait en utilisant ADB:
adb pull /data/data/<packagename>/files/ .
Cette commande extraira tous les fichiers Realm créés avec
Realm.getInstance(new RealmConfiguration.Builder().build())
. La base de données par défaut est appeléedefault.realm
.Notez que cela ne fonctionnera que sur un émulateur ou si l'appareil est rooté.
la source
Vous pouvez maintenant afficher Realm DB sur le navigateur Chrome à l'aide de Stetho , développé par Facebook. Par défaut, Stetho permet de visualiser Sqlite, réseau, préférences partagées mais avec un plugin supplémentaire ici permet également de visualiser le royaume.
Après avoir configuré votre
Application
classe avec les bibliothèques ci-dessus, pendant que l'application est en cours d'exécution et connectée, ouvrez le navigateur Chrome et naviguezchrome://inspect
pour voirensuite
Resources->Web Sql->default.realm
la source
https://github.com/uPhyca/stetho-realm/raw/master/maven-repo
comme indiqué ici github.com/uPhyca/stetho-realmVous pouvez également extraire votre fichier de n'importe quel périphérique NON rooté à l'aide du shell ADB et de la commande run-as.
Vous pouvez utiliser ces commandes pour extraire du stockage privé de votre application une base de données nommée your_database_file_name située dans le dossier files:
la source
adb exec-out run-as package.name cat files/your_database_file_name < your_database_file_name
Si vous êtes paresseux pour obtenir le fichier de base de données de royaume à chaque fois avec adb, vous pouvez ajouter une fonction d'exportation à votre code Android, qui vous enverra un e-mail avec le fichier de base de données de royaume en pièce jointe.
Voici un exemple:
N'oubliez pas d'ajouter cette autorisation d'utilisateur à votre fichier de manifeste Android:
la source
Pour Android (pas besoin de rooter votre appareil)
Pour obtenir une copie de l'une des bases de données Realm sur votre appareil, accédez à Device File Explorer dans Android Studio.
Accédez à
/data/data/your.package.name/files/
.Vous y trouverez vos fichiers * .realm. Faites un clic droit, puis Enregistrer sous . Assurez-vous de synchroniser avant de les enregistrer.
Utilisez Realm Browser ou l'un de ceux - ci pour afficher les fichiers * .realm:
la source
Il existe une solution de contournement. Vous pouvez accéder directement au fichier à partir du moniteur de périphérique. Vous ne pouvez accéder à ce répertoire que lorsque vous utilisez un émulateur ou un périphérique rooté.
Dans Android Studio:
Sélectionner
Outils de menu → Android → Moniteur de périphérique Android → Explorateur de fichiers → données → données → (nom de votre package) → fichiers → * db.realm
Extrayez ce fichier de l'appareil:
Depuis Android Studio 3 canary 1, Device File Explorer a été introduit. Vous devez consulter le fichier de domaine ici. Ensuite, (sélectionnez votre package) → sélectionnez le fichier de royaume → Faites un clic droit et enregistrez.
Et ouvrez le fichier dans le navigateur Realm. Vous pouvez voir vos données maintenant.
la source
Vous pouvez accéder directement au fichier de domaine. Voici la solution que j'ai utilisée.
Vous pouvez d'abord copier le fichier de domaine qui se trouve dans '/ data / data / packagename / files' dans Environment.getExternalStorageDirectory () + '/ FileName.realm':
Deuxièmement, utilisez l'outil ADB pour extraire ce fichier comme ceci:
Vous pouvez maintenant ouvrir le fichier dans le navigateur de royaume.
la source
Voici une solution qui ne nécessite pas que votre téléphone soit rooté, en utilisant la
run-as
commande présente àadb
l' intérieur du shell. La seule condition préalable est que vous devez avoir une version de débogage de votre application installée sur le téléphone cible.Vous aurez une copie de la base de données de n'importe quel téléphone dans votre répertoire local, que vous pourrez ensuite charger dans le navigateur de royaume.
la source
Vous pouvez désormais y accéder directement si vous utilisez un émulateur.
Commencez par enregistrer le chemin où se trouve le fichier dans l'émulateur comme @bmunk dit:
Log.d(TAG, "path: " + realm.getPath());
Deuxième Recherchez-le et faites un clic droit sur le fichier et choisissez "Enregistrer sous", dans la boîte de dialogue apparaîtra la route où le fichier se trouve réellement dans votre système.
Et puis, collez simplement la route dans la boîte de dialogue "Ouvrir un fichier local" de Realm Studio.
(J'ai testé cela sous Windows uniquement)
la source
Voici mon script shell prêt à l'emploi. Changez simplement le nom du package et vos chemins adb, puis le script fera le nécessaire.
Plus de détails sur ce billet de blog: http://medyo.github.io/2016/browse-populate-and-export-realm-database-on-android/
la source
Rester simple:
Explication:
adb
installation. Si vous utilisez Android Studio, regardez Fichier> Structure du projet> Emplacement du SDK> Emplacement du SDK Android et ajoutezplatform-tools
à ce chemin.run-as
argumentNB: Le fichier s'appelle default.realm car je n'ai pas changé son nom lors de sa configuration - le vôtre peut être différent.
la source
Vous avez quelques options pour afficher vos fichiers de royaume Android:
Comme @Christian Melchior a dit que vous pouvez extraire votre base de données de royaume de l'appareil et l'ouvrir sur votre Mac à l'aide du navigateur OSX Realm
Vous pouvez utiliser le navigateur tiers Android Realm que j'ai créé pour faciliter un peu le développement Android avec le royaume. L'application vous montrera tous les fichiers de domaine sur votre appareil et vous pourrez afficher tous vos fichiers de domaine en temps réel tout en testant votre application.
Vous pouvez utiliser le navigateur Chrome Stetho La description complète de l'utilisation de Setho est fournie par @Jemshit Iskendero answer.
la source
Voici une coquille pour les paresseux comme moi :)
Le
.realm
fichier sera stocké dans letmpRealm/
dossier à côté du.sh
fichier.Ou si vous préférez laisser
tmpRealm/
être sur la carte SD:Référence:
la source