Intereting Posts
Карты V2 с viewPager Fontfamily не работает на Android Lollipop Android, как установить программные права на rw- r-r- Preferexternal в манифесте не работает при установке с рынка Отправка полезной нагрузки только для уведомлений в GCM с использованием AWS SNS Опыт работы с Vaadin touchkit Android: URLConnection.getContentLength () дает неверное значение Android – отображать снимок изображения под изображениями в Gridview Динамические ресурсы String для Android Сделайте SurfaceView большим, чем экран (установка предварительного просмотра камеры на SurfaceView больше, чем на дисплее) Ограничения по локализации Android Как рисовать и масштабировать растровое изображение на холсте с использованием бикубической интерполяции в Android? Как предоставить пространство между текстом в текстовом виде? Прозрачная строка состояния охватывает режим действия на Kitkat Не удалось отправить команду ATZ в ELM 327 после установления соединения с ELM327 в андроиде

Где Android-эмулятор хранит базу данных SQLite?

Я работаю над приложением Android, которое хранит данные в базе данных SQLite. Мой вопрос в том, где этот файл базы данных будет храниться в файловой системе, когда вы используете эмулятор?

Я видел, что он хранится в

/data/data/package_name/databases

Но мне нужно знать, где на жестком диске моей локальной машины, на самом деле это карта. База данных сохраняется на нескольких прогонах эмулятора, даже после того, как выключила машину, поэтому она не может просто находиться в ОЗУ …

Solutions Collecting From Web of "Где Android-эмулятор хранит базу данных SQLite?"

Файловая система эмулятора не отображается в каталог на вашем жестком диске. Образ диска эмулятора хранится в виде файла изображения, с которым вы можете управлять через Eclipse (искать иконку G1 на панели инструментов) или через сам эмулятор эмулятора (запустите «эмулятор -help» для описания параметров) ,

Лучше всего использовать adb из командной строки для подключения к запущенному эмулятору. Если вы можете получить конкретный каталог и имя файла, вы можете сделать «adb pull», чтобы вытащить файл базы данных из эмулятора и на ваш обычный жесткий диск.

Изменить : Устранено предположение, что это работает и для некорневых устройств – оно работает только для эмуляторов и устройств, в которых вы используете adb как root.

Пожалуйста, обратитесь к этой ссылке или следуйте приведенному ниже ответу.


Обновление, упомянутое в комментариях ниже:

Вам больше не нужно быть в перспективе DDMS, просто откройте «Проводник» из окна Eclipse > Показать вид> Другое … Кажется, что приложение не нужно работать даже, я могу просматривать файлы в разных приложениях содержание. Я запускаю ADB версии 1.0.29


Или вы можете попробовать старый подход:

Откройте перспективу DDMS на вашей Eclipse IDE

( Окно> Открыть Перспектива> Другое> DDMS )

И самое главное:

ВАША ПРИМЕНЕНИЕ ДОЛЖНА БЫТЬ БЕСПЛАТНО, ЧТО ВЫ МОЖЕТЕ ВИДЕТЬ ИЕРАРХИЮ ПАПКИ И ФАЙЛОВ .

Затем в вкладке «Проводник» вы будете следовать по пути:

Data> data> your-package-name> базы данных> ваш-database-файл .

Затем выберите файл, щелкните значок диска в правом углу экрана, чтобы загрузить файл .db . Если вы хотите загрузить файл базы данных в эмулятор, вы можете щелкнуть по значку телефона (рядом с символом диска) и выбрать файл для загрузки.

Если вы хотите увидеть содержимое файла .db , я советую вам использовать SQLite Database Browser, который вы можете скачать здесь .

PS: Если вы хотите увидеть базу данных с реального устройства, вы должны укрепить свой телефон.

Другие ответы сильно устарели. В Android Studio вы так и делаете:

  1. Нажмите Toos> Android> Android-устройство Monidtor

Введите описание изображения здесь

  1. Нажмите « Проводник»

Введите описание изображения здесь

  1. Перейдите в свой файл db и нажмите кнопку « Сохранить» .

Введите описание изображения здесь

Я написал простой скрипт bash, который вытаскивает базу данных с устройства Android на ваш компьютер (пользователи Linux, Mac)

Filename: android_db_move.sh Использование: android_db_move.sh com.example.app db_name.db

 #!/bin/bash REQUIRED_ARGS=2 ADB_PATH=/Users/Tadas/Library/sdk/platform-tools/adb PULL_DIR="~/" if [ $# -ne $REQUIRED_ARGS ] then echo "" echo "Usage:" echo "android_db_move.sh [package_name] [db_name]" echo "eg. android_db_move.sh lt.appcamp.impuls impuls.db" echo "" exit 1 fi; echo"" cmd1="$ADB_PATH -d shell 'run-as $1 cat /data/data/$1/databases/$2 > /sdcard/$2' " cmd2="$ADB_PATH pull /sdcard/$2 $PULL_DIR" echo $cmd1 eval $cmd1 if [ $? -eq 0 ] then echo ".........OK" fi; echo $cmd2 eval $cmd2 if [ $? -eq 0 ] then echo ".........OK" fi; exit 0 

Базы данных хранятся в виде файлов SQLite в / data / data / PACKAGE / databases / DATABASEFILE, где:

  • ПАКЕТ – это пакет, объявленный в AndroidManifest.xml (тег «манифест», атрибут «пакет»)
  • DATABASEFILE – это имя, переданное при вызове конструктора SQLiteOpenHelper, как описано здесь: http://developer.android.com/guide/topics/data/data-storage.html#db

Вы можете увидеть (скопировать из / в файловую систему) файл базы данных в эмуляторе, выбрав перспективу DDMS , на вкладке «Проводник».

Поскольку вопрос не ограничивается Android Studio, поэтому я даю путь для Visual Studio 2015 (работал для Xamarin).

Инструменты-Android-Android Device Monitor

Введите описание изображения здесь

Особая благодарность другим ответчикам за этот вопрос.

Простое решение – работает как для эмулятора, так и для подключенных устройств

1 См. Список доступных устройств / эмуляторов.

 $ adb devices 

Список подключенных устройств

Устройство эмулятора устройства G7NZCJ015313309-5554

9885b6454e46383744 устройство

2 Запустите резервное копирование на своем устройстве / эмуляторе

 $ adb -s emulator-5554 backup -f ~/Desktop/data.ab -noapk com.your_app_package.app; 

3 Извлечение данных.ab

 $ dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -; 

Вы найдете базу данных в папке /db