Intereting Posts
Android NDK build, метод не может быть разрешен Прокручиваемый контент внутри HTML не прокручивается в эмуляторе или телефоне Android Android: отключить кнопки OK / Отмена DialogFragment Необходимо ли закрыть базу данных? BottomSheet улетит с изменением видимости Получайте события касания в диалоге, который отображается сам, когда палец уже касался экрана Eclipse JUNO не запускается Android: повернуть изображение в ImageView на 90 градусов, но без задержки Как я могу обновить отображение кнопки действия редактора на лету? Instagram для эмулятора Android Создайте функцию, которая срабатывает только один раз после того, как приложение установлено на телефоне Как получить текущую информацию о подключении Wi-Fi в android Простая XML-версия синтаксического анализа с 2, которая объявляется дважды Кеширование JSON из webservice на Android-образце? AppPompat ToolBar popupTheme не используется в элементе меню ShareAction

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

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

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

/data/data/package_name/databases

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

Файловая система эмулятора не отображается в каталог на вашем жестком диске. Образ диска эмулятора хранится в виде файла изображения, с которым вы можете управлять через 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