Я только что открыл для себя Realm и хотел изучить его более подробно, поэтому решил создать образец приложения и повозиться с ним. Все идет нормально.
Однако одна вещь, которую я пока не смог решить, - это как просматривать мою базу данных в Realm Browser. Как это может быть сделано?
Ответы:
В настоящее время Realm Browser не поддерживает доступ к базам данных непосредственно на устройстве, поэтому вам необходимо скопировать базу данных с эмулятора / телефона, чтобы просмотреть ее. Это можно сделать с помощью ADB:
adb pull /data/data/<packagename>/files/ .
Эта команда извлечет все файлы Realm, созданные с использованием
Realm.getInstance(new RealmConfiguration.Builder().build())
. База данных по умолчанию называетсяdefault.realm
.Обратите внимание, что это будет работать только на эмуляторе или если устройство внедрено.
источник
Теперь вы можете просматривать Realm DB в браузере Chrome с помощью Stetho , разработанного Facebook. По умолчанию Stetho позволяет просматривать Sqlite, сеть, общие настройки, но с дополнительным плагином здесь можно также просматривать Realm.
После настройки вашего
Application
класса с помощью вышеуказанных библиотек, пока приложение работает и подключено, откройте браузер Chrome и перейдите,chrome://inspect
чтобы увидетьзатем
Resources->Web Sql->default.realm
источник
https://github.com/uPhyca/stetho-realm/raw/master/maven-repo
как показано здесь github.com/uPhyca/stetho-realmВы также можете вытащить свой файл с любого устройства, не имеющего корневого доступа, с помощью оболочки ADB и команды run-as.
Вы можете использовать эти команды, чтобы извлечь из личного хранилища вашего приложения базу данных с именем your_database_file_name, расположенную в папке с файлами:
источник
adb exec-out run-as package.name cat files/your_database_file_name < your_database_file_name
Если вам лень каждый раз получать файл базы данных области с помощью adb, вы можете добавить функцию экспорта в свой код Android, которая отправит вам электронное письмо с файлом базы данных области в качестве вложения.
Вот пример:
Не забудьте добавить это разрешение пользователя в свой файл манифеста Android:
источник
Для Android (рутировать устройство не нужно)
Чтобы получить копию любой базы данных Realm на вашем устройстве, перейдите в Проводник файлов устройства в Android Studio.
Перейдите к
/data/data/your.package.name/files/
.Там вы найдете свои файлы * .realm. Щелкните правой кнопкой мыши, затем " Сохранить как" . Обязательно синхронизируйте их, прежде чем сохранять.
Используйте Realm Browser или любой из них для просмотра файлов * .realm:
источник
Есть обходной путь. Вы можете получить прямой доступ к файлу с монитора устройства. Вы можете получить доступ к этому каталогу только при использовании эмулятора или рутированного устройства.
В Android Studio:
Выбрать
Меню Инструменты → Android → Android Device Monitor → Проводник → данные → данные → (Имя вашего пакета) → файлы → * db.realm
Вытащите этот файл с устройства:
Из Android Studio 3 canary 1 был представлен проводник файлов устройства. Вам нужно посмотреть файл области здесь. Затем (выберите свой пакет) → выберите файл области → щелкните правой кнопкой мыши и сохраните.
И откройте файл в Realm Browser. Теперь вы можете увидеть свои данные.
источник
Вы можете получить доступ к файлу области напрямую. Вот решение, которое я использовал.
Сначала вы можете скопировать файл области, который находится в '/ data / data / packagename / files', в Environment.getExternalStorageDirectory () + '/ FileName.realm':
Во-вторых, используйте инструмент ADB, чтобы вытащить этот файл следующим образом:
Теперь вы можете открыть файл в Realm Browser.
источник
Вот решение, которое не требует, чтобы ваш телефон был рутирован, с помощью
run-as
команды, присутствующей внутриadb
оболочки. Единственным условием является то, что на целевом телефоне должна быть установлена отладочная сборка вашего приложения.У вас будет копия БД с любого телефона в вашем локальном каталоге, которую вы затем сможете загрузить в Realm Browser.
источник
Теперь вы можете получить к нему доступ напрямую, если используете эмулятор.
Сначала зарегистрируйте путь, по которому файл находится в эмуляторе, как говорит @bmunk:
Log.d(TAG, "path: " + realm.getPath());
Во-вторых, выполните поиск и щелкните правой кнопкой мыши файл и выберите «Сохранить как», в диалоговом окне появится маршрут, по которому файл действительно находится в вашей системе.
А затем просто вставьте маршрут в диалоговое окно «Открыть локальный файл» Realm Studio.
(Я тестировал это только в Windows)
источник
Вот мой готовый к использованию сценарий оболочки. Просто измените имя пакета и ваши пути adb, и скрипт сделает все необходимое.
Подробнее об этом сообщении в блоге: http://medyo.github.io/2016/browse-populate-and-export-realm-database-on-android/
источник
Все просто:
Объяснение:
adb
установке. Если вы используете Android Studio, посмотрите Файл> Структура проекта> Расположение SDK> Расположение Android SDK и добавьтеplatform-tools
к этому пути.run-as
аргументаNB: файл называется default.realm, потому что я не менял его имя при настройке - ваше может быть другим.
источник
У вас есть несколько вариантов просмотра файлов области Android:
Как сказал @Christian Melchior, вы можете вытащить свою базу данных Realm с устройства и открыть ее на своем Mac с помощью OSX Realm Browser
Вы можете использовать сторонний браузер Android Realm, созданный мной, чтобы немного упростить разработку Android с помощью Realm . Приложение покажет вам все файлы области на вашем устройстве, и вы сможете просматривать все файлы области в реальном времени во время тестирования приложения.
Вы можете использовать браузер Chrome Stetho. Полное описание того, как использовать Setho, предоставлено @Jemshit Iskendero.
источник
Вот оболочка для ленивых вроде меня :)
.realm
Файл будет храниться внутриtmpRealm/
папки рядом с.sh
файлом.Или, если вы предпочитаете оставить
tmpRealm/
на SD-карте:Ссылка:
источник