Network Inspector — co to je, princip fungování a monitorování síťových požadavků

Autor: IT Sectr Publikováno: 2026-05-07 Doba čtení: 8 min

Network Inspector v Android Studio je vestavěný nástroj profilování určený pro monitorování a analýzu síťového provozu mobilní aplikace v reálném čase. Podle oficiální dokumentace Android Developers (2025) nástroj umožňuje sledovat dobu provádění požadavků, objem přenesených dat a HTTP stav každého volání. Nástroj nevyžaduje změny v kódu aplikace a funguje „z krabice” s každým projektem na API Level 14 a vyšším.

Hlavní body

  • Network Inspector — je součást Android Profiler pro monitorování síťových požadavků s možností zobrazení hlaviček a těla odpovědi
  • Zachycení provozu probíhá automaticky pro všechna HTTP volání z aplikace, včetně OkHttp, Retrofit, Ktor a WebView
  • Časová osa zobrazuje posloupnost požadavků s uvedením doby trvání, velikosti a stavu každého volání
  • Detailní zobrazení každého požadavku zahrnuje hlavičky, tělo požadavku a odpovědi, cookies a dobu provádění podle fází
  • Export dat ve formátu HAR umožňuje předání síťové interakce kolegům nebo uložení pro pozdější analýzu

Co je Network Inspector?

Network Inspector je nástroj profilování síťové aktivity vestavěný do Android Studio. Umožňuje vývojářům v reálném čase zobrazit všechny HTTP a HTTPS požadavky odesílané aplikací, včetně hlaviček, těla požadavku a odpovědi, stavových kódů a doby provádění. K dispozici prostřednictvím panelu Android Profiler od Android Studio 3.0.

Účel a oblast použití

Hlavním úkolem Network Inspector je ladění síťové interakce mobilní aplikace se serverem. Nástroj se používá pro kontrolu správnosti přenášených dat, analýzu doby odezvy, vyhledávání chyb API a také pro detekci neoptimálních síťových vzorů — například více požadavků při načítání jedné obrazovky. Network Inspector funguje na jakémkoli zařízení s API Level 14.

Kompatibilita a knihovny

Nástroj podporuje všechny hlavní HTTP klienty Android: OkHttp (od verze 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (zastaralý) a WebView. Pro OkHttp a Retrofit je vyžadována knihovna OkHttp Profiler — přidává se automaticky při použití Android Studio 4.1+. Pro Ktor je nutná samostatná konfigurace zachytávače.

Jak funguje Network Inspector

Network Inspector zachycuje síťová volání na úrovni systému pomocí mechanismu Profiler Agent, který je vložen spolu s Android Profiler. Pro správnou funkci je vyžadováno debug sestavení aplikace. Nástroj nemění kód aplikace a nevyžaduje přidávání závislostí pro základní funkčnost.

Mechanismus zachycení provozu

Při spuštění profilování se Network Inspector připojí k Debug procesu aplikace a naslouchá všechna HTTP volání procházející přes OkHttp Client, UrlConnection nebo jiné podporované knihovny. Každý požadavek je zaznamenán s časovým razítkem, což umožňuje vytvoření časové osy síťové aktivity. Pro HTTPS se používá systémová mezivrstva, která zachovává šifrování během přenosu, ale umožňuje prohlížet dekódovaný obsah v Studio.

Architektura sběru dat

Sběr dat probíhá prostřednictvím Profiler Service Android Studio, která běží v samostatném procesu hostitele. Na zařízení běží lehký agent přenášející metadata požadavků přes ADB kanál. To minimalizuje dopad na výkon aplikace — režie je méně než 3 % podle údajů Google. Samotná data požadavků (tělo, hlavičky) jsou přenášena pouze při aktivním prohlížení detailů.

kotlin
// Připojení OkHttp pro integraci s Network Inspector
val client = OkHttpClient.Builder()
    .addInterceptor(HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BASIC
    })
    .build()

// Network Inspector automaticky zachycuje všechna volání přes client
client.newCall(Request.Builder()
    .url("https://api.example.com/data")
    .build()).execute()

Hlavní možnosti Network Inspector

Network Inspector poskytuje sadu nástrojů pro komplexní analýzu síťového provozu. Každá funkce je zaměřena na řešení konkrétního úkolu ladění — od kontroly hlaviček až po analýzu výkonu API.

Časová osa požadavků

Hlavní obrazovka Network Inspector zobrazuje chronologii všech požadavků ve formě časové osy. Každý požadavek je reprezentován barevným pruhem: zelený — úspěšná odpověď (2xx), modrý — přesměrování (3xx), žlutý — chyba klienta (4xx), červený — chyba serveru (5xx). Délka pruhu odpovídá době provádění požadavku od připojení do obdržení úplné odpovědi. To umožňuje okamžitě identifikovat pomalé nebo chybové požadavky.

ParametrPopisPříklad hodnoty
URLPlná adresa požadavkuhttps://api.example.com/v2/users
MethodHTTP metoda požadavkuPOST
StatusHTTP kód odpovědi200 OK
SizeVelikost požadavku + odpovědi v bytech12.4 KB
TimeCelková doba provádění342 ms

Detailní zobrazení požadavku

Při výběru konkrétního požadavku se otevře panel s detaily: Headers (všechny hlavičky požadavku a odpovědi), Request Body (tělo požadavku v textovém nebo binárním formátu), Response Body (tělo odpovědi s možností formátování JSON), Cookies (odeslané a přijaté), Timing (rozdělení času podle fází: DNS, Connection, TLS Handshake, Request, Response).

Filtrování a vyhledávání

Network Inspector podporuje filtrování požadavků podle URL, HTTP metody, stavového kódu a typu obsahu. Lze vyloučit požadavky na určité domény, aby se zaměřilo pouze na potřebné API. Vyhledávání funguje ve všech polích požadavku, včetně těla a hlaviček, což je výhodné při ladění konkrétní funkce aplikace. Kombinované filtry umožňují vytvořit sadu pravidel, která se automaticky aplikuje při každém spuštění profilování.

Seskupování a porovnávání požadavků

Časová osa podporuje seskupování požadavků podle vzorů URL. Například všechny požadavky tvaru /api/v2/users/* lze sbalit do jedné skupiny. To zjednodušuje analýzu, když aplikace provádí stovky požadavků v krátkém čase. Funkce porovnávání sousedních požadavků pomáhá odhalit změny v odpovědích serveru při opakovaných voláních.

Ladění síťových požadavků pomocí Network Inspector

Praktické použití Network Inspector zahrnuje typické scénáře ladění: kontrola formátu dat, detekce pomalých endpointů, hledání úniků paměti způsobených neuzavřenými připojeními a analýza ukládání do mezipaměti.

Kontrola struktury JSON odpovědi

Častým úkolem je ujistit se, že server vrací data v očekávaném formátu. Network Inspector zobrazuje tělo odpovědi s formátováním JSON včetně zvýraznění syntaxe. Pokud se odpověď na klientovi neparsuje, v inspektoru je ihned vidět příčina: chybějící pole, nesprávný datový typ (řetězec místo čísla) nebo nadměrné vnoření. Pokud server vrací chybu, inspektor zobrazuje strukturu chyby s kódem a zprávou. Pro binární formáty (Protocol Buffers, obrázky) se zobrazuje velikost a typ obsahu.

Analýza doby provádění

Záložka Timing rozděluje provádění požadavku na fáze: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Pokud celkový čas přesáhne 1–2 sekundy, na základě fázového rozdělení lze určit příčinu. Například dlouhý DNS indikuje problémy s resolverem, dlouhý TLS Handshake — zastaralou verzi protokolu na serveru, dlouhý Response — pomalý kód serveru nebo neefektivní požadavek s nadbytečnými daty. Analýza Timing pomáhá identifikovat úzká místa ještě před zahájením optimalizace serverové části.

Hledání duplicitních požadavků

Network Inspector pomáhá odhalovat nadbytečné požadavky — například když při každém otočení obrazovky Activity znovu načítá data. Na časové ose série identických požadavků za sebou jasně ukazuje na problém. Řešením může být ukládání do mezipaměti, použití ViewModel s uchováním stavu nebo SingleLiveEvent pro jednorázové načtení.

kotlin
// Ukládání požadavků do mezipaměti s OkHttp pro odstranění duplicity
val cache = Cache(
    File(context.cacheDir, "http_cache"),
    cacheSize = 10L * 1024 * 1024 // 10 MB
)

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

Omezení Network Inspector a alternativy

Navzdory širokým možnostem má Network Inspector řadu omezení, která je důležité vzít v úvahu. Pro některé scénáře — jako je zachycení HTTPS s certifikáty podepsanými svým držitelem nebo analýza provozu knihoven třetích stran — mohou být vyžadovány alternativní nástroje.

Omezení platforem a knihoven

Network Inspector funguje pouze s Android aplikacemi a nepodporuje iOS. Pro Kotlin Multiplatform (KMM) se některé požadavky nemusí zobrazit, pokud jsou prováděny v nativní části. Některé knihovny — například gRPC, WebSocket (ne HTTP), GraphQL přes Apollo (do verze 3.x) — mohou být zachyceny částečně nebo vůbec bez konfigurace dalších zachytávačů.

Alternativní nástroje

Pro hlubší analýzu síťového provozu existují řešení třetích stran: Charles Proxy (plnohodnotný proxy server se zachycením HTTPS), Proxyman (ekvivalent pro macOS), Wireshark (analýza na úrovni paketů), Stetho by Facebook (integrace s Chrome DevTools), Chucker (knihovna pro inspekci požadavků uvnitř aplikace). Každý nástroj má své místo: Charles a Proxyman jsou nepostradatelné při ladění interakce se serverem v raných fázích vývoje, a Chucker — pro sběr informací v testovacích sestaveních.

NástrojTypPlatformaHTTPSHAR
Network InspectorVestavěný v Android StudioAndroidAnoAno
Charles ProxyProxy serverMultiplatformníAnoAno
ProxymanProxy servermacOS, iOSAnoAno
ChuckerInspektor v aplikaciAndroidAnoNe
WiresharkAnalyzátor paketůMultiplatformníNeNe

Často kladené otázky

Proč Network Inspector nezobrazuje požadavky?

Ujistěte se, že aplikace je zkompilována v Debug konfiguraci a spuštěna s připojeným Android Profiler. Pokud je použit OkHttp 4.x, může být nutné aktualizovat knihovnu na nejnovější verzi. Pro Ktor se požadavky zobrazují pouze při použití Ktor klienta s Engine podporujícím zachycení.

Lze prohlížet HTTPS provoz?

Ano, Network Inspector podporuje HTTPS provoz bez další konfigurace. Na rozdíl od Charles Proxy není nutná instalace kořenového certifikátu. Nástroj používá systémový mechanismsus Android Profiler k dekódování provozu v rámci ladící relace.

Jak exportovat data z Network Inspector?

Network Inspector umožňuje exportovat data ve formátu HAR (HTTP Archive). Klikněte na tlačítko Export v pravém horním rohu panelu. Soubor HAR lze otevřít v libovolném prohlížeči HAR nebo importovat do Charles Proxy a Proxyman pro další analýzu.

Ovlivňuje Network Inspector výkon aplikace?

Podle údajů Google režie nepřesahuje 3 % při aktivním profilování. Při vypnutém Network Inspector není žádná režie. Nástroj se nedoporučuje používat na release sestaveních, ale v Debug relacích je dopad na moderních zařízeních neznatelný.

Co dělat, když se odpověď zobrazuje jako syrová data?

Pokud se tělo odpovědi zobrazuje jako nečitelné syrová data, může to souviset s kompresí gzip nebo binárním formátem (Protocol Buffers, MessagePack). Network Inspector automaticky dekóduje gzip. Pro vlastní formáty použijte nápovědu Content-Type v hlavičkách odpovědi.

Shrnutí

  • Network Inspector — je vestavěný nástroj v Android Studio pro monitorování a ladění síťových požadavků v reálném čase bez změny kódu aplikace
  • Automatické zachycení všech HTTP volání přes OkHttp, Retrofit, Ktor a UrlConnection — nástroj funguje „z krabice” v Debug sestavení
  • Časová osa s barevným kódováním stavových kódů umožňuje okamžitou detekci pomalých, chybových a opakujících se požadavků
  • Detailní zobrazení každého požadavku zahrnuje hlavičky, tělo (s formátováním JSON), cookies a fázové rozdělení doby provádění
  • Fázové rozdělení Timing (DNS, TCP, TLS, Request, Response) pomáhá přesně určit příčinu pomalých požadavků
  • Export do HAR umožňuje ukládání relací pro předání kolegům nebo analýzu v externích nástrojích jako Charles Proxy
  • Pro složitější scénáře použijte Charles Proxy nebo Proxyman — podporují zachycení provozu na úrovni OS a práci s iOS

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také