Network Inspector — что это, принцип работы и мониторинг сетевых запросов

Автор: IT Sectr Опубликовано: 2026-05-07 Время чтения: 8 мин

Network Inspector в Android Studio — это встроенный инструмент профилирования, предназначенный для мониторинга и анализа сетевого трафика мобильного приложения в реальном времени. По данным официальной документации Android Developers (2025), инструмент позволяет отслеживать время выполнения запросов, объём переданных данных и HTTP-статус каждого вызова. Инструмент не требует изменений в коде приложения и работает «из коробки» с любым проектом на API Level 14 и выше.

Главное

  • Network Inspector — это компонент Android Profiler для мониторинга сетевых запросов с возможностью просмотра заголовков и тела ответа
  • Перехват трафика происходит автоматически для всех HTTP-вызовов, совершаемых из приложения, включая OkHttp, Retrofit, Ktor и WebView
  • Временная шкала отображает последовательность запросов с указанием длительности, размера и статуса каждого вызова
  • Детальный просмотр каждого запроса включает заголовки, тело запроса и ответа, cookies и время выполнения по этапам
  • Экспорт данных в формате HAR позволяет передать сетевое взаимодействие коллегам или сохранить для последующего анализа

Что такое Network Inspector?

Network Inspector — это инструмент профилирования сетевой активности, встроенный в Android Studio. Он позволяет разработчикам в реальном времени просматривать все HTTP- и HTTPS-запросы, отправляемые приложением, включая заголовки, тело запроса и ответа, статус-коды и длительность выполнения. Доступен через панель Android Profiler начиная с Android Studio 3.0.

Назначение и область применения

Основная задача Network Inspector — отладка сетевого взаимодействия мобильного приложения с сервером. Инструмент используется для проверки корректности передаваемых данных, анализа времени отклика, поиска ошибок API, а также для обнаружения неоптимальных сетевых паттернов — например, множественных запросов при загрузке одного экрана. Network Inspector работает на любом устройстве с API Level 14.

Совместимость и библиотеки

Инструмент поддерживает все основные HTTP-клиенты Android: OkHttp (начиная с версии 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (устаревший) и WebView. Для OkHttp и Retrofit требуется библиотека OkHttp Profiler — она подключается автоматически при использовании Android Studio 4.1+. Для Ktor необходима отдельная настройка перехватчика.

Как работает Network Inspector

Network Inspector перехватывает сетевые вызовы на уровне системы, используя механизм Profiler Agent, внедряемый вместе с Android Profiler. Для корректной работы требуется debug-сборка приложения. Инструмент не изменяет код приложения и не требует добавления зависимостей для базового функционала.

Механизм перехвата трафика

При запуске профилирования Network Inspector подключается к Debug-процессу приложения и слушает все HTTP-вызовы, проходящие через OkHttp Client, UrlConnection или другие поддерживаемые библиотеки. Каждый запрос фиксируется с меткой времени, что позволяет построить временную шкалу сетевой активности. Для HTTPS используется системная прослойка, что сохраняет шифрование при передаче, но позволяет просматривать декодированное содержимое внутри Studio.

Архитектура сбора данных

Сбор данных происходит через Profiler Service Android Studio, который работает в отдельном процессе хоста. На устройстве работает лёгкий агент, передающий метаданные запросов по ADB-каналу. Это минимизирует влияние на производительность приложения — накладные расходы составляют менее 3% по данным Google. Сами данные запросов (тело, заголовки) передаются только при активном просмотре деталей.

kotlin
// Подключение OkHttp для интеграции с Network Inspector
val client = OkHttpClient.Builder()
    .addInterceptor(HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BASIC
    })
    .build()

// Network Inspector автоматически перехватывает все вызовы через client
client.newCall(Request.Builder()
    .url("https://api.example.com/data")
    .build()).execute()

Основные возможности Network Inspector

Network Inspector предоставляет набор инструментов для всестороннего анализа сетевого трафика. Каждая функция направлена на решение конкретной задачи отладки — от проверки заголовков до анализа производительности API.

Временная шкала запросов

Основной экран Network Inspector отображает хронологию всех запросов в виде временной шкалы. Каждый запрос представлен цветной полосой: зелёный — успешный ответ (2xx), синий — перенаправление (3xx), жёлтый — клиентская ошибка (4xx), красный — серверная ошибка (5xx). Длина полосы соответствует времени выполнения запроса от соединения до получения полного ответа. Это позволяет мгновенно выявить медленные или упавшие с ошибкой запросы.

ПараметрОписаниеПример значения
URLПолный адрес запросаhttps://api.example.com/v2/users
MethodHTTP-метод запросаPOST
StatusHTTP-код ответа200 OK
SizeРазмер запроса + ответа в байтах12.4 KB
TimeПолное время выполнения342 ms

Детальный просмотр запроса

При выборе конкретного запроса открывается панель с деталями: Headers (все заголовки запроса и ответа), Request Body (тело запроса в текстовом или бинарном формате), Response Body (тело ответа с возможностью форматирования JSON), Cookies (отправленные и полученные), Timing (разбивка времени по фазам: DNS, Connection, TLS Handshake, Request, Response).

Фильтрация и поиск

Network Inspector поддерживает фильтрацию запросов по URL, HTTP-методу, статус-коду и типу контента. Можно исключить запросы к определённым доменам, чтобы сфокусироваться только на нужном API. Поиск работает по всем полям запроса, включая тело и заголовки, что удобно при отладке конкретной функции приложения. Комбинированные фильтры позволяют создать набор правил, который автоматически применяется при каждом запуске профилирования.

Группировка и сравнение запросов

Временная шкала поддерживает группировку запросов по URL-шаблонам. Например, все запросы вида /api/v2/users/* можно свернуть в одну группу. Это упрощает анализ, когда приложение совершает сотни запросов за короткое время. Функция сравнения соседних запросов помогает выявить изменения в ответах сервера при повторных вызовах.

Отладка сетевых запросов с Network Inspector

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

Проверка структуры JSON-ответа

Частая задача — убедиться, что сервер возвращает данные в ожидаемом формате. Network Inspector показывает тело ответа с форматированием JSON, включая подсветку синтаксиса. Если ответ не парсится на клиенте, в инспекторе сразу видно причину: отсутствие поля, неверный тип данных (строка вместо числа) или лишняя вложенность. Если сервер возвращает ошибку, инспектор показывает структуру ошибки с кодом и сообщением. Для бинарных форматов (Protocol Buffers, изображения) отображается размер и content-type.

Анализ времени выполнения

Вкладка Timing разбивает выполнение запроса на фазы: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Если общее время превышает 1–2 секунды, по фазовой разбивке можно определить причину. Например, долгий DNS указывает на проблемы с резолвером, долгий TLS Handshake — на устаревшую версию протокола на сервере, долгий Response — на медленный серверный код или неэффективный запрос с избыточными данными. Анализ Timing помогает выявить узкие места ещё до начала оптимизации серверной части.

Поиск дублирующихся запросов

Network Inspector помогает выявить избыточные запросы — например, когда при каждом повороте экрана Activity пересоздаёт загрузку данных. На временной шкале серия одинаковых запросов подряд наглядно указывает на проблему. Решением может быть кэширование, использование ViewModel с сохранением состояния или SingleLiveEvent для однократной загрузки.

kotlin
// Кэширование запросов с OkHttp для устранения дублирования
val cache = Cache(
    File(context.cacheDir, "http_cache"),
    cacheSize = 10L * 1024 * 1024 // 10 MB
)

val cachedClient = OkHttpClient.Builder()
    .cache(cache)
    .addNetworkInterceptor(CacheInterceptor())
    .build()

Ограничения Network Inspector и альтернативы

Несмотря на широкие возможности, Network Inspector имеет ряд ограничений, которые важно учитывать. Для некоторых сценариев — таких как перехват HTTPS с самоподписанными сертификатами или анализ трафика сторонних библиотек — могут потребоваться альтернативные инструменты.

Ограничения по платформам и библиотекам

Network Inspector работает только с Android-приложениями и не поддерживает iOS. Для Kotlin Multiplatform (KMM) часть запросов может не отображаться, если они выполняются в native-части. Некоторые библиотеки — например, gRPC, WebSocket (не HTTP), GraphQL через Apollo (до версии 3.x) — могут перехватываться частично или не перехватываться вовсе до настройки дополнительных перехватчиков.

Альтернативные инструменты

Для более глубокого анализа сетевого трафика существуют сторонние решения: Charles Proxy (полноценный прокси-сервер с перехватом HTTPS), Proxyman (аналог для macOS), Wireshark (анализ на уровне пакетов), Stetho by Facebook (интеграция с Chrome DevTools), Chucker (библиотека для инспекции запросов внутри приложения). Каждый инструмент имеет свою нишу: Charles и Proxyman незаменимы при отладке взаимодействия с сервером на ранних этапах разработки, а Chucker — для сбора информации в test-сборках.

ИнструментТипПлатформаHTTPSHAR
Network InspectorВстроенный в Android StudioAndroidДаДа
Charles ProxyПрокси-серверКроссплатформенныйДаДа
ProxymanПрокси-серверmacOS, iOSДаДа
ChuckerIn-app инспекторAndroidДаНет
WiresharkПакетный анализаторКроссплатформенныйНетНет

Часто задаваемые вопросы

Почему Network Inspector не показывает запросы?

Убедитесь, что приложение собрано в Debug-конфигурации и запущено с подключённым Android Profiler. Если используется OkHttp 4.x, может потребоваться обновить библиотеку до последней версии. Для Ktor запросы отображаются только при использовании Ktor-клиента с Engine, поддерживающим перехват.

Можно ли просматривать HTTPS-трафик?

Да, Network Inspector поддерживает HTTPS-трафик без дополнительной настройки. В отличие от Charles Proxy, не требуется установка корневого сертификата. Инструмент использует системный механизм Android Profiler для декодирования трафика внутри отладочной сессии.

Как экспортировать данные из Network Inspector?

Network Inspector позволяет экспортировать данные в формате HAR (HTTP Archive). Нажмите кнопку Export в правом верхнем углу панели. Файл HAR можно открыть в любом HAR-вьювере или импортировать в Charles Proxy и Proxyman для дальнейшего анализа.

Влияет ли Network Inspector на производительность приложения?

По данным Google, накладные расходы не превышают 3% при активном профилировании. При отключённом Network Inspector накладные расходы отсутствуют. Инструмент не рекомендуется использовать на релизных сборках, но для Debug-сессий влияние незаметно на современных устройствах.

Что делать, если ответ отображается как raw-данные?

Если тело ответа отображается как нечитаемые raw-данные, это может быть связано с gzip-сжатием или бинарным форматом (Protocol Buffers, MessagePack). Network Inspector автоматически декодирует gzip. Для кастомных форматов используйте Content-Type hint в заголовках ответа.

Итоги

  • Network Inspector — это встроенный в Android Studio инструмент для мониторинга и отладки сетевых запросов в реальном времени без изменения кода приложения
  • Автоматический перехват всех HTTP-вызовов через OkHttp, Retrofit, Ktor и UrlConnection — инструмент работает «из коробки» в Debug-сборке
  • Временная шкала с цветовой кодировкой статус-кодов позволяет мгновенно выявлять медленные, упавшие и повторяющиеся запросы
  • Детальный просмотр каждого запроса включает заголовки, тело (с форматированием JSON), cookies и фазовую разбивку времени выполнения
  • Фазовая разбивка Timing (DNS, TCP, TLS, Request, Response) помогает точно определить причину медленных запросов
  • Экспорт в HAR позволяет сохранять сессии для передачи коллегам или анализа в сторонних инструментах вроде Charles Proxy
  • Для более сложных сценариев используйте Charles Proxy или Proxyman — они поддерживают перехват трафика на уровне ОС и работу с iOS

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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