Я тестировал создание, вставку и извлечение данных в свои приложения db и знаю, что это работает с использованием операторов журнала.
Тем не менее, я хочу ускорить тестирование и использование Android Device Monitor. Однако, хотя db существует и данные хранятся, при обращении к ним папка data
пуста:
Почему это так? Как это можно настроить для отображения файла и содержимого db?
В дополнение к ответам @Steven K: Если вы хотите получить доступ к своим данным без необходимости запускать свое реальное устройство, вам нужно запустить приложение в эмуляторе с API 23 (или ниже). Известно, что API выше 23 может создавать проблемы при развертывании Android Device Monitor.
Папка /data
могут быть пустыми, потому что вам не хватает соответствующих разрешений. Чтобы решить эту проблему, мне пришлось выполнить следующие команды.
adb shell su
Эти команды запускают оболочку в эмуляторе и предоставляют вам права root. Команда adb
находится в папке platform-tools
Android SDK, обычно устанавливаемой в ~/Library/Android/sdk/
на MacOS.
chmod -R 777 /data
Измените разрешения папки (и рекурсивно вложенных папок) /data
, чтобы они отображались в инструменте. Монитор устройств ndroid .
adb root
Наконец, эта команда перезапускает adb
как root. Будьте осторожны, он работает только с разработками (как правило, создаются эмуляторы).
После этого вы можете увидеть содержимое папки /data
и перенести данные, расположенные внутри. Вы также можете сделать это в консоли, используя adb pull <remote> <locale>
, например:
adb pull /data/data/<app name>/databases/<database> .
Он не пуст … у вас просто нет разрешения на просмотр этой папки на устройстве.
Попробуйте в симуляторе, и он будет работать для вас, так как у вас есть root-доступ.
Может быть проще хранить базу данных в общей папке во время разработки.
Или вы можете видеть это сообщение:
Как получить доступ к папке данных / данных на устройстве Android?