App Inspection в Android Studio: как анализировать приложение изнутри

App Inspection не отображает базу данных или показывает пустую вкладку Database Inspector — одна из самых частых ситуаций, с которой сталкиваются разработчики при отладке Android-приложений в Android Studio. Причина обычно кроется не в самом инструменте, а в том, что приложение запущено на несовместимом устройстве, собрано без отладочной информации или процесс просто не выбран в выпадающем списке.

Инструмент App Inspection (инспекция приложения) входит в состав Android Studio и позволяет в реальном времени заглянуть внутрь работающего приложения: просмотреть содержимое SQLite-базы, файлы настроек, очередь фоновых задач и сетевую активность. Разберём, как его запустить, какие вкладки доступны и что делать при типичных ошибках.

Что такое App Inspection и зачем он нужен

App Inspection — это встроенная панель Android Studio, которая подключается к запущенному процессу приложения и показывает его внутреннее состояние без необходимости вручную вытаскивать файлы через ADB. Раньше для просмотра базы данных приходилось копировать файл .db на компьютер и открывать сторонними утилитами — теперь это делается прямо в IDE.

Панель объединяет несколько отдельных инспекторов, каждый из которых отвечает за свою область:

  • 🗄️ Database Inspector — просмотр и редактирование таблиц SQLite, выполнение SQL-запросов;
  • ⚙️ Background Task Inspector — мониторинг задач WorkManager, JobScheduler, AlarmManager;
  • 🌐 Network Inspector — анализ сетевых запросов и ответов;
  • 📁 File Explorer — доступ к файловой системе приложения (для отладочных сборок).

Открывается панель через меню View → Tool Windows → App Inspection. После запуска приложения на устройстве или эмуляторе в верхней части панели выбирается процесс — и инспекторы начинают показывать данные.

Требования и совместимость

Для работы инструмента необходимо соблюдение нескольких условий. Во-первых, приложение должно быть собрано в debug-варианте либо с включённым флагом debuggable — релизные сборки из Play Store инспектировать нельзя. Во-вторых, устройство должно работать на достаточно свежей версии Android: часть инспекторов требует API 26 и выше, а отдельные функции зависят от версии самой Android Studio.

Также важно, чтобы использовались актуальные версии библиотек. Например, Background Task Inspector корректно отображает задачи WorkManager только начиная с определённых версий библиотеки — если задачи не видны, первым делом проверьте зависимости в build.gradle.

КомпонентТребованиеЧто проверить
Тип сборкиDebug или debuggableBuild Variant в Android Studio
УстройствоЭмулятор или физическое с отладкойВключённая отладка по USB
Database InspectorSQLite / RoomБаза создана и открыта приложением
Background Task InspectorАктуальная версия WorkManagerЗависимости в build.gradle
ПроцессВыбран вручную в панелиВыпадающий список процессов
⚠️ Внимание: App Inspection не работает с release-сборками, подписанными для публикации. Если панель пустая, первым делом убедитесь, что активный Build Variant — debug, а приложение на устройстве установлено именно из этой конфигурации.

Как запустить App Inspection: пошаговая инструкция

Порядок действий одинаков для эмулятора и физического устройства. Сначала подключите устройство с включённой отладкой по USB или запустите эмулятор, затем установите и запустите приложение через кнопку Run.

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

☑️ Запуск App Inspection

Выполнено: 0 / 5

После выбора процесса данные подгружаются автоматически. Если база данных ещё не создана (например, пользователь не дошёл до нужного экрана), выполните в приложении действие, которое её инициализирует, — и таблицы появятся в Database Inspector.

Работа с Database Inspector

Database Inspector — самая востребованная часть панели. Он показывает все базы SQLite приложения, список таблиц и их содержимое в табличном виде. Поддерживаются как «чистый» SQLite, так и базы, созданные через Room.

Данные обновляются в реальном времени: если приложение вставляет запись, она тут же появляется в инспекторе. Для read-only режима это работает всегда; чтобы редактировать ячейки прямо в таблице и видеть изменения в приложении, потребуется устройство с API 26+ и активная live-синхронизация.

В верхней части вкладки есть поле для выполнения произвольных SQL-запросов. Например, проверить содержимое таблицы можно так:

SELECT * FROM users ORDER BY id DESC LIMIT 20;

Результат запроса отображается отдельной таблицей, и его можно обновлять кнопкой повторного выполнения. Это удобно для проверки сложных выборок с JOIN без изменения кода приложения.

📊 Какой инспектор App Inspection вы используете чаще всего?
Database Inspector
Network Inspector
Background Task Inspector
Пока не пользовался App Inspection

Background Task и Network Inspector

Background Task Inspector показывает очередь фоновых задач: задачи WorkManager, будильники AlarmManager и джобы JobScheduler. Для каждой задачи видны её состояние (enqueued, running, succeeded, failed), ограничения (сеть, заряд батареи) и цепочки зависимостей. Это незаменимо при отладке периодической синхронизации, когда задача «молча» не выполняется.

Network Inspector фиксирует исходящие запросы приложения: URL, метод, код ответа, заголовки и тело. По сравнению с внешними прокси вроде Charles, он не требует настройки сертификатов, но и возможности у него скромнее — для глубокого анализа HTTPS-трафика сторонние инструменты всё ещё актуальны.

  • 🔍 Проверяйте в Network Inspector, уходит ли запрос вообще — часто проблема на стороне клиента, а не сервера;
  • ⏱️ В Background Task Inspector смотрите поле состояния: задача в статусе enqueued с ограничением по сети не запустится без подключения;
  • 🧩 Для цепочек WorkManager раскрывайте граф зависимостей, чтобы найти задачу, которая блокирует остальные.
Почему задача WorkManager не видна в инспекторе

Наиболее вероятная причина — устаревшая версия библиотеки WorkManager в зависимостях проекта. Инспектор получает данные через механизм, встроенный в саму библиотеку, поэтому старые версии просто не передают информацию в Android Studio. Обновите зависимость androidx.work до актуальной стабильной версии, пересоберите приложение и перезапустите процесс.

Типичные проблемы и их решения

Самая частая жалоба — панель App Inspection показывает «No debuggable processes» или пустой список. Возможные причины: приложение установлено из release-сборки, процесс завершился системой из-за нехватки памяти, либо подключение к устройству оборвалось. Проверьте Build Variant, перезапустите приложение и при необходимости выполните adb reconnect.

Вторая по частоте ситуация — Database Inspector открыт, но таблиц нет. Здесь вариантов два: база ещё не создана (пройдите в приложении сценарий, который её инициализирует) или база открыта в эксклюзивном режиме другим соединением. Закрытие и повторное открытие приложения обычно помогает.

⚠️ Внимание: изменения, внесённые через Database Inspector вручную, записываются в реальную базу на устройстве. Перед редактированием данных на тестовом стенде убедитесь, что не испортите состояние, нужное для воспроизведения бага.

Если инспектор «завис» и перестал обновлять данные, помогает перезапуск соединения: закройте панель, остановите процесс приложения и запустите его заново. Полная перезагрузка Android Studio требуется редко — обычно достаточно переподключения процесса.

FAQ: частые вопросы об App Inspection

Можно ли инспектировать приложение, установленное из Google Play?

Нет. App Inspection работает только с отладочными сборками или приложениями, у которых в манифесте включён флаг android:debuggable="true". Публичные релизные сборки такого флага не содержат.

Почему Database Inspector не показывает изменения в реальном времени?

Live-обновления требуют устройства с API 26 и выше. На более старых версиях Android данные доступны только в режиме чтения с ручным обновлением. Также проверьте, что приложение не держит базу в эксклюзивной блокировке.

Работает ли App Inspection на физическом устройстве без root?

Да, root не нужен. Достаточно включить отладку по USB в настройках разработчика и подключить устройство к компьютеру. Инспектор получает данные через стандартный отладочный механизм Android.

Чем App Inspection отличается от Layout Inspector?

Layout Inspector анализирует иерархию View и внешний вид экрана, а App Inspection работает с данными: базой, файлами, сетью и фоновыми задачами. Это взаимодополняющие инструменты, и их можно держать открытыми одновременно.

Можно ли выполнять INSERT и UPDATE через Database Inspector?

Да, на поддерживаемых устройствах можно редактировать ячейки прямо в таблице и выполнять изменяющие SQL-запросы через поле запроса. Учтите, что изменения применяются к реальной базе приложения и отменить их нельзя.