Intereting Posts
Непосредственно поместите html-код в WebView (Android) Скрытие / отображение панели инструментов при прокрутке фрагмента на вкладках Как создать пользовательские представления в xamarin «GoogleApiClient еще не подключен» при выходе из системы при использовании Firebase auth с подписью google AudioTrack – преобразование коротких массивов в байтовые массивы с использованием jlayer (java mp3-декодера) Настройка WebView для просмотра рабочего стола, а не для мобильного сайта Пользовательские атрибуты monodroid / xamarin пусты, используя ObtainStyledAttributes Как сделать мою ширину TextView половиной ее родительской? Широковещательный приемник в службе Android: отображение карт, таких как макет, как в Google Keep Android Get Country Emoji Flag Использование языка Android Multi State switch Библиотека FFT в android Sdk Вызовите (и получите ответ) код USSD в фоновом режиме? Android-браузер отключает схему https: // из полного квалификатора

Где 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