Network Inspector i Android Studio är ett inbyggt profileringsverktyg utformat för att övervaka och analysera nätverkstrafik för mobilappen i realtid. Enligt officiell dokumentation från Android Developers (2025) gör verktyget det möjligt att spåra svarstider, mängden överförd data och HTTP-status för varje anrop. Verktyget kräver inga ändringar i appkoden och fungerar "direkt ur lådan" med alla projekt på API Level 14 och högre.
Huvudpunkter
Network Inspector är ett profileringsverktyg för nätverksaktivitet som är inbyggt i Android Studio. Det låter utvecklare i realtid se alla HTTP- och HTTPS-förfrågningar som skickas av appen, inklusive rubriker, förfråge- och svarstext, statuskoder och exekveringstid. Tillgängligt via panelen Android Profiler från och med Android Studio 3.0.
Huvuduppgiften för Network Inspector är felsökning av nätverksinteraktion mellan mobilappen och servern. Verktyget används för att kontrollera korrektheten av överförda data, analysera svarstider, söka efter API-fel samt upptäcka icke-optimala nätverksmönster — till exempel flera förfrågningar vid laddning av en skärm. Network Inspector fungerar på alla enheter med API Level 14.
Verktyget stöder alla större Android HTTP-klienter: OkHttp (från version 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (föråldrad) och WebView. För OkHttp och Retrofit krävs biblioteket OkHttp Profiler — det läggs till automatiskt när Android Studio 4.1+ används. För Ktor krävs separat konfiguration av avlyssnare.
Network Inspector fångar upp nätverksanrop på systemnivå med hjälp av Profiler Agent-mekanismen, som injiceras tillsammans med Android Profiler. För korrekt funktion krävs en debug-build av appen. Verktyget ändrar inte appkoden och kräver inga tillägg av beroenden för grundläggande funktionalitet.
När profilering startas ansluter Network Inspector till appens Debug-process och lyssnar på alla HTTP-anrop som går via OkHttp Client, UrlConnection eller andra bibliotek som stöds. Varje förfrågan registreras med en tidsstämpel, vilket gör det möjligt att skapa en tidslinje över nätverksaktivitet. För HTTPS används ett systemmellanlager som bevarar kryptering under överföring men tillåter visning av avkodat innehåll i Studio.
Datainsamling sker via Android Studios Profiler Service, som körs i en separat värdprocess. På enheten körs en lätt agent som överför förfrågningsmetadata via ADB-kanalen. Detta minimerar påverkan på appens prestanda — overheaden är mindre än 3% enligt Google. Själva förfrågningsdata (text, rubriker) överförs endast vid aktiv visning av detaljer.
// Ansluta OkHttp för integration med Network Inspector
val client = OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BASIC
})
.build()
// Network Inspector fångar automatiskt upp alla anrop via client
client.newCall(Request.Builder()
.url("https://api.example.com/data")
.build()).execute()
Network Inspector tillhandahåller en uppsättning verktyg för omfattande analys av nätverkstrafik. Varje funktion är inriktad på att lösa en specifik felsökningsuppgift — från kontroll av rubriker till analys av API-prestanda.
Huvudskärmen i Network Inspector visar kronologin över alla förfrågningar i form av en tidslinje. Varje förfrågan representeras av ett färgat fält: grönt — lyckat svar (2xx), blått — omdirigering (3xx), gult — klientfel (4xx), rött — serverfel (5xx). Fältets längd motsvarar exekveringstiden från anslutning till mottagande av fullständigt svar. Detta gör det möjligt att omedelbart identifiera långsamma eller felaktiga förfrågningar.
| Parameter | Beskrivning | Exempelvärde |
|---|---|---|
| URL | Fullständig adress för förfrågan | https://api.example.com/v2/users |
| Method | HTTP-metod för förfrågan | POST |
| Status | HTTP-statuskod för svar | 200 OK |
| Size | Storlek på förfrågan + svar i byte | 12.4 KB |
| Time | Total exekveringstid | 342 ms |
När en specifik förfrågan väljs öppnas en panel med detaljer: Headers (alla rubriker för förfrågan och svar), Request Body (förfrågans text i text- eller binärformat), Response Body (svarstext med möjlighet till JSON-formatering), Cookies (skickade och mottagna), Timing (tidsindelning per fas: DNS, Connection, TLS Handshake, Request, Response).
Network Inspector stöder filtrering av förfrågningar efter URL, HTTP-metod, statuskod och innehållstyp. Förfrågningar till specifika domäner kan uteslutas för att fokusera endast på det nödvändiga API:et. Sökning fungerar i alla fält i förfrågan, inklusive text och rubriker, vilket är praktiskt vid felsökning av en specifik appfunktion. Kombinerade filter gör det möjligt att skapa en uppsättning regler som automatiskt tillämpas vid varje profileringstart.
Tidslinjen stöder gruppering av förfrågningar efter URL-mönster. Till exempel kan alla förfrågningar av formen /api/v2/users/* slås samman i en grupp. Detta förenklar analysen när appen gör hundratals förfrågningar under kort tid. Funktionen för jämförelse av närliggande förfrågningar hjälper till att upptäcka förändringar i serversvar vid upprepade anrop.
Praktisk användning av Network Inspector omfattar typiska felsökningsscenarier: kontroll av dataformat, detektering av långsamma slutpunkter, hitta minnesläckor på grund av ej stängda anslutningar och analys av cachning.
En vanlig uppgift — att säkerställa att servern returnerar data i förväntat format. Network Inspector visar svarstexten med JSON-formatering, inklusive syntaxmarkering. Om svaret inte kan parsas på klientsidan syns orsaken omedelbart i inspektorn: saknat fält, felaktig datatyp (sträng istället för nummer) eller överdriven nästling. Om servern returnerar ett fel visar inspektorn felstrukturen med kod och meddelande. För binära format (Protocol Buffers, bilder) visas storlek och content-type.
Fliken Timing delar upp exekveringen av förfrågan i faser: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Om totaltiden överstiger 1-2 sekunder kan orsaken fastställas baserat på fasindelningen. Till exempel indikerar lång DNS problem med resolver, lång TLS Handshake — föråldrad protokollversion på servern, lång Response — långsam serverkod eller ineffektiv förfrågan med överflödiga data. Timing-analys hjälper till att identifiera flaskhalsar redan innan optimering av serverdelen påbörjas.
Network Inspector hjälper till att upptäcka överflödiga förfrågningar — till exempel när Activity laddar om data vid varje skärmrotation. På tidslinjen indikerar en serie identiska förfrågningar efter varandra tydligt problemet. Lösningen kan vara cachning, användning av ViewModel med bevarande av tillstånd eller SingleLiveEvent för engångsladdning.
// Cachelagra förfrågningar med OkHttp för att eliminera dubblicering
val cache = Cache(
File(context.cacheDir, "http_cache"),
cacheSize = 10L * 1024 * 1024 // 10 MB
)
val cachedClient = OkHttpClient.Builder()
.cache(cache)
.addNetworkInterceptor(CacheInterceptor())
.build()
Trots de omfattande funktionerna har Network Inspector ett antal begränsningar som är viktiga att beakta. För vissa scenarier — såsom HTTPS-avlyssning med självsignerade certifikat eller analys av trafik från tredjepartsbibliotek — kan alternativa verktyg krävas.
Network Inspector fungerar endast med Android-appar och stöder inte iOS. För Kotlin Multiplatform (KMM) kan vissa förfrågningar inte visas om de körs i den inbyggda delen. Vissa bibliotek — till exempel gRPC, WebSocket (inte HTTP), GraphQL via Apollo (upp till version 3.x) — kan fångas upp delvis eller inte alls utan konfiguration av ytterligare avlyssnare.
För djupare analys av nätverkstrafik finns tredjepartslösningar: Charles Proxy (fullfjädrad proxyserver med HTTPS-avlyssning), Proxyman (motsvarighet för macOS), Wireshark (analys på paketnivå), Stetho by Facebook (integration med Chrome DevTools), Chucker (bibliotek för inspektion av förfrågningar inuti appen). Varje verktyg har sin nisch: Charles och Proxyman är oumbärliga vid felsökning av serverinteraktion i tidiga utvecklingsstadier, och Chucker — för insamling av information i testbyggen.
| Verktyg | Typ | Plattform | HTTPS | HAR |
|---|---|---|---|---|
| Network Inspector | Inbyggt i Android Studio | Android | Ja | Ja |
| Charles Proxy | Proxyserver | Plattformsoberoende | Ja | Ja |
| Proxyman | Proxyserver | macOS, iOS | Ja | Ja |
| Chucker | In-app-inspektör | Android | Ja | Nej |
| Wireshark | Paketanalysator | Plattformsoberoende | Nej | Nej |
Vanliga frågor
Se till att appen är kompilerad i Debug-konfiguration och körs med ansluten Android Profiler. Om OkHttp 4.x används kan det vara nödvändigt att uppdatera biblioteket till den senaste versionen. För Ktor visas förfrågningar endast när Ktor-klienten används med en Engine som stöder avlyssning.
Ja, Network Inspector stöder HTTPS-trafik utan extra konfiguration. Till skillnad från Charles Proxy krävs ingen installation av rotcertifikat. Verktyget använder systemmekanismen i Android Profiler för att avkoda trafik inom felsökningssessionen.
Network Inspector möjliggör export av data i HAR-format (HTTP Archive). Klicka på Export-knappen i panelens övre högra hörn. HAR-filen kan öppnas i valfri HAR-visare eller importeras till Charles Proxy och Proxyman för vidare analys.
Enligt Google överstiger overheaden inte 3% vid aktiv profilering. När Network Inspector är avstängd finns ingen overhead. Verktyget rekommenderas inte för användning i release-byggen, men i Debug-sessioner är påverkan omärkbar på moderna enheter.
Om svarstexten visas som oläslig rådata kan detta bero på gzip-komprimering eller binärformat (Protocol Buffers, MessagePack). Network Inspector avkodar gzip automatiskt. För anpassade format, använd Content-Type-ledtråden i svarshuvuden.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också