Traces mit Winscope erfassen

Winscope lokal ausführen oder über einen Webserver darauf zugreifen.

Sie können Traces mit Winscope für die lokale Entwicklung und das Debugging erfassen. Winscope verwendet adb, das Geräteverbindungen über USB oder WLAN unterstützt.

Wenn Sie Winscope starten, wird der Bildschirm Collect Traces (Traces erfassen) angezeigt.

Geräteverbindung

Sie können Geräte in Winscope über Winscope Proxy oder Web Device Proxy verbinden. Standardmäßig wird auf der Winscope-Startseite die Benutzeroberfläche für die Einrichtung der Winscope Proxy-Verbindung angezeigt.

Wählen Sie einen der folgenden Mechanismen für die Geräteverbindung aus, um mit der Erfassung von Traces zu beginnen.

Winscope-Proxy einrichten

So richten Sie Winscope Proxy ein:

  1. Wählen Sie auf der Startseite im Bereich Collect Traces (Traces erfassen) im Menü Select connection type (Verbindungstyp auswählen) die Option Winscope Proxy aus:

    Traces mit Winscope Proxy erfassen

    Abbildung 1: Traces mit Winscope Proxy erfassen

  2. Starten Sie den Winscope ADB Connect-Proxy, um Traces direkt über Ihren Browser zu erfassen, indem Sie den folgenden Befehl ausführen:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. Notieren Sie sich das Winscope-Proxy-Token, das nach der Ausführung im Terminal angezeigt wird.

  4. Nachdem Sie den Winscope ADB Connect-Proxy gestartet haben, ändert sich der Bildschirm wie folgt. Geben Sie zum Herstellen der ersten Verbindung zum Proxy das Winscope-Proxy-Token aus Schritt 3 ein und klicken Sie auf Verbinden.

    Verbindung zum Winscope-Proxy herstellen

    Abbildung 2: Stellen Sie eine Verbindung zum Winscope-Proxy her.

Web Device Proxy einrichten

So richten Sie den Web Device Proxy ein:

  1. Wählen Sie auf der Startseite im Bereich Traces erfassen im Menü Verbindungstyp auswählen die Option Web Device Proxy aus:

    Traces mit Web Device Proxy erfassen

    Abbildung 3: Traces mit Web Device Proxy erfassen

  2. Wenn der Web Device Proxy-Daemon nicht auf Ihrem Computer vorhanden ist, klicken Sie auf Installieren oder führen Sie das Installationsprogramm aus.

  3. Genehmigen Sie den Ursprungszugriff auf den Web Device Proxy über das Dialogfeld.

    WDP-Zugriff für Ursprung autorisieren

    Abbildung 4: Ursprung autorisieren

  4. Sie müssen den Zugriff für jedes neue Gerät genehmigen, wenn Sie sich zum ersten Mal mit dem Gerät verbinden. Wenn das Dialogfeld nicht automatisch angezeigt wird, klicken Sie neben dem Gerät auf das Symbol lock_open:

    wdp_unauth_device

    Abbildung 5: Gerät autorisieren.

Traces

So erfassen Sie Traces:

  1. Wählen Sie nach der Verbindung die Ziele aus und konfigurieren Sie die Einstellungen, um den Erfassungsprozess zu starten. Klicken Sie dann auf Trace starten, um die Erfassung zu starten:

    Traces in Winscope erfassen

    Abbildung 6 Traces in Winscope erfassen

  2. Klicken Sie auf Trace beenden, um die Erfassung zu beenden:

    Trace in Winscope beenden

    Abbildung 7. Beenden Sie den Trace in Winscope.

Trace-Optionen

In diesem Abschnitt werden die Optionen für die einzelnen Tracetypen beschrieben.

Bildschirmaufzeichnung

Mit Winscope können Sie den Bildschirm mehrerer Displays aufzeichnen. Wählen Sie im Menü einen Bildschirm aus, um ihn aufzuzeichnen. Wenn Sie keine Auswahl treffen, zeichnet Winscope standardmäßig das aktive Display auf.

SurfaceFlinger

  • Puffergröße:Hiermit wird die Größe des In-Memory-Ringpuffers für den SurfaceFlinger-Trace angepasst. Ein größerer Puffer ermöglicht die Erfassung von mehr Daten, erhöht aber die Arbeitsspeichernutzung.

  • Eingabe:Wenn die Oberfläche Eingabedaten enthält, werden die Details des Eingabefensters erfasst.

  • Zusammensetzung:Hier werden der Zusammensetzungstyp und der sichtbare Bereich dargestellt.

  • Metadaten:Erfasst zusätzliche Oberflächenmetadaten, einschließlich Offscreen-Layern.

  • HWC:Traces zusätzliche unstrukturierte Metadaten des Hardware-Composers.

  • Trace buffers:Konfiguriert SurfaceFlinger so, dass alle Pufferänderungen auf der Oberfläche aufgezeichnet werden. Standardmäßig zeichnet SurfaceFlinger einen neuen Status nur dann auf, wenn sich die Geometrie ändert.

  • Virtuelle Displays:Enthält virtuelle Displayebenen im Trace.

WindowManager

  • Puffergröße:Hiermit wird die Größe des In-Memory-Ringpuffers für den WindowManager-Trace angepasst. Ein größerer Puffer ermöglicht die Erfassung von mehr Daten, erhöht aber die Speichernutzung.
  • Tracing-Typ:Definiert die Häufigkeitsoptionen für das Erfassen von Status:

    • frame:In diesem Modus gibt der WindowManager einen einzelnen Status pro Frame aus, sodass nur gültige WindowManager-Status erfasst werden. Dieser Modus hat den geringsten Leistungsoverhead.
    • transaction:In diesem Modus wird ein WindowManager-Status aufgezeichnet, wenn ein Commit für eine Transaktion erfolgt. Sie können mehrere Transaktionen innerhalb eines Frames committen. So können Sie Zwischenzustände von WindowManager während eines Frames debuggen. Dieser Modus hat jedoch einen höheren Leistungsaufwand als der Frame-Modus.
  • Tracing-Ebene:Legt die Ausführlichkeit der WindowManager-Traces fest:

    • verbose:Enthält alle Fenster- und Konfigurationsinformationen für jedes Fenster. Dieser Modus hat den höchsten Speicher- und Leistungsaufwand.
    • debug:Enthält Informationen zu allen Fenstern, protokolliert aber nur die Fensterkonfiguration, wenn sie eine angeforderte Überschreibungskonfiguration enthält.
    • critical:Enthält dieselben Informationen wie der Debug-Modus, aber nur sichtbare Fenster. Dieser Modus hat den geringsten Speicher- und Leistungsoverhead.

Dumps

Wenn Sie mit Winscope einen Status-Dump erstellen möchten, wählen Sie auf der Startseite unter Collect Traces (Traces erfassen) den Tab Dump (Dump) aus und klicken Sie dann auf Dump state (Status-Dump):

Status in Winscope ausgeben

Abbildung 8. Dump-Status in Winscope.

Screenshot-Konfiguration

Mit Winscope können Sie Screenshots von mehreren Displays erstellen. Wählen Sie im Menü ein Display aus, von dem Sie einen Screenshot erstellen möchten. Wenn keine Auswahl getroffen wird, wird ein Screenshot für das aktive Display erstellt.