Network Inspector — wat het is, werkingsprincipe en monitoring van netwerkverzoeken

Auteur: IT Sectr Gepubliceerd: 2026-05-07 Leestijd: 8 min

Network Inspector in Android Studio is een ingebouwd profileringsinstrument voor het monitoren en analyseren van netwerkverkeer van een mobiele app in realtime. Volgens officiële Android Developers-documentatie (2025) stelt het instrument u in staat de uitvoeringstijd van verzoeken, de hoeveelheid verzonden gegevens en de HTTP-status van elke aanroep te volgen. Het instrument vereist geen wijzigingen in de app-code en werkt „uit de doos” met elk project op API Level 14 en hoger.

Belangrijkste punten

  • Network Inspector — is een Android Profiler-component voor het monitoren van netwerkverzoeken met de mogelijkheid om headers en antwoordbody te bekijken
  • Verkeersonderschepping gebeurt automatisch voor alle HTTP-aanroepen vanuit de app, inclusief OkHttp, Retrofit, Ktor en WebView
  • Tijdlijn toont de volgorde van verzoeken met vermelding van duur, grootte en status van elke aanroep
  • Gedetailleerde weergave van elk verzoek omvat headers, verzoek- en antwoordbody, cookies en uitvoeringstijd per fase
  • Gegevensexport in HAR-formaat maakt het mogelijk netwerkinteractie door te geven aan collega's of op te slaan voor latere analyse

Wat is Network Inspector?

Network Inspector is een profileringsinstrument voor netwerkactiviteit dat is ingebouwd in Android Studio. Het stelt ontwikkelaars in staat om in realtime alle HTTP- en HTTPS-verzoeken van de app te bekijken, inclusief headers, verzoek- en antwoordbody, statuscodes en uitvoeringstijd. Beschikbaar via het Android Profiler-paneel vanaf Android Studio 3.0.

Doel en toepassingsgebied

De hoofdtaak van Network Inspector is het debuggen van de netwerkinteractie van de mobiele app met de server. Het instrument wordt gebruikt voor het controleren van de juistheid van verzonden gegevens, analyse van responstijd, zoeken naar API-fouten en het detecteren van suboptimale netwerkpatronen — zoals meerdere verzoeken bij het laden van één scherm. Network Inspector werkt op elk apparaat met API Level 14.

Compatibiliteit en bibliotheken

Het instrument ondersteunt alle belangrijke Android HTTP-cliënten: OkHttp (vanaf versie 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (verouderd) en WebView. Voor OkHttp en Retrofit is de OkHttp Profiler-bibliotheek vereist — deze wordt automatisch toegevoegd bij gebruik van Android Studio 4.1+. Voor Ktor is een aparte interceptors-configuratie nodig.

Hoe werkt Network Inspector

Network Inspector onderschept netwerkoproepen op systeemniveau via het Profiler Agent-mechanisme, dat samen met Android Profiler wordt geïnjecteerd. Voor correcte werking is een debug-build van de app vereist. Het instrument wijzigt de app-code niet en vereist geen toevoeging van afhankelijkheden voor basisfunctionaliteit.

Mechanisme van verkeersonderschepping

Bij het starten van profilering verbindt Network Inspector zich met het Debug-proces van de app en luistert naar alle HTTP-aanroepen die via OkHttp Client, UrlConnection of andere ondersteunde bibliotheken gaan. Elk verzoek wordt geregistreerd met een tijdstempel, wat het mogelijk maakt een tijdlijn van netwerkactiviteit op te bouwen. Voor HTTPS wordt een systeemtussenlaag gebruikt die de codering tijdens verzending behoudt, maar het mogelijk maakt de gedecodeerde inhoud in Studio te bekijken.

Architectuur van gegevensverzameling

Gegevensverzameling vindt plaats via de Profiler Service van Android Studio, die in een apart hostproces draait. Op het apparaat draait een lichte agent die metadata van verzoeken via het ADB-kanaal verzendt. Dit minimaliseert de impact op de app-prestaties — de overhead is minder dan 3% volgens Google-gegevens. De eigenlijke verzoekgegevens (body, headers) worden alleen verzonden tijdens actieve weergave van details.

kotlin
// OkHttp aansluiten voor integratie met Network Inspector
val client = OkHttpClient.Builder()
    .addInterceptor(HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BASIC
    })
    .build()

// Network Inspector onderschept automatisch alle aanroepen via client
client.newCall(Request.Builder()
    .url("https://api.example.com/data")
    .build()).execute()

Belangrijkste mogelijkheden van Network Inspector

Network Inspector biedt een set instrumenten voor uitgebreide analyse van netwerkverkeer. Elke functie is gericht op het oplossen van een specifieke debugtaak — van het controleren van headers tot het analyseren van API-prestaties.

Tijdlijn van verzoeken

Het hoofdscherm van Network Inspector toont de chronologie van alle verzoeken als een tijdlijn. Elk verzoek wordt weergegeven als een gekleurde balk: groen — succesvol antwoord (2xx), blauw — doorverwijzing (3xx), geel — clientfout (4xx), rood — serverfout (5xx). De lengte van de balk komt overeen met de uitvoeringstijd van het verzoek van verbinding tot ontvangst van het volledige antwoord. Dit maakt het mogelijk direct trage of foutieve verzoeken te identificeren.

ParameterBeschrijvingVoorbeeldwaarde
URLVolledig adres van het verzoekhttps://api.example.com/v2/users
MethodHTTP-methode van het verzoekPOST
StatusHTTP-antwoordcode200 OK
SizeGrootte van verzoek + antwoord in bytes12.4 KB
TimeTotale uitvoeringstijd342 ms

Gedetailleerde weergave van een verzoek

Bij het selecteren van een specifiek verzoek opent een paneel met details: Headers (alle headers van verzoek en antwoord), Request Body (verzoekbody in tekst- of binair formaat), Response Body (antwoordbody met JSON-opmaakmogelijkheid), Cookies (verzonden en ontvangen), Timing (tijdsverdeling per fase: DNS, Connection, TLS Handshake, Request, Response).

Filteren en zoeken

Network Inspector ondersteunt filteren van verzoeken op URL, HTTP-methode, statuscode en inhoudstype. Verzoeken naar bepaalde domeinen kunnen worden uitgesloten om zich alleen op de benodigde API te concentreren. Zoeken werkt in alle velden van het verzoek, inclusief body en headers, wat handig is bij het debuggen van een specifieke app-functie. Gecombineerde filters maken het mogelijk een set regels te maken die automatisch worden toegepast bij elke profileringstart.

Groeperen en vergelijken van verzoeken

De tijdlijn ondersteunt groeperen van verzoeken op URL-patronen. Bijvoorbeeld, alle verzoeken van de vorm /api/v2/users/* kunnen in één groep worden samengevoegd. Dit vereenvoudigt de analyse wanneer de app honderden verzoeken in korte tijd uitvoert. De functie voor het vergelijken van aangrenzende verzoeken helpt bij het detecteren van veranderingen in serverantwoorden bij herhaalde aanroepen.

Netwerkverzoeken debuggen met Network Inspector

Praktisch gebruik van Network Inspector omvat typische debugscenario's: controleren van gegevensformaat, detecteren van trage endpoints, vinden van geheugenlekken door niet-gesloten verbindingen en analyseren van caching.

Controleren van JSON-antwoordstructuur

Een veelvoorkomende taak — controleren of de server gegevens in het verwachte formaat retourneert. Network Inspector toont de antwoordbody met JSON-opmaak, inclusief syntaxishighlighting. Als het antwoord niet aan clientzijde kan worden geparseerd, is in de inspector direct de oorzaak zichtbaar: ontbrekend veld, verkeerd gegevenstype (string in plaats van getal) of overmatige nesting. Als de server een fout retourneert, toont de inspector de foutstructuur met code en bericht. Voor binaire formaten (Protocol Buffers, afbeeldingen) worden grootte en content-type weergegeven.

Analyseren van uitvoeringstijd

Het tabblad Timing verdeelt de uitvoering van het verzoek in fasen: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Als de totale tijd 1-2 seconden overschrijdt, kan op basis van de faseverdeling de oorzaak worden bepaald. Bijvoorbeeld, lange DNS wijst op problemen met de resolver, lange TLS Handshake op een verouderde protocolversie op de server, lange Response op trage servercode of een inefficiënt verzoek met overbodige gegevens. Timing-analyse helpt knelpunten te identificeren nog voordat optimalisatie van de serverkant begint.

Vinden van dubbele verzoeken

Network Inspector helpt bij het detecteren van overbodige verzoeken — bijvoorbeeld wanneer Activity bij elke schermrotatie het laden van gegevens opnieuw start. Op de tijdlijn wijst een reeks identieke verzoeken achter elkaar duidelijk op het probleem. De oplossing kan caching zijn, gebruik van ViewModel met toestandsbehoud of SingleLiveEvent voor eenmalig laden.

kotlin
// Cachen van verzoeken met OkHttp om duplicatie te voorkomen
val cache = Cache(
    File(context.cacheDir, "http_cache"),
    cacheSize = 10L * 1024 * 1024 // 10 MB
)

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

Beperkingen van Network Inspector en alternatieven

Ondanks de uitgebreide mogelijkheden heeft Network Inspector een aantal beperkingen die in overweging moeten worden genomen. Voor sommige scenario's — zoals HTTPS-onderschepping met zelfondertekende certificaten of analyse van verkeer van bibliotheken van derden — kunnen alternatieve instrumenten nodig zijn.

Platform- en bibliotheekbeperkingen

Network Inspector werkt alleen met Android-apps en ondersteunt iOS niet. Voor Kotlin Multiplatform (KMM) kunnen sommige verzoeken niet worden weergegeven als ze in het native deel worden uitgevoerd. Sommige bibliotheken — zoals gRPC, WebSocket (niet HTTP), GraphQL via Apollo (tot versie 3.x) — kunnen gedeeltelijk of helemaal niet worden onderschept zonder configuratie van extra interceptors.

Alternatieve instrumenten

Voor diepgaandere analyse van netwerkverkeer bestaan oplossingen van derden: Charles Proxy (volledige proxyserver met HTTPS-onderschepping), Proxyman (equivalent voor macOS), Wireshark (analyse op pakketniveau), Stetho by Facebook (integratie met Chrome DevTools), Chucker (bibliotheek voor inspectie van verzoeken in de app). Elk instrument heeft zijn niche: Charles en Proxyman zijn onmisbaar bij het debuggen van serverinteractie in vroege ontwikkelingsfasen, en Chucker voor het verzamelen van informatie in test-builds.

InstrumentTypePlatformHTTPSHAR
Network InspectorIngebouwd in Android StudioAndroidJaJa
Charles ProxyProxyserverMultiplatformJaJa
ProxymanProxyservermacOS, iOSJaJa
ChuckerIn-app inspectorAndroidJaNee
WiresharkPakketanalysatorMultiplatformNeeNee

Veelgestelde vragen

Waarom toont Network Inspector geen verzoeken?

Zorg ervoor dat de app is gecompileerd in Debug-configuratie en is gestart met Android Profiler verbonden. Als OkHttp 4.x wordt gebruikt, moet de bibliotheek mogelijk worden bijgewerkt naar de nieuwste versie. Voor Ktor worden verzoeken alleen weergegeven bij gebruik van een Ktor-client met een Engine die onderschepping ondersteunt.

Kan HTTPS-verkeer worden bekeken?

Ja, Network Inspector ondersteunt HTTPS-verkeer zonder extra configuratie. In tegenstelling tot Charles Proxy is installatie van een rootcertificaat niet vereist. Het instrument gebruikt het systeemmechanisme van Android Profiler voor het decoderen van verkeer binnen de debugsessie.

Hoe exporteer ik gegevens uit Network Inspector?

Network Inspector maakt export van gegevens in HAR-formaat (HTTP Archive) mogelijk. Klik op de Export-knop in de rechterbovenhoek van het paneel. Het HAR-bestand kan worden geopend in elke HAR-viewer of worden geïmporteerd in Charles Proxy en Proxyman voor verdere analyse.

Beïnvloedt Network Inspector de app-prestaties?

Volgens Google-gegevens overschrijdt de overhead niet meer dan 3% tijdens actieve profilering. Wanneer Network Inspector is uitgeschakeld, is er geen overhead. Het instrument wordt niet aanbevolen voor gebruik in release-builds, maar in Debug-sessies is de impact onmerkbaar op moderne apparaten.

Wat te doen als het antwoord als onbewerkte gegevens wordt weergegeven?

Als de antwoordbody wordt weergegeven als onleesbare onbewerkte gegevens, kan dit verband houden met gzip-compressie of een binair formaat (Protocol Buffers, MessagePack). Network Inspector decodeert gzip automatisch. Gebruik voor aangepaste formaten de Content-Type-hint in de antwoordheaders.

Samenvatting

  • Network Inspector — is een in Android Studio ingebouwd instrument voor realtime monitoring en debugging van netwerkverzoeken zonder wijziging van de app-code
  • Automatische onderschepping van alle HTTP-aanroepen via OkHttp, Retrofit, Ktor en UrlConnection — het instrument werkt „uit de doos” in een Debug-build
  • Tijdlijn met kleurcodering van statuscodes maakt directe detectie van trage, foutieve en herhaalde verzoeken mogelijk
  • Gedetailleerde weergave van elk verzoek omvat headers, body (met JSON-opmaak), cookies en faseverdeling van uitvoeringstijd
  • Faseverdeling Timing (DNS, TCP, TLS, Request, Response) helpt de oorzaak van trage verzoeken precies te bepalen
  • Export naar HAR maakt het mogelijk sessies op te slaan voor overdracht aan collega's of analyse in externe instrumenten zoals Charles Proxy
  • Gebruik voor complexere scenario's Charles Proxy of Proxyman — zij ondersteunen verkeersonderschepping op OS-niveau en werken met iOS

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook