Database Inspector: що це, як працювати з SQLite та налагоджувати Room

Автор: IT Sectr Опубліковано: 2026-05-07 Час читання: 8 хв

Database Inspector в Android Studio — це вбудований інструмент для перегляду та налагодження SQLite-баз даних мобільного додатку в реальному часі. За даними офіційної документації Android Developers (2025), інструмент дозволяє виконувати SQL-запити до активної бази, переглядати структуру таблиць та редагувати записи без зупинки додатку. Інструмент підтримує Room, SQLiteOpenHelper та будь-які in-app бази даних, автоматично виявляючи їх при запуску профілювання.

Головне

  • Database Inspector — це компонент Android Studio для перегляду SQLite-баз даних додатку в реальному часі з можливістю виконання запитів
  • Підтримка Room — повна інтеграція з Room, включаючи перегляд DAO-запитів та відстеження змін в базі даних
  • Редагування даних — зміна значень комірок таблиці безпосередньо з інтерфейсу інспектора з негайним відображенням в додатку
  • Виконання SQL — можливість писати та виконувати довільні SQL-запити, включаючи JOIN, GROUP BY та підзапити
  • Експорт бази — збереження дампу бази даних на комп'ютер для аналізу або передачі колегам

Що таке Database Inspector?

Database Inspector — це інструмент Android Studio для інспекції та налагодження локальних баз даних в мобільному додатку. Він дозволяє переглядати всі SQLite-бази, створені додатком, включаючи бази Room, SQLiteOpenHelper та сторонніх бібліотек. Інструмент доступний починаючи з Android Studio 4.1 і запускається через Android Profiler або безпосередньо з меню View.

Призначення та можливості

Основне завдання Database Inspector — візуалізація даних в процесі розробки. Замість того щоб виводити вміст бази в лог або писати окремий екран для перегляду даних, розробник може відкрити Database Inspector і одразу побачити всі таблиці, їх схему та вміст. Інструмент підтримує як реляційні SQLite-бази, так і Room з Auto-міграціями.

Коли використовувати Database Inspector

Інструмент незамінний у сценаріях, коли потрібно перевірити коректність збереження даних після виконання операції: реєстрація користувача, синхронізація з сервером, кешування списків. Замість написання тестового UI дамп бази переглядається через Database Inspector. Також інструмент активно використовується для налагодження міграцій Room — можна побачити актуальну схему таблиць після кожного оновлення схеми.

Як працює Database Inspector

Database Inspector підключається до процесу Android-додатку через Android Profiler Service. Він виявляє всі відкриті SQLite-з'єднання в додатку та відображає їх в бічній панелі. Для роботи потрібна Debug-збірка додатку з API Level 26 (Android 8.0) і вище.

Архітектура та механізм роботи

При запуску Database Inspector створює ADB-тунель між додатком на пристрої та IDE на комп'ютері. SQLite WAL (Write-Ahead Logging) файли бази даних транслюються через цей тунель для відображення вмісту. Команди SQL відправляються безпосередньо в SQLite Engine додатку через підтримку Database Inspector в Room та SQLiteDatabase. Інструмент автоматично визначає момент, коли додаток відкриває базу даних, і додає її до списку інспектованих.

Вимоги до середовища

Для коректної роботи Database Inspector необхідно: Android Studio 4.1+, пристрій або емулятор з API Level 26+, Debug-збірка додатку. Для Room додатково потрібна бібліотека room-runtime версії 2.2+. Якщо база даних створюється з WAL-режимом, що є стандартним для Room 2.2+, інструмент може читати дані без блокування основного додатку.

kotlin
// Приклад Room бази даних, підтримуваної Database Inspector
@Database(
    entities = [User::class, Order::class],
    version = 2,
    autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
    abstract fun orderDao(): OrderDao
}

Основні можливості Database Inspector

Database Inspector надає повний набір функцій для роботи з локальними даними: від перегляду схеми таблиць до виконання складних SQL-запитів та редагування записів.

Перегляд таблиць та схеми

В лівій панелі відображаються всі бази даних та таблиці. При виборі таблиці відкривається її вміст у вигляді таблиці з колонками: всі поля запису відображаються як колонки, кожен рядок — окремий запис. Схема таблиці (ім'я, тип, constraints) відображається зверху. Для зовнішніх ключів показуються зв'язки між таблицями.

Тип данихSQLite типRoom типПриклад
Ціле числоINTEGERInt, Long42
РядокTEXTString"John"
Дробове числоREALDouble, Float3.14
Бінарні даніBLOBByteArray[0x00, 0x01]
Дата/часINTEGER (Unix epoch)Long, Date1720000000

Виконання SQL-запитів

Вкладка Query дозволяє виконувати довільні SQL-команди безпосередньо до вибраної бази даних. Підтримуються SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN та будь-які інші SQL-оператори SQLite. Результати відображаються в табличному вигляді під редактором запитів. Історія запитів зберігається протягом сесії.

Редагування записів

Комірки таблиці можна редагувати безпосередньо — достатньо клікнути на значення та ввести нове. Зміни застосовуються негайно до працюючого додатку. Це особливо корисно для тестування граничних випадків: встановлення null в обов'язкове поле, заміна ID на неіснуючий, перевірка обробки довгих рядків. Всі зміни фіксуються в реальному часі.

Налагодження Room з Database Inspector

Database Inspector має глибоку інтеграцію з Room, що робить його незамінним при розробці додатків з цією бібліотекою. Окрім стандартного функціоналу, інспектор надає специфічні для Room можливості.

Перегляд DAO-запитів

Для Room-баз Database Inspector показує згенеровані SQL-запити для кожного DAO-методу. Це дозволяє переконатися, що Room генерує коректний SQL, особливо для складних запитів з JOIN, @Relation та @Transaction. Якщо Room виконує неефективний запит (наприклад, N+1 запитів замість одного JOIN), це одразу видно в лозі запитів Database Inspector.

Налагодження міграцій

При оновленні схеми Room з AutoMigration або ручними міграціями Database Inspector показує актуальну структуру таблиць після міграції. Достатньо відкрити інспектор після запуску додатку та перевірити, що всі колонки, індекси та зовнішні ключі створені коректно. Якщо міграція впала з помилкою, база даних не відкриється — інструмент покаже останню доступну версію.

Перевірка Relations та Embedded

Room дозволяє об'єднувати дані з декількох таблиць через @Relation та @Embedded. Database Inspector допомагає візуально перевірити коректність зв'язків, відображаючи дані пов'язаних таблиць поруч. Для кожного зовнішнього ключа можна перейти до пов'язаної таблиці одним кліком.

kotlin
// Entity з Relation для перевірки через Database Inspector
@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

data class UserWithOrders(
    @Embedded val user: User,
    @Relation(parentColumn = "id", entityColumn = "user_id")
    val orders: List<Order>
)

Практичні сценарії використання Database Inspector

Database Inspector вирішує конкретні завдання розробки, які виникають при роботі з локальним зберіганням даних. Розглянемо найбільш часті сценарії використання інструменту в повсякденній роботі.

Перевірка кешування даних

Часто додаток кешує відповіді API в локальну базу даних. Database Inspector дозволяє переконатися в коректності кешування: після виконання синхронізації можна побачити актуальні записи в таблиці кешу. Якщо дані не з'явилися — проблема в коді збереження. Якщо з'явилися дублі — проблема в логіці upsert.

Налагодження помилок вставки даних

Коли DAO-метод не зберігає дані, але не кидає виняток, Database Inspector показує актуальний стан таблиці. Типові причини: конфлікт Primary Key (налаштування OnConflictStrategy), невірний тип даних в колонці, порушення NOT NULL constraints або Foreign Key violation. Інспектор дозволяє побачити changeset бази до та після операції. Порівняння знімків даних до та після виклику DAO — один з найефективніших способів налагодження транзакційних помилок та перевірки коректності бізнес-логіки додатку при складних операціях запису.

Рефакторинг схеми бази даних

При зміні схеми таблиць — додаванні колонок, перейменуванні полів, розбитті таблиць — Database Inspector допомагає перевірити результат міграції. Достатньо запустити додаток з новою версією бази та переконатися, що всі дані коректно перенесені в нову структуру. Якщо після міграції дані пропали, можна відновити їх з дампу, збереженого до рефакторингу. Цей сценарій особливо актуальний при переході з SQLiteOpenHelper на Room або при зміні структури існуючих таблиць в новій версії додатку.

Моніторинг продуктивності запитів

Database Inspector також може використовуватися для оцінки продуктивності SQL-запитів. Виконуючи SELECT через вкладку Query та заміряючи час відгуку, можна виявити запити, яким не вистачає індексів. Room автоматично логує повільні запити в Logcat з позначкою SLOW SQL, і Database Inspector дозволяє тут же виконати EXPLAIN QUERY PLAN для аналізу плану виконання.

Часті запитання

Чому Database Inspector не бачить мою базу даних?

Переконайтеся, що додаток запущено в Debug-режимі, а API Level пристрою — 26 або вище. Якщо база створюється в окремому процесі або з використанням SQLCipher (шифрування), Database Inspector може не виявити її. Для SQLCipher використовуйте допоміжну debug-базу без шифрування.

Чи можна редагувати дані через Database Inspector?

Так, редагування даних можливе безпосередньо в комірках таблиці. Подвійний клік по значенню дозволяє його змінити. Зміни негайно застосовуються до бази даних працюючого додатку. Для додавання нових записів використовуйте SQL-запит INSERT через вкладку Query.

Чи підтримує Database Inspector бази даних Realm?

Ні, Database Inspector не підтримує Realm, оскільки Realm не використовує SQLite. Для налагодження Realm використовуйте Realm Object Server, Realm Studio або логування в додатку. Для MongoDB Realm SDK доступний власний інструмент Realm Studio для macOS, Windows та Linux.

Як експортувати базу даних з Database Inspector?

Database Inspector дозволяє експортувати базу даних повністю. Клікніть правою кнопкою миші по імені бази в списку та виберіть Export Database. Файл .db збережеться на комп'ютері. Для перегляду використовуйте будь-який SQLite-браузер, наприклад DB Browser for SQLite.

Чи впливає Database Inspector на продуктивність додатку?

За даними Google, накладні витрати мінімальні — Database Inspector читає WAL-файли бази даних, не блокуючи запис. Виконання користувацьких SQL-запитів може тимчасово навантажувати базу, але це контролюється розробником. Для production-збірок інструмент автоматично вимикається.

Підсумки

  • Database Inspector — це вбудований в Android Studio інструмент для перегляду та редагування SQLite-баз даних додатку в реальному часі
  • Підтримка Room включає перегляд DAO-запитів, налагодження міграцій та перевірку @Relation та @Embedded
  • Виконання SQL-запитів через вкладку Query з підтримкою всіх операторів SQLite та збереженням історії
  • Редагування в реальному часі дозволяє змінювати значення комірок і одразу бачити результат в працюючому додатку
  • Експорт бази даних в .db файл для аналізу в сторонніх інструментах або передачі колегам
  • Для роботи потрібно Android Studio 4.1+, Debug-збірка та API Level 26+ — перевірте ці вимоги, якщо інструмент не відображає базу
  • Використовуйте Database Inspector на регулярній основі при розробці функцій, пов'язаних з локальним зберіганням даних — це прискорює налагодження в рази

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також