Netzwerktraffic mit dem Network Inspector prüfen

Der Network Inspector zeigt die Netzwerkaktivität in Echtzeit auf einer Zeitachse an, einschließlich gesendeter und empfangener Daten. Mit dem Network Inspector können Sie prüfen, wie und wann Ihre App Daten überträgt, und den zugrunde liegenden Code entsprechend optimieren.

So öffnen Sie den Network Inspector:

  1. Wähle in der Android Studio-Navigationsleiste Ansicht > Tool Windows > App-Prüfung aus. Nachdem das Fenster für die App-Prüfung automatisch eine Verbindung zu einem Anwendungsprozess hergestellt hat, wählen Sie auf den Tabs Network Inspector aus.
    • Wenn vom App-Prüfungsfenster nicht automatisch eine Verbindung zu einem Anwendungsprozess hergestellt wird, müssen Sie möglicherweise manuell einen Anwendungsprozess auswählen.
  2. Wählen Sie im Fenster App Inspection das Gerät und den App-Prozess aus, den Sie prüfen möchten.

Network Inspector – Übersicht

Oben im Fenster „Network Inspector“ sehen Sie die Ereigniszeitachse. Klicken und ziehen Sie, um einen Teil der Zeitachse auszuwählen und den Traffic zu überprüfen.

Das Fenster „Network Inspector“
Abbildung 1: Das Fenster „Network Inspector“.

Mithilfe der Zeitgrafik im Detailbereich können Sie feststellen, wo Leistungsprobleme auftreten könnten. Der Anfang des gelben Abschnitts entspricht dem ersten Byte der gesendeten Anfrage. Der Beginn des blauen Abschnitts entspricht dem ersten Byte der empfangenen Antwort. Das Ende des blauen Abschnitts entspricht dem letzten Byte der empfangenen Antwort.

Wählen Sie im Bereich unter der Zeitachse einen der folgenden Tabs aus, um weitere Details zur Netzwerkaktivität im ausgewählten Teil der Zeitachse zu erhalten:

  • Verbindungsansicht: Listet Dateien auf, die während des ausgewählten Teils der Zeitachse über alle CPU-Threads Ihrer Anwendung gesendet oder empfangen wurden. Sie können für jede Anfrage Größe, Typ, Status und Übertragungsdauer überprüfen. Klicken Sie zum Sortieren der Liste auf eine der Spaltenüberschriften. Sie können auch eine detaillierte Aufschlüsselung des ausgewählten Teils der Zeitachse sehen, die angibt, wann jede Datei gesendet oder empfangen wurde.
  • Thread-Ansicht: Zeigt die Netzwerkaktivität für jeden CPU-Thread Ihrer Anwendung an. Wie in Abbildung 2 dargestellt, können Sie in dieser Ansicht prüfen, welche Threads für die einzelnen Netzwerkanfragen verantwortlich sind.

    Netzwerkanfragen in der Thread-Ansicht nach App-Thread prüfen
    Abbildung 2: Prüfen Sie Netzwerkanfragen nach App-Thread in der Thread-Ansicht.
  • Regelansicht: Mit Regeln können Sie testen, wie sich Ihre App bei Antworten mit unterschiedlichen Statuscodes, Headern und Texten verhält. Wenn Sie eine neue Regel erstellen, geben Sie ihr einen Namen und geben Sie im Unterabschnitt Ursprung Informationen zum Ursprung der Antwort an, die Sie abfangen möchten. Im Unterabschnitt Antwort können Sie angeben, wo und wie die Antwort geändert werden soll. Sie können beispielsweise festlegen, dass die Regel bei Antworten mit einem bestimmten Statuscode ausgeführt wird, und diesen Statuscode ändern. Erstellen Sie in den Unterabschnitten Kopfzeilenregeln und Textregeln Unterregeln, durch die Antwortheader oder -texte hinzugefügt oder geändert werden. Regeln werden in der Reihenfolge angewendet, in der sie aufgeführt sind. Wählen Sie aus, welche Regel aktiviert oder deaktiviert werden soll, indem Sie neben der Regel das Kästchen Aktiv anklicken.

    Bereiche „Network Inspector-Regeln“ und „Regeldetails“
    Abbildung 3: in den Bereichen Regeln und Regeldetails in Network Inspector.

Klicken Sie in der Verbindungsansicht oder der Thread-Ansicht auf einen Anfragenamen, um detaillierte Informationen zu den gesendeten oder empfangenen Daten aufzurufen. Klicken Sie auf die Tabs, um den Antwortheader und ‐text, den Anfrageheader und den Anfragetext oder den Aufrufstack anzusehen.

Klicken Sie auf den Tabs Response (Antwort) und Request (Anfrage) auf den Link View Parsed (Geparst anzeigen), um formatierten Text anzuzeigen. Klicken Sie auf den Link Quelle anzeigen, um den Rohtext anzuzeigen.

Zwischen Rohtext und formatiertem Text wechseln
Abbildung 4: Wechseln Sie zwischen Rohtext und formatiertem Text, indem Sie auf den entsprechenden Link klicken.

Der Network Inspector zeigt nicht nur Netzwerkanfragen für HttpsURLConnection an, sondern unterstützt auch OkHttp. Einige Netzwerkbibliotheken von Drittanbietern, z. B. Retrofit, verwenden OkHttp intern, sodass Sie mit Network Inspector ihre Netzwerkaktivität überprüfen können. Die Now In Android-Beispiel-App verwendet OkHttp für ihre Netzwerkvorgänge und bietet eine gute Möglichkeit, sie in Aktion zu sehen.

Wenn Sie die HttpsURLConnection API verwenden, werden auf dem Tab Anfrage nur Header angezeigt, die Sie mit der Methode setRequestProperty in Ihren Code einfügen, wie im folgenden Beispiel gezeigt:

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");

Probleme mit der Netzwerkverbindung beheben

Wenn der Network Inspector Traffic-Werte erkennt, aber keine unterstützten Netzwerkanfragen identifizieren kann, wird die folgende Fehlermeldung angezeigt:

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

Derzeit unterstützt der Network Inspector nur die Bibliotheken HttpsURLConnection und OkHttp für Netzwerkverbindungen. Wenn Ihre App eine andere Bibliothek für Netzwerkverbindungen verwendet, können Sie Ihre Netzwerkaktivität möglicherweise nicht im Network Inspector ansehen. Wenn Sie diese Fehlermeldung erhalten haben, Ihre App aber HttpsURLConnection oder OkHttp verwendet, melden Sie einen Fehler oder suchen Sie in der Problemverfolgung nach, um Ihr Feedback in einen vorhandenen Bericht zu Ihrem Problem aufzunehmen. Sie können diese Ressourcen auch verwenden, um Unterstützung für zusätzliche Bibliotheken anzufordern.