Database navigator android studio

Browse SQLite database in Android Studio

Oct 7, 2018 · 2 min read

Have you ever wondered how to debug SQLite database created in the Android app? How to see the schema and the content of the database? Until recently, I used Stetho — a debug bridge for Android applications developed by Facebook, which enables you to debug an Android app using Chrome Dev Tools. Although it’s a little inconvenient, it does the job.

Recently, I discovered yet another way. First open Device File Explorer, which is now built-in directly into Android Studio. Then navigate to /data/data/[your.package.name]/databases folder, right-click on your database file and Save As… (The app must be compiled using a debug build variant, otherwise you won’t be able to browse its data directory.)

Now you have the SQLite database file and you can open it in a SQLite browser of your choice, e.g. http://sqlitebrowser.org. But If you don’t want to leave the IDE, you can install the Database Navigator plugin:

Android Studio— Preferences… — Plugins — Browse Repositories… — Database Navigator — Install

After restarting Android Studio, open DB Browser pane, click + button and add a new SQLite connection by choosing a path to your database file. Then you can easily browse your database schema. To view a table content, double-click on a table name and either specify a query or select No Filter.

In this way, you can easily see what is happening in the SQLite database on your device or emulator without even having to leave Android Studio. 👏

Источник

Применение SQLiteOpenHelper и Database Inspector в Android-разработке

Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать об использовании баз данных SQLite в Android-разработке. В частности — он коснётся тут двух вопросов. Во-первых — речь пойдёт о классе SQLiteOpenHelper , который применяется для работы с базами данных в коде приложений. Во-вторых — он уделит определённое внимание инструменту Database Inspector, инспектору баз данных, встроенному в Android Studio.

Что такое SQLite?

SQLite — это опенсорсная реляционная СУБД, похожая на MySQL. SQLite входит в состав стандартной библиотеки Android, где реализован движок базы данных, не нуждающийся в применении клиент-серверной архитектуры, не требующий особой настройки, поддерживающий транзакции. Для работы SQLite не нужен сервер баз данных. Всё, что нужно, хранится в обычных файлах. Полноценная БД SQLite, в которой имеется множество таблиц, триггеров, индексов и представлений, содержится в единственном, самом обыкновенном файле. Стандартная поддержка СУБД SQLite имеется во всех мобильных телефонах и в большинстве компьютеров. При этом работа с SQLite не требует решения задач по администрированию или настройке баз данных.

Android-разработчик, для выполнения CRUD-операций из своего приложения, может пользоваться пакетом android.database.sqlite.SQLiteDatabase , в котором реализованы все необходимые API.

Класс SQLiteOpenHelper

SQLiteOpenHelper — это класс, встроенный в пакет android.database.sqlite.SQLiteDatabase . Это — вспомогательный класс, который отвечает за создание баз данных SQLite и за управление их версиями. Для того чтобы воспользоваться возможностями этого класса, нужно создать его подкласс, в котором надо переопределить два метода — onCreate() и onUpgrade() . Этот класс позволяет открывать существующие базы данных, создавать новые базы данных и обновлять версии баз данных.

▍Метод onCreate()

Метод onCreate() вызывается при создании базы данных. Он, в процессе жизненного цикла приложения, вызывается лишь один раз. А именно, его вызов производится при первом обращении к методу getReadableDatabase() или getWritableDatabase() . Эти методы принадлежат классу SQLiteOpenHelper .

В следующем примере показано создание экземпляра класса DatabaseHelper , являющегося наследником SQLiteOpenHelper :

Вот код конструктора DatabaseHelper :

Класс SQLiteOpenHelper вызывает метод onCreate() после создания базы данных и создания экземпляра класса SQLiteDatabase . Этот метод, напомним, вызывается лишь один раз, при создании базы данных:

▍Метод onUpgrade()

Метод onUpgrade() вызывается в тех случаях, когда нужно обновить версию существующей базы данных:

▍Пример

Создадим простое Android-приложение и разберём практический пример работы с классом SQLiteOpenHelper . Это приложение, применяя данный класс, позволит нам добавлять записи о работниках некоей компании в таблицу Empdata базы данных Company.db .

Приложение имеет весьма простой интерфейс, описанный в файле activity_main.xml .

Вот содержимое файла MainActivity.java :

Вот содержимое Employee.java :

Вот файл DatabaseHelper.java :

В коде DatabaseHelper.java видно, что класс DatabaseHelper является наследником класса SQLiteOpenHelper .

После того, как база данных создана, можно приступать к работе с ней. В частности — создавать и обновлять поля её таблиц. При решении этих задач можно пользоваться объектом типа ContentValues , который позволяет хранить пары ключ-значение. Именно такие объекты используются для добавления новых записей в таблицы базы данных (с помощью метода insert() объекта SQLiteDatabase ) и для обновления существующих записей (с помощью метода update() ).

Читайте также:  Whocalls от касперского для андроид как обновить базу данных

Database Inspector в Android Studio

Инструмент Database Inspector позволяет исследовать базы данных, используемые в приложениях, выполнять запросы к ним, модифицировать их, делая всё это во время работы приложений. Database Inspector имеется в Android Studio начиная с версии 4.1. Этот инструмент особенно полезен при отладке механизмов программ, ответственных за работу с базами данных. Database Inspector работает и с обычной реализацией SQLite, и с библиотеками, построенными на её основе, вроде Room. Database Inspector работает лишь с библиотекой SQLite, входящей в состав операционных систем Android, уровень API которых не ниже 26.

Для того чтобы открыть базу данных в Database Inspector нужно выполнить следующие действия:

  1. Запустите приложение в эмуляторе или на устройстве, подключённом к компьютеру. На эмуляторе или на устройстве должно присутствовать API не ниже 26 уровня.
  2. Выполните команду меню View > Tool Windows > Database Inspector .
  3. Выберите процесс выполняющегося приложения из выпадающего меню.
  4. В панели Databases появятся записи о базах данных, которые имеются в выбранном приложении. Теперь можно работать с этими базами данных.

Исследование базы данных с помощью Database Inspector

Обратите внимание на то, что есть одна проблема, связанная с аварийным завершением работы программ на эмуляторе Android 11 при подключении к Database Inspector. Если вы с этой проблемой столкнётесь — здесь вы можете найти сведения о том, как с ней справиться.

Применяете ли вы SQLite в Android-разработке?

Источник

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

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

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

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

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

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

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

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

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

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

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

Просмотр баз из Android Studio:

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

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

Версии Android Studio 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. Сохраните его где угодно на своем ПК.

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

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

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

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

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

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

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

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

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

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

5 запустите sqlite3 для подключения к вашему db:

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

Примечание. Найдите больше команд для запуска ниже.

Шифрование SQLite

Есть несколько шагов, чтобы увидеть таблицы в базе данных SQLite:

Читайте также:  Музыкальная студия для андроида

Список таблиц в вашей базе данных:

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

Распечатайте всю таблицу:

Перечислите все доступные команды командной строки SQLite:

Я на самом деле очень удивлен, что никто не дал такое решение:

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

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

Обновление:
Теперь вы можете использовать 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

Самый простой способ, когда не используется эмулятор

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

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

Объяснение:

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

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

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

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

В Android Studio 3 и выше Вы можете увидеть раздел “Обозреватель файлов устройств” в правой нижней части Android Studio.

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

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

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

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

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

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

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

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

Теперь при запуске приложения из Android Studio, Open Chrome и в адресной строке типа
хром://инспектировать/

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

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

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

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

Самый простой способ – подключить свое устройство и запустить Android Studio Then From Tool Bar:

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

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

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

скомпилируйте ‘com.facebook.stetho: stetho: 1.5.0’

Поместите следующую строку в onCreate() вашего класса Application или основного Activity:

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

и это все. Теперь вы можете исследовать свои таблицы.

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

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

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

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

… Щелкните значок “Открыть консоль SQL”, и вы получите прекрасный вид вашей базы данных в Android Studio:

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

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

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

Перейдите в C: /your/Computer/Directory откройте your.databaseName с БД SQLite

Для Android Studio 3.X

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

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

1) Откройте редактор script на вашем Mac (вы можете просто искать редактор script в центре внимания)

2) Скопируйте и вставьте текст ниже и измените его с помощью пути к SDK, имени пакета и т.д. (См. Ниже)
3) Сохраните script!!

Читайте также:  Contre jour для андроида

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

замените в script следующие вещи ниже:

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

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

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

Перейдите в Инструменты → Android → Android Device Monitor.
Перейдите в Проводник. В моем случае это данные/данные//app_webview/databases/file_0/1

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

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

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

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

Интеграция может выполняться через jitpack.io:

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

Чтобы скомпилировать DebugGhostLib только в некоторых типах сборки или продуктах, нам нужен абстрактный класс приложения, который будет получен в специальных вариантах. Поместите следующий класс в свою папку main (под java > your.app.package ):

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

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

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

Теперь, для вашего типа сборки отладки (или вкуса продукта), вы добавляете следующий класс Application в свою папку debug (или продукт-аромат) (также под java > your.app.package ):

Здесь вы можете найти инструмент .

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

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

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

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

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

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

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

Это оболочка script, которая принимает имя пакета и имя базы данных в качестве параметров, загружает файл базы данных с подключенного Android-устройства и запускает пользовательский script против загруженного файла. Затем с помощью инструмента unix, такого как “watch”, вы можете открыть окно терминала с периодически обновляемым представлением вывода вашей базы данных script.

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

Сначала установите плагин Database Navigator в Android Studio

Второй, перезагрузите Android Studio

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

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


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

i.e (C:\Users\Имя пользователя \Documents\AndroidStudio\DeviceExplorer\emulator или device\data\data\имя пакета \database\package naem\dbname_db)

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

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

Источник

Оцените статью