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 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.
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.
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.
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.
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.
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ů.
// 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()
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.
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.
| Parametr | Popis | Příklad hodnoty |
|---|---|---|
| URL | Plná adresa požadavku | https://api.example.com/v2/users |
| Method | HTTP metoda požadavku | POST |
| Status | HTTP kód odpovědi | 200 OK |
| Size | Velikost požadavku + odpovědi v bytech | 12.4 KB |
| Time | Celková doba provádění | 342 ms |
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).
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í.
Č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.
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.
Č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.
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.
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í.
// 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()
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.
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čů.
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ástroj | Typ | Platforma | HTTPS | HAR |
|---|---|---|---|---|
| Network Inspector | Vestavěný v Android Studio | Android | Ano | Ano |
| Charles Proxy | Proxy server | Multiplatformní | Ano | Ano |
| Proxyman | Proxy server | macOS, iOS | Ano | Ano |
| Chucker | Inspektor v aplikaci | Android | Ano | Ne |
| Wireshark | Analyzátor paketů | Multiplatformní | Ne | Ne |
Často kladené otázky
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í.
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.
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.
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ý.
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í
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í.
Přečtěte si také