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
Method HTTP-метод запиту POST
Status HTTP-код відповіді 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-збірках.

Інструмент Тип Платформа HTTPS HAR
Network Inspector Вбудований в Android Studio Android Так Так
Charles Proxy Проксі-сервер Кроссплатформовий Так Так
Proxyman Проксі-сервер macOS, iOS Так Так
Chucker In-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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

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

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