Ispeziona il traffico di rete con Network Inspector

Network Inspector mostra l'attività di rete in tempo reale su una sequenza temporale, mostrando dati inviati e ricevuti. Network Inspector consente di esaminare come e quando l'app trasferisce i dati e ottimizza il codice sottostante in modo appropriato.

Per aprire Network Inspector:

  1. Nella barra di navigazione di Android Studio, seleziona Visualizza > Finestre degli strumenti > Ispezione delle app. Dopo che la finestra di ispezione dell'app si connette automaticamente a un processo dell'app, seleziona Network Inspector dalle schede.
    • Se la finestra di ispezione dell'app non si collega a un processo dell'app automaticamente, potresti dover selezionare manualmente un processo dell'app.
  2. Seleziona il dispositivo e il processo dell'app che vuoi esaminare dalla Finestra Controllo app.

Panoramica di Network Inspector

Nella parte superiore della finestra Controllo rete puoi vedere la sequenza temporale degli eventi. Fai clic e trascina il cursore per selezionare una parte della sequenza temporale e ispezionare il traffico.

Finestra Network Inspector
. Figura 1. La finestra Network Inspector.

Nel riquadro dei dettagli, il grafico dei tempi può aiutarti a identificare dove le prestazioni potrebbero verificarsi dei problemi. L'inizio della sezione gialla corrisponde il primo byte della richiesta inviata. L'inizio della sezione blu corrisponde al primo byte della risposta ricevuta. La fine della sezione blu corrisponde al byte finale della risposta ricevuta.

Nel riquadro sotto la sequenza temporale, seleziona una delle le schede seguenti per ulteriori dettagli sull'attività di rete durante parte selezionata della sequenza temporale:

  • Visualizzazione connessione: elenca i file che sono stati inviati o ricevuti durante la parte selezionata della sequenza temporale in tutti i thread della CPU dell'app. Per ogni richiesta, puoi esaminare dimensioni, tipo, stato e durata massima. Per ordinare questo elenco, fai clic su una delle intestazioni di colonna. Puoi puoi vedere una suddivisione dettagliata della parte selezionata della sequenza temporale, che mostrano quando ogni file è stato inviato o ricevuto.
  • Visualizzazione thread: mostra l'attività di rete su ciascuna CPU dell'app i thread. Come mostrato nella Figura 2, questa visualizzazione ti consente di esaminare quali i thread sono responsabili di ogni richiesta di rete.

    Ispeziona le richieste di rete per thread dell'app nella visualizzazione thread
    . Figura 2. Esaminare le richieste di rete per thread dell'app nella Vista Thread.
  • Visualizzazione regole: le regole consentono di verificare il comportamento dell'app quando incontra risposte con codici di stato, intestazioni e corpi diversi. Quando crei un nuova regola, assegna un nome alla nuova regola e includi informazioni sull'origine della che vuoi intercettare nella sottosezione Origine. Nella Risposta, puoi specificare dove e come modificare la risposta corretta. Ad esempio, puoi impostare l'esecuzione della regola sulle risposte con un codice di stato specifico e modificarlo. Nella Le regole intestazione e le sottosezioni Regole corpo consentono di creare regole secondarie che aggiungono modificare le intestazioni o il corpo delle risposte. Le regole vengono applicate nell'ordine in cui vengono elencate. Scegli quale regola attivare o disattivare selezionando l'icona Attiva accanto alla regola.

    Riquadri Regole di Network Inspector e Dettagli regola
    . Figura 3. Regole e dettagli delle regole di Network Inspector riquadri.

Dalla Vista connessione o dalla Vista thread, fai clic sul nome di una richiesta per esaminare informazioni dettagliate sui dati inviati o ricevuti. Fai clic sulle schede per visualizza l'intestazione e il corpo della risposta, l'intestazione e il corpo della richiesta o lo stack di chiamate.

Nelle schede Risposta e Richiesta, fai clic sul link Visualizza analizzati per visualizzare testo formattato. Fai clic sul link Visualizza origine per visualizzare il testo non elaborato.

Alterna testo non elaborato a testo formattato
. Figura 4. Passa da testo non elaborato a testo formattato tramite facendo clic sul link corrispondente.

Oltre a mostrare le richieste di rete per HttpsURLConnection, rete Inspector supporta anche OkHttp. Alcune librerie di rete di terze parti, Retrofit, usa OkHttp internamente, in modo che Network Inspector ti consenta di controllare la sua attività di rete. La App di esempio Now in Android utilizza OkHttp per le proprie operazioni di rete ed è ideale per vederla un'azione.

Se utilizzi API HttpsURLConnection, nella scheda Richiesta vengono visualizzate solo le intestazioni che includi nel codice utilizzando il setRequestProperty , come illustrato nell'esempio seguente:

Kotlin

val url = URL(MY_URL_EN)
val urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection
...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity")

Java

URL url = new URL(MY_URL_EN);
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
//...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity");

Risolvere i problemi di connessione di rete

Se il controllo di rete rileva i valori del traffico ma non è in grado di identificarne richieste di rete supportate, viene visualizzato il seguente messaggio di errore:

**Network Inspector Data Unavailable:** There is no information for the
  network traffic you've selected.

Attualmente, Network Inspector supporta solo HttpsURLConnection e OkHttp librerie per le reti e connessioni a Internet. Se la tua app usa un'altra libreria di connessioni di rete, potresti non potrai visualizzare la tua attività di rete in Network Inspector. Se disponi hai ricevuto questo messaggio di errore, ma la tua app utilizza HttpsURLConnection o OkHttp, segnala un bug oppure cerca il problema tracker per includere il tuo feedback in un report esistente relativo al problema. Tu puoi utilizzare queste risorse anche per richiedere assistenza per librerie aggiuntive.