Просмотр содержимого файла базы данных в Android Studio

Я использую Android Studio для разработки своего приложения с момента его выпуска.

До недавнего времени все работало нормально, приходится отлаживать вместе с проверкой файла базы данных. Поскольку я не знаю, как напрямую увидеть базу данных, когда я отлаживал для создания файла базы данных, мне нужно экспортировать файл базы данных со своего телефона на ПК.

Для этого мне нужно открыть DDMS > File Explorer. Как только я открываю DDMS, мне нужно повторно подключить USB, и я теряю поток отладки. После проверки файла базы данных мне нужно закрыть DDMS и снова подключить USB, чтобы вернуться в режим отладки.

Это слишком сложно. Есть ли у кого-нибудь лучший способ сделать это в Android Studio (я знаю, что в Eclipse это проще)?


person Scott Zhu    schedule 08.07.2013    source источник


Ответы (30)


Просмотр баз данных из Android Studio:

Изменить: чтобы просмотреть базу данных в эмуляторе, выполните следующие действия (для фактического устройства прокрутите вниз):

  1. Загрузите и установите SQLiteBrowser.

  2. Скопируйте базу данных с устройства на свой ПК:

    • версии Android Studio ‹3.0:

      • Откройте DDMS через Tools > Android > Android Device Monitor

      • Нажмите на свое устройство слева.
        Вы должны увидеть свое приложение: введите  описание изображения здесь

      • Перейдите в Проводник (одна из вкладок справа), перейдите на /data/data/databases введите изображение  описание здесь

      • Выберите базу данных, просто щелкнув по ней.

      • Перейдите в правый верхний угол окна Android Device Monitor. Нажмите кнопку «извлечь файл с устройства»: введите описание изображения здесь

      • Откроется окно с вопросом, где вы хотите сохранить файл базы данных. Сохраните в любом месте на своем компьютере.

    • версии Android Studio ›= 3.0:

      • Откройте Проводник устройства через View > Tool Windows > Device File Explorer

      • Перейдите к data > data > PACKAGE_NAME > database, где PACKAGE_NAME - это имя вашего пакета (в приведенном выше примере это com.Movie).

      • Щелкните правой кнопкой мыши базу данных и выберите Save As.... Сохраните в любом месте на своем компьютере.

  3. Теперь откройте установленный SQLiteBrowser. Нажмите «открыть базу данных», перейдите в папку, в которой вы сохранили файл базы данных, и открыть. Теперь вы можете просматривать содержимое своей базы данных.


Чтобы просмотреть свою базу данных на мобильном устройстве:

Перейдите в этот репозиторий Github и следуйте инструкциям в файле readme, чтобы просмотреть свою базу данных на своем устройстве. Вы получите что-то вроде этого:

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

Вот и все. Само собой разумеется, что вы должны отменить все эти шаги перед публикацией приложения.

person Ojonugwa Jude Ochalifu    schedule 05.02.2015
comment
Это для меня правильный ответ, потому что подсказка с инструментом sqlitebrowser, это потрясающе. Спасибо - person Manu Zi; 25.02.2015
comment
/ data не расширяется в проводнике файлов Device Monitor, я предполагаю, что он недоступен, поскольку для перечисления записей каталога / data или / data / data требуется доступ суперпользователя. Я все еще могу получить доступ к файлам моей базы данных через оболочку adb с привилегиями su. Есть идеи, как получить доступ к su в файловом менеджере? - person Saravanabalagi Ramachandran; 02.06.2015
comment
Я не имею ни малейшего представления. Это расстраивает. - person Ojonugwa Jude Ochalifu; 02.06.2015
comment
@ZekeDran, да, метод показывает данные только с эмулятора, а не с вашего устройства. Я добавил шаги для просмотра базы данных на вашем устройстве. Проверьте правку - person Ojonugwa Jude Ochalifu; 14.09.2015
comment
Он работает, но на эмуляторе должно быть запущено не более API 23. Если вы используете API 25, то в проводнике файлов нет содержимого. - person Manos; 09.01.2017
comment
У меня работает менеджер баз данных из вашей ссылки на Github! Также есть возможность тестировать запросы! - person basti12354; 14.01.2017
comment
В моем случае с API 25 я не видел свое приложение в списке. Вместо этого я просмотрел узел com.android.phone, и остальные инструкции работали нормально. - person Farrukh Najmi; 09.05.2017
comment
Хороший ответ, но вместо проверки монитора устройства загляните в Проводник устройства в Android Studio. - person Rafael Teles; 19.04.2018
comment
В моем случае было показано всплывающее окно с предложением отключить следующий сеанс отладки. Если я нажму «Да», то в fileexplorer я не смогу увидеть приложение. - person Heena; 08.10.2018
comment
это действительно помогло мне найти свой путь - person Gratien Asimbahwe; 16.11.2018
comment
Разработчики Flutter, столкнувшиеся с ADB:Android Debug Bridge not found проблемой, смотрите здесь .. github.com/flutter/ flutter / issues / 55557 # issuecomment-643488225 - person Chandima Jayawickrema; 30.10.2020

Подключиться к Sqlite3 через ADB Shell

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

Всю информацию можно найти здесь: http://developer.android.com/tools/help/adb.html#sqlite

1- Перейдите в папку инструментов платформы в командной строке.

2- Введите команду adb devices, чтобы получить список ваших устройств.

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx   device

3- Подключите оболочку к вашему устройству:

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell

4- Перейдите в папку, содержащую ваш файл db:

cd data/data/<your-package-name>/databases/

5- запустите sqlite3 для подключения к вашей базе данных:

sqlite3 <your-db-name>.db

6- запускайте команды sqlite3, которые вам нравятся, например:

Select * from table1 where ...;

Примечание. Дополнительные команды для выполнения приведены ниже.

Шпаргалка по SQLite

Чтобы просмотреть таблицы в базе данных SQLite, выполните несколько шагов:

  1. Перечислите таблицы в вашей базе данных:

    .tables
    
  2. Перечислите, как выглядит таблица:

    .schema tablename
    
  3. Распечатать всю таблицу:

    SELECT * FROM tablename;
    
  4. Перечислите все доступные команды подсказки SQLite:

    .help
    
person Distwo    schedule 16.08.2013
comment
у меня отказано в разрешении на шаге 4, как вы думаете? - person Adrian Olar; 20.03.2014
comment
Возможно, вам придется рутировать свой avd и / или запустить adb как root на шаге 3 'root adb -s emulator-xxxx shell' - person Distwo; 10.04.2014
comment
Расширение .db не требуется. Я использовал его, и в итоге получился еще один (пустой) файл. Итак, у меня были как some_database, так и some_database.db - person Kurt Wagner; 27.06.2014
comment
шаг 5: sqlite3 не найден. Почему? - person sabsab; 18.02.2015
comment
Потому что вам нужно установить, чтобы использовать - person Paul Paca-Vaca Seleznev; 19.06.2015
comment
У меня есть sqlite3 в папке sdk / platform-tools, но я все равно получаю ошибку sqlite3 not found. - person Jayesh Prakash; 14.04.2016
comment
То же самое, я получил sqlite3 в папке инструментов платформы, но я не могу его найти. - person Essej; 02.05.2016
comment
@JayeshPrakash Вам необходимо установить sqlite на устройство, см. эту ссылку - person William Ardila; 20.07.2016
comment
Я лично получил Permission denied при попытке доступа к папке баз данных, запуск run-as your.package.name сделал свое дело. - person Yann39; 09.09.2017
comment
хорошее решение. Перед шагом 4 используйте su для входа в систему как root для доступа к каталогу данных. - person SuB; 18.02.2018
comment
Это здорово, я пробовал использовать эмулятор, но разрешение было отказано. Пожалуйста, попробуйте эти две команды, чтобы получить доступ к данным вашего приложения в эмуляторе 1) добавить оболочку 2) запустить как com.test.application - person mask; 19.12.2018
comment
для Ubuntu, как я могу получить доступ к БД? - person Pradip Vadher; 24.07.2019

На самом деле я очень удивлен, что никто не дал этого решения:

Взгляните на Stetho.

Я использовал Stetho несколько раз для разных целей (одна из них - проверка базы данных). На фактическом веб-сайте они также говорят о функциях для проверки сети и просмотра иерархии представлений.

Для этого требуется только небольшая настройка: 1 добавление зависимости gradle (которое вы можете прокомментировать для производственных сборок), несколько строк кода для создания экземпляра Stetho и браузер Chrome (потому что он использует инструменты разработчика Chrome для всего).

Обновление: теперь вы можете использовать Stetho для просмотра файлов Realm (если вы используете Realm вместо базы данных SQLite): https://github.com/uPhyca/stetho-realm

Обновление №2: теперь вы можете использовать Stetho для просмотра документов Couchbase: https://github.com/RobotPajamas/Stetho-Couchbase

Обновление №3: Facebook сосредотачивает усилия на добавлении всех функций Stetho в свой новый инструмент Flipper. У Flipper уже есть многие функции, которые есть у Stetho. Итак, возможно, сейчас самое подходящее время для перехода. https://fbflipper.com/docs/stetho.html

person w3bshark    schedule 24.11.2015
comment
Спасибо большое. Чтобы было проще, 1.compile 'com.facebook.stetho:stetho:1.3.1' и 2. добавьте этот код Stetho.initializeWithDefaults(this); и 3. chrome://inspect/#devices - person Frank Myat Thu; 13.07.2016
comment
Очень просто, вы можете просматривать данные из базы данных без сторонних инструментов в браузере Chrome. - person Mateus Viccari; 07.02.2017
comment
Не забывайте, что Stetho.initializeWithDefaults(this); должен быть в классе Application. - person wonsuc; 27.12.2018
comment
Отличный инструмент. Ваше приложение будет указано на странице #devices, если вы правильно выполнили настройку. Щелкните Inspect, а затем перейдите в раздел Resources ›Web SQL› [db_name], и ​​вы сможете написать свои операторы sqlite. - person Brad; 02.11.2019

Самый простой способ без эмулятора

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

Предостережения:

Я давно не тестировал это. Это может не работать с API> = 25. Если команда cp не работает, попробуйте вместо этого одно из следующих:

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

Объяснение:

Первый блок настраивает разрешения вашей базы данных для чтения. При этом используется run-as, который позволяет вам выдавать себя за пользователя вашего пакета, чтобы внести изменения.

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

Затем мы копируем базу данных в каталог, доступный для чтения / записи. Это позволяет пользователю получать доступ к adb.

$ cp /data/data/your.package.name/databases/database_name /sdcard

Затем замените существующие права чтения / записи. Это важно для безопасности вашего приложения, однако при следующей установке права будут заменены.

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

Наконец, скопируйте базу данных на локальный диск.

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name
person diedthreetimes    schedule 15.05.2015
comment
У меня проблемы со второй командой: run-as. Я получаю "com.mycompany.myappname" неизвестно. И да, я уверен, что использую правильное имя пакета! - person SMBiggs; 11.02.2016
comment
@PhuLai вы пробовали другое устройство? Какое устройство выходит из строя? - person diedthreetimes; 14.11.2016
comment
Я пробовал с Nexus 6P, API 25. Думаю, этот метод не будет работать на новых версиях Android. - person foo; 18.11.2016
comment
chmod 660 databases/database_name должно быть до chmod 660 databases - person Alaa M.; 17.12.2016
comment
@PhuLai - Я тоже получил это, а затем я попытался пропустить команду cp и просто выполнить pull извне (после изменения разрешений), и это сработало (adb pull data/data/package.name/databases/db_name.db) - person Alaa M.; 17.12.2016
comment
Возможно, / sdcard больше не доступен для записи. - person diedthreetimes; 19.12.2016

В Android Studio 3 и более поздних версиях вы можете увидеть раздел «Проводник устройства» в правом нижнем углу Android Studio.

Откройте его, затем вы увидите дерево файлов, вы можете найти базы данных приложения по этому пути:

/data/data/{package_name}/databases/

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

person alizeyn    schedule 28.12.2017
comment
Когда я дважды щелкаю файл БД для своего приложения, он показывает все нечитаемые символы. Какую программу чтения SQLite вы используете для просмотра содержимого БД? - person Surekha; 07.02.2018
comment
Я рекомендую sqlitebrowser.org бесплатно, с открытым исходным кодом и доступным для всех платформ. - person alizeyn; 08.02.2018
comment
мой файл database.db не содержит таблиц. - person Binil; 02.01.2019
comment
Папка пуста. Ошибка: run-as: Could not set capabilities: Operation not permitted. Устройство Samsung: stackoverflow.com/questions/37413667/ - person O-9; 29.05.2019

Наконец, я нашел простейшее решение, при котором не нужно открывать DDMS.

На самом деле решение основано на том, что упомянул @Distwo, но это не должно быть так сложно.

Во-первых, запомните путь к файлу базы данных на устройстве, он всегда должен быть таким же. Например, мой: /data/data/com.XXX.module/databases/com.XXX.module.database

Во-вторых, выполните эту команду, которая загрузит файл базы данных на ваш компьютер.

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

Вам нужно просто скопировать и сохранить эту команду, а затем вы сможете использовать ее снова и снова.

В-третьих, если вы получили сообщение Permission Denied или что-то в этом роде, просто запустите adb root перед предыдущей командой.

person Scott Zhu    schedule 13.12.2013
comment
Запуск adb root не работает на моем телефоне. Он распечатывает adbd cannot run as root in production builds. Однако после запуска adb root команда pull просто зависает, и мне нужно остановить ее вручную. - person LaDude; 03.11.2014
comment
@Daniela попробуйте run-as your.package.name, вы должны войти в систему как пользователь, принадлежащий вашему приложению. - person m02ph3u5; 12.03.2015
comment
Используйте приведенную выше команду, чтобы скопировать файл .db на рабочий стол, установить плагин браузера SQLiteManager в Firefox и начать просмотр. 2-х минутная работа! - person JaydeepW; 27.03.2015
comment
эта команда root была для эмулятора, вы не можете просто запустить эту команду и получить root права на свой «телефон». - person Darpan; 21.04.2015
comment
все сделано, получил database.db. файл, НО этот файл database.db не содержит таблиц - person Binil; 02.01.2019

Попробуйте этот плагин для Android Studio SQLScout. вы можете видеть и редактировать базу данных вашего приложения в реальном времени.

SQLScout

Изменить: помните, что это платный плагин, но у него есть 24-часовая пробная версия, и он подходит для головной боли.

person Amir Hossein Ghasemi    schedule 10.10.2016
comment
Вы забыли упомянуть, что это платный продукт. - person yshahak; 10.11.2016
comment
не совсем, у него 24-часовая пробная версия, я планировал свое будущее как разработчик более чем на 24 часа. - person yshahak; 15.11.2016
comment
К сожалению, это не бесплатно. - person K.Sopheak; 06.12.2016
comment
Пробное время составляет всего 36 часов. - person Mahdi Moqadasi; 20.08.2018

Самый простой способ - использовать библиотеку Android Debug Database (7,7 тыс. Звезд на GitHub ).

Android-Debug-Database

Преимущества:

  • Быстрая реализация
  • Просмотреть все базы данных и общие настройки
  • Непосредственно редактировать, удалять, создавать значения базы данных
  • Запустить любой запрос SQLite в данной базе данных
  • Искать в ваших данных
  • Скачать базу данных
  • Добавление собственных файлов базы данных
  • Нет необходимости рутировать устройство

Как использовать:

  1. Добавить debugImplementation 'com.amitshekhar.android:debug-db:1.0.6' в build.gradle (module);
  2. Запустить приложение;
  3. Найдите ссылку отладки в логах (в LogCat) (т.е. D/DebugDB: Open http://192.168.232.2:8080 in your browser, ссылка будет другая) и откройте ее в браузере;
  4. Наслаждайтесь мощным инструментом отладки!

Важно:

  • К сожалению, не работает с эмуляторами.
  • Если вы используете его через USB, запустите adb forward tcp:8080 tcp:8080
  • Ваш телефон Android и ноутбук должны быть подключены к одной и той же сети (Wi-Fi или LAN).

Для получения дополнительной информации перейдите на страницу библиотеки на GitHub.

person Daniel    schedule 02.12.2019
comment
Это самый лучший и менее болезненный процесс! Спасибо Даниэль - person Sudip; 16.05.2020
comment
fyi для тех, кто может быть здесь, я пока не мог заставить это работать, чтобы реагировать на родной Android - person Bashar Ali Labadi; 28.11.2020
comment
Лучшее решение на сегодняшний день! - person Bogdan Android; 26.01.2021

Простой и легкий способ просмотреть содержание базы данных в студии Android.

# Для Android Studio 4.1 Canary 6 и более поздних версий.

Вы можете использовать очень простую функцию Android Studio Database Inspector. Где вы можете проверять, запрашивать и изменять базы данных вашего приложения с помощью нового инспектора баз данных. Например, вы можете отлаживать свое работающее приложение, изменяя значения в своей базе данных и тестируя эти изменения на устройстве в реальном времени , не выходя из Android Studio.

Для начала разверните свое приложение на устройстве с API уровня 26 или выше и выберите Просмотр> Инструмент Windows> Инспектор базы данных в строке меню.

# Для Android Studio 4.0 и ниже

Сначала установите навигатор базы данных плагин в Android Studio

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

Во-вторых, перезапустите Android Studio.

В-третьих, сохраните базу данных в расположении по умолчанию, например: (C: \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator или device \ data \ data \ package name \ базы данных)

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

В-четвертых, подключите сохраненный файл dbname_db в навигаторе базы данных.

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

Укажите тот же путь к файлу БД, который используется на шаге Третий.

т.е. (C: \ Users \ Имя пользователя \ Documents \ AndroidStudio \ DeviceExplorer \ emulator или устройство \ data \ data \ имя пакета \ databases \ package naem \ dbname_db)

Наконец, просто проверьте соединение с БД, откройте консоль и делайте все, что хотите.

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

Если вы хотите обновить БД, просто повторите шаг Второй и просто сохраните его или обновите.

С КОДИРОВКОЙ !!!!!

person Nabin    schedule 15.10.2019
comment
Это решение требует больших усилий в вашей повседневной работе. И при каждом изменении в базе данных вам нужно перезагружать файл sql - кажется немного сложным. Я предпочитаю использовать плагины, дающие возможность просматривать базу данных на локальном сервере. - person Максим Петлюк; 23.10.2019
comment
Да, вы правы, пока в навигаторе баз данных не будет обновлений данных в реальном времени, я надеюсь, что он скоро обновит свои плагины. - person Nabin; 25.10.2019
comment
Собственно, это была бы отличная функция - person Максим Петлюк; 25.10.2019
comment
Да, до сих пор это лучший способ для меня, если нам нужно запрашивать данные, добавлять, редактировать и удалять - person Nabin; 17.11.2019
comment
Всегда ли мне нужно делать сохранение, чтобы обновить базу данных? есть ли более простой способ, как в mysql, все, что мне нужно, это нажать кнопку обновления. - person ンドリュー ライアンア; 22.02.2020
comment
До сих пор это единственный процесс, который нужно обновить. Надеюсь, что обратимся к этому вопросу в будущем обновлении плагина. Если вам нравится видеть данные БД за пределами студии Android, вы можете использовать такую ​​библиотеку, как stackoverflow.com/a/59207107/6255841 - person Nabin; 19.05.2020
comment
@ ン ド リ ュ ー ラ イ ア ン ア Если вы используете android studio 4.1 Canary 6 и выше, вот простой способ пройти через инспектор базы данных developer.android.com/studio/preview/ - person Nabin; 10.06.2020
comment
Не удалось даже заставить его работать в конце концов после всех проблем с настройкой. Все, что я хотел, это просто проверить базу данных, это кажется очень чрезмерным решением того, о чем просил OP, а именно просто просмотреть содержимое базы данных. - person Shadow; 24.07.2020
comment
Канареечный вариант хорош - person xdevs23; 09.04.2021

Пройдя через все решения, я предложу

Используйте Stethos
Давайте посмотрим, насколько это просто

Добавьте следующие зависимости в файл build.gradle

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

Затем перейдите к методу mainActivity onCreate и добавьте следующую строку

Stetho.initializeWithDefaults(this);

это потребует от вас

import com.facebook.stetho.Stetho;

теперь при запуске приложения из студии Android откройте Chrome и введите в адресной строке
chrome: // inspect /

на вкладке ресурсов> веб-SQL проверьте базу данных и таблицу легко поиграйте с ней в реальном времени

person ShankPossible    schedule 03.07.2018
comment
Комната просто орм, ничего не меняется с точки зрения sql работает так же - person ShankPossible; 18.07.2018

Новый инспектор баз данных, представленный в Android 4.1 Canary 5 Preview, где теперь вы можете проверять, запрашивать, изменять и отлаживать базы данных SQLite в вашем запущенном приложении прямо из IDE - https://developer.android.com/studio/preview/features?linkId=86173020#database-Inspector

Также поддерживает живой запрос к базе данных - https://developer.android.com/studio/preview/features?linkId=86173020#query

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

person Anoop M Maddasseri    schedule 10.04.2020
comment
Я уже опубликовал этот ответ, так что это всего лишь дублированный ответ, и нет необходимости размещать ссылку на этот ответ вверху для продвижение. - person Pavneet_Singh; 21.09.2020

Хотя это довольно старый вопрос, но я думаю, что он актуален и сегодня. В последней версии android studio я нашел способ увидеть его [я не уверен, был ли он доступен в предыдущих версиях. ]

Вот как вы можете увидеть данные в своей базе данных:

шаги:

  1. Откройте Просмотр ›Инструменты Windows› Проводник на устройстве.

  2. Затем папка данные ›данные и вы увидите списки приложений.

  3. Прокрутите немного вниз и посмотрите пакет [ваш пакет для приложения].

  4. Найдя пакет, откройте папку базы данных и выберите файл, щелкните его правой кнопкой мыши и сохранить [загрузить]

  5. Поскольку вы не можете видеть данные напрямую, существует инструмент Браузер БД для SQLite, перейдите на веб-сайт https://sqlitebrowser.org/

  6. Откройте браузер Db, нажмите открыть базу данных и выберите загруженную таблицу базы данных, и она покажет вам данные.

НОВОЕ ИЗМЕНЕНИЕ

Теперь (когда вы читаете этот пост) это еще проще, потому что Android studio уже поставляется с инспектором базы данных (прямо в правом нижнем углу).

Щелкните по нему, и вы увидите базу данных. Но убедитесь, что минимальный уровень API равен 26, в противном случае измените его через файл build.gradle на minSdkVersion 26

person Badri Paudel    schedule 20.08.2020

Чтобы узнать, где хранится база данных sqlite, созданная вами в студии Android, вам необходимо выполнить простые шаги:

1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your  database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.

Для получения дополнительной информации будет полезна эта ссылка. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Чтобы просмотреть свои данные, представленные в файле db, вам необходимо загрузить браузер sqlite или добавить аналогичный плагин в любой браузер, поэтому вам нужно открыть файл в браузере и просмотреть свои данные.

Загрузите браузер с http://sqlitebrowser.org/

Вот скриншот, показывающий браузер, содержащий базу данных регистров.

Спасибо,

person MD05    schedule 23.12.2014

Самый простой способ - подключить устройство и запустить Android Studio. Затем с панели инструментов:

  1. Вид -> Окно инструментов -> Проводник устройства
  2. Зайдите в data / data и найдите свой пакет
  3. найдите файл БД, который хотите изучить, и загрузите его
  4. Я рекомендую этот онлайн-инструмент: https://sqliteonline.com/ для изучения файла db

Другой способ - использовать библиотеку Stetho:

  1. Добавьте зависимость Stello в свой build.gradle:

    скомпилировать com.facebook.stetho: stetho: 1.5.0 '

  2. Поместите следующую строку в onCreate () вашего класса приложения или основного действия:

    Stetho.initializeWithDefaults (это);

  3. Подключите устройство, запустите приложение и войдите на следующий сайт в Chrome:

    chrome: // inspect / # устройств

вот и все. теперь вы можете изучить свои таблицы.

Примечание: рекомендуется удалить зависимость перед переходом в рабочую среду.

person Gal Rom    schedule 07.08.2018

Если вы хотите просматривать свои базы данных ИЗНУТРИ ANDROID STUDIO, вот что я использую:

Перейдите в Файлы / Настройки / Плагины и найдите это:

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

... После перезапуска Android Studio вы можете выбрать загруженный файл базы данных следующим образом: введите описание изображения здесь

... Щелкните значок «Открыть консоль SQL», и вы получите прекрасный вид вашей базы данных в Android Studio: ! [введите здесь описание изображения

person j3App    schedule 15.05.2019
comment
Значит, мне нужно постоянно копировать БД из эмулятора? - person Yaroslav Dukal; 13.06.2019

С выпуском Android Studio 4.1 Canary and Dev preview вы можете использовать новый инструмент под названием

Инспектор базы данных

Инспектор БД

Установите AS 4.1+, запустите приложение, откройте инспектор базы данных, теперь вы можете просмотреть файлы базы данных в левой части панели инспектора базы данных, а затем выбрать таблицу для просмотра содержимого.

Живые запросы

Либо вы можете запускать запросы с помощью параметра Выполнить SQL, либо, если вы используете Комнату, откройте инспектор базы данных и запустите приложение, а затем вы можете запускать запросы DAO в своем интерфейсе, нажав кнопку запуска слева от аннотации @Query.

текущие запросы

person Pavneet_Singh    schedule 09.04.2020

Возможно, это не тот ответ, который вы ищете, но у меня нет лучшего способа загрузить БД с телефона. Я предлагаю убедиться, что вы используете эту мини-DDMS. Он будет полностью скрыт, если вы не нажмете на очень маленькое поле camoflage в самом нижнем левом углу программы. (пытался навести на него курсор, иначе вы могли его пропустить.)

Также раскрывающийся список без фильтров (вверху справа). У него буквально есть масса различных способов мониторинга различных процессов / приложений по PPID, имени и многому другому. Я всегда использовал это для мониторинга телефона, но имейте в виду, что я не занимаюсь разработкой, которая должна быть на 120% уверена, что база данных не делает ничего необычного.

Надеюсь, это поможет

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

person nocommit    schedule 13.08.2013

Я собрал автоматизацию этого процесса из командной строки unix и поместил здесь код:

https://github.com/elliptic1/Android-Sqlite3-Monitor

Это сценарий оболочки, который принимает имя пакета и имя базы данных в качестве параметров, загружает файл базы данных с подключенного устройства Android и запускает настраиваемый сценарий для загруженного файла. Затем с помощью инструмента unix, такого как «часы», вы можете открыть окно терминала с периодически обновляемым представлением вывода сценария базы данных.

person elliptic1    schedule 24.11.2015

Это ОЧЕНЬ старый вопрос, и мой ответ аналогичен некоторым ответам выше, но выполняется НАМНОГО быстрее. Приведенный ниже сценарий предназначен для Mac, но я уверен, что кто-то сможет изменить его для Windows.

1) Откройте редактор сценариев на своем Mac (вы можете просто найти редактор сценариев в Spotlight)
2) Скопируйте и вставьте текст ниже и измените его, указав путь к SDK, имя пакета и т. Д. (См. Ниже)
3) Сохраните скрипт !!

Вот и все! Просто нажмите кнопку воспроизведения вверху, чтобы получить обновленный файл базы данных, который будет на вашем рабочем столе.

замените следующие элементы в приведенном ниже сценарии:

path_to_my_sdk == >> введите полный путь к вашему sdk
my_package_name == >> имя пакета для ваше приложение
myDbName.db == >> имя файла вашей базы данных

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db"
do shell script getLocalDb

Надеюсь, это кому-то поможет.

person ᴛʜᴇᴘᴀᴛᴇʟ    schedule 27.12.2016
comment
У меня это сработало. За исключением того, что вам нужно изменить «Пользователь» на имя пользователя MacBook в выходном каталоге /Users/User/Desktop/myDbName.db - person Kenny Dabiri; 06.07.2017

Я знаю, что вопрос довольно старый, но я считаю, что проблема все еще существует.

Просмотр баз данных из вашего браузера

Я создал инструмент разработки, который вы можете интегрировать как библиотеку в свой проект приложения для Android. Инструмент открывает серверный сокет в вашем приложении для связи через веб-браузер. Вы можете просмотреть всю свою базу данных и загрузить файл базы данных прямо через браузер.

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

Интеграцию можно осуществить через jitpack.io:

проект build.gradle:

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

приложение build.gradle:

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

Настроить класс приложения

Чтобы компилировать DebugGhostLib только в определенных типах сборки или вариантах продукта, нам нужен абстрактный класс Application, который будет производным от специальных вариантов. Поместите следующий класс в вашу main папку (в javayour.app.package):

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

Теперь, для вашего типа сборки выпуска (или разновидности продукта), вы добавляете следующий класс Application в вашу папку release (или продукт-разновидность) (также в javayour.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

Это класс приложения, который не ссылается на DebugGhostLib.

Также сообщите своему AndroidManifest.xml, что вы используете свой собственный класс приложения. Это будет сделано в вашей папке main:

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->
    </application>
</manifest>

Теперь, для вашего типа сборки отладки (или разновидности продукта), вы добавляете следующий класс Application в вашу папку debug (или product-term) (также в javayour.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    @Override
    public void onCreate() {
        super.onCreate();

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
        mDebugGhostBridge.startDebugGhost();
    }
}

Вы можете получить инструмент здесь.

person TheSmile    schedule 30.06.2017
comment
это хороший инструмент, особенно после того, как Stetho перестал работать с новым хромом, - person Homayoun Behzadian; 23.10.2019

Пришлось перетащить базу данных с телефона на ПК. Сейчас я использую это очень хорошо сделанное и бесплатное приложение с множеством функций. Он работает на API 4.1+с корневым устройством.
Дайте мне знать, если найдете, как заставить его работать без рута.

Скриншот SqlitePrime

https://play.google.com/store/apps/details?id=com.lastempirestudio.sqliteprime

person vovahost    schedule 06.10.2017

Откройте терминал просмотра файлов устройства в нижней части Android Studio.

Откройте папку с именем Data, затем внутри данных снова откройте папку Data.

Открыть данные папки

Прокрутите список папок вниз и найдите папку с your.package.name. Откройте папку your.package.name> База данных. Вы получите your.databaseName. Щелкните правой кнопкой мыши your.databaseName и сохраните как C: / your / Computer / Directory.

Перейдите в C: / your / Computer / Directory, откройте your.databaseName с помощью DB SQLite.

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

person eli    schedule 05.08.2018

Для Android Studio 3.X

  1. Вид -> Окна инструментов -> Проводник устройства
  2. В проводнике файлов data-> data-> com. (Ваш пакет приложений) -> базы данных
  3. Щелкните правой кнопкой мыши базу данных и сохраните на локальном компьютере. Чтобы открыть файл, вы можете использовать SQLite Studio, просто перетащив на него файл базы данных.

Вот ссылка на SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download

person Jawad Zeb    schedule 06.08.2018

Наконец, Android Studio поддерживает эту функцию с вкладкой инспектора базы данных. Вы можете легко применять операции просмотра / обновления / запроса. На данный момент это не стабильный канал, но вы можете попробовать с Android Studio 4.1 Canary 5 и выше.

Вы можете увидеть, как выглядит инспектор базы данных, здесь

Вы можете загрузить соответствующую версию здесь

person Berkay92    schedule 13.04.2020

Используйте android sqlite как базу данных на стороне сервера

Следуйте этим шагам, перечисленным ниже:

  1. Найдите окно инструмента База данных и щелкните его, как показано на изображении ниже.

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

  1. Нажмите значок плюс и выберите Android SQLite, как показано на изображении ниже.

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

  1. Подключите устройство Android к компьютеру

  2. Выберите пакет, который вам нужен, и выберите базу данных, как показано ниже:  введите описание изображения здесь

  3. Перед выполнением всех этих шагов, описанных выше, вы должны убедиться, что у вас есть право разрешения для доступа к файлу: /data/data//database/databasefile.db

После всех этих шагов вы увидите содержимое базы данных, как показано ниже:

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

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

Последнее важное

Вы должны щелкать значок обновления каждый раз, когда обновлялись данные базы данных.

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

Надеюсь, это работа для вас! Спасибо !

person linjiejun    schedule 28.05.2020

Начиная с версии 4.1 Android Studio имеет Database Inspector.

Но у него есть одно ограничение:

Инспектор баз данных работает только с библиотекой SQLite, включенной в операционную систему Android, на уровне API 26 и выше. Он не работает с другими библиотеками SQLite, которые вы связываете с вашим приложением.

person Martin Zeitler    schedule 24.01.2021

Я использую Windows 7, мое устройство представляет собой эмулируемый API-интерфейс устройства Android 23. Я полагаю, что это то же самое для любого реального устройства, если оно внедрено, а API не превышает 23

Перейдите в Инструменты -> Android -> Android Device Monitor. Зайдите в проводник. В моем случае он находится в data / data // app_webview / databases / file_0 / 1

Мне нужно вручную добавить .db в конец файла с именем "1"

person Asyraf Arifin    schedule 23.05.2017

Это комбинация из других ответов с плюсом

  1. Установите Браузер БД для SQLite
  2. Получите точное местоположение MyBase.db в проводнике устройства, например "/data/data/com.whatever.myapp/databases/MyBase.db"
  3. Установите окно проекта с Android на Project, чтобы вы могли видеть файлы (build.gradle, gradle.properties и т. Д.)
  4. В окне "Проект" щелкните правой кнопкой мыши и выберите "Открыть в терминале".
  5. В терминале вы теперь находитесь в корневом директоре вашего приложения с жесткого диска, поэтому выполните: adb pull /data/data/com.whatever.myapp/databases/MyBase.db
  6. Теперь в окне проекта вашей Android Studio у вас есть файл MyBase.db.
  7. Дважды щелкните файл базы данных в Project, и теперь вы можете просматривать / редактировать свои базы данных в браузере БД.
  8. Когда вы будете готовы, просто сделайте запись изменений в браузере БД, чтобы базы данных были сохранены на жестком диске.
  9. В терминале с помощью команды: adb push MyBase.db /data/data/com.whatever.myapp/databases/MyBase.db вы просто отправляете с жесткого диска на устройство отредактированную базу данных.
person lawrghita    schedule 17.03.2019

Выполните описанные выше шаги, чтобы открыть папку базы данных вашего приложения в Android Device Explorer, и там вы увидите шесть файлов. Первые три названы как android, а последние три названы как имя вашей базы данных. Вам нужно работать только с последними тремя файлами, сохраните эти три файла в желаемом месте. Вы можете сохранить эти файлы, щелкнув файл правой кнопкой мыши и нажав кнопку «Сохранить как» (например, моя база данных называется room_database, и поэтому три файла называются room_database, room_database-shm и room_database-wal. Переименуйте соответствующий файл следующим образом : -

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

Теперь откройте 1-й файл в любом браузере SQLite, и все три файла будут заполнены в браузере.

person Abhishek Meharia    schedule 15.12.2019

Интересно, почему это решение не было упомянуто здесь!

... В Android Studio 4.1 и выше ...

1.Run your app on an emulator or connected device running API level 26 or higher.

2.Select View > Tool Windows > Database Inspector from the menu bar.

3.Select the running app process from the dropdown menu.

4.The databases in the currently running app appear in the Databases pane. Expand the node for the database that you want to inspect.

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

person Saddan    schedule 13.05.2021