Как мне просмотреть мой файл Realm в браузере Realm?
Я только что открыл для себя Realm и хотел изучить его более подробно, поэтому решил создать пример приложения и повозиться с ним. Пока все хорошо.
Однако одна вещь, с которой я пока не смог разобраться, - это как просмотреть мою базу данных в браузере Realm. Как это можно сделать?
Переведено автоматически
Ответ 1
В настоящее время браузер Realm не поддерживает доступ к базам данных непосредственно на устройстве, поэтому вам необходимо скопировать базу данных из эмулятора / телефона, чтобы просмотреть ее. Это можно сделать с помощью ADB:
adb pull /data/data/<packagename>/files/ .
Эта команда извлечет все файлы Realm, созданные с помощью Realm.getInstance(new RealmConfiguration.Builder().build()) . Вызывается база данных по умолчанию default.realm.
Обратите внимание, что это будет работать только на эмуляторе или если устройство рутировано.
Ответ 2
Теперь вы можете просматривать Realm DB в браузере Chrome с помощью Stetho, разработанного Facebook. По умолчанию Stetho позволяет просматривать Sqlite, network, sharedpreferences, но с дополнительным плагином here также позволяет просматривать Realm.
После настройки вашего Application класса с вышеуказанными библиотеками, пока приложение запущено и подключено, откройте браузер Chrome и перейдитеchrome://inspect, чтобы просмотреть
Затем Resources->Web Sql->default.realm
Ответ 3
Вы также можете извлечь свой файл с любого устройства БЕЗ рутинга, используя оболочку ADB и команду run-as.
Вы можете использовать эти команды, чтобы извлечь из личного хранилища вашего приложения базу данных с именем your_database_file_name, расположенную в папке files:
// For devices running an android version lower than Android 5.0 (Lollipop) adb pull /data/data/package.name/files/your_database_file_name
// For devices running an Android version equal or grater // than Android 5.0 (Lollipop) adb exec-out run-as package.name cat files/your_database_file_name > your_database_file_name adb shell "run-as package.name chmod 600 /data/data/package.name/files/your_database_file_name"
Ответ 4
Если вам лень каждый раз получать файл базы данных realm с помощью adb, вы могли бы добавить функцию экспорта в свой Android-код, которая отправляет вам электронное письмо с файлом базы данных realm в качестве вложения.
FileexportRealmFile=null; try { // get or create an "export.realm" file exportRealmFile = newFile(getActivity().getExternalCacheDir(), "export.realm");
// if "export.realm" already exists, delete exportRealmFile.delete();
// copy current realm to "export.realm" realm.writeCopyTo(exportRealmFile);