Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Fensterübergänge verfolgen

WinScope bietet die Infrastruktur und Tools zum Aufzeichnen und Analysieren von WindowManager- und SurfaceFlinger-Status während und nach Fensterübergängen. WinScope zeichnet alle relevanten Systemdienstzustände in einer Tracedatei auf, mit der Sie die Übergänge wiedergeben und durchlaufen können.

Spuren erfassen

Erfassen Sie Traces über Schnelleinstellungen oder adb auf Geräten, auf denen Userdebug- oder Eng-Builds ausgeführt werden.

Schnelleinstellungen

So erfassen Sie Spuren in den Schnelleinstellungen :

  1. Aktivieren Sie Entwickleroptionen .
  2. Gehen Sie zu Entwickleroptionen > Schnelleinstellungen für Entwicklerkacheln .
  3. Aktivieren Sie WinScope Trace .
  4. Öffnen Sie die Schnelleinstellungen .
  5. Tippen Sie auf Winscope Trace , um die Ablaufverfolgung zu aktivieren.
  6. Führen Sie Fensterübergänge auf dem Gerät aus.
  7. Wenn Sie fertig sind, öffnen Sie die Schnelleinstellungen und tippen Sie auf Winscope Trace , um die Ablaufverfolgung zu deaktivieren.

Traces werden in /data/misc/wmtrace/wm_trace.pb und /data/misc/wmtrace/layers_trace.pb . Spuren sind auch in Fehlerberichten enthalten.

adb

Erfassen Sie beim Erfassen von Traces über adb die WindowManager- und SurfaceFlinger-Traces separat.

WindowManager-Traces

So erfassen Sie WindowManager-Traces:

  1. Trace aktivieren:
    adb shell cmd window tracing start
  2. Trace deaktivieren:
    adb shell cmd window tracing stop
  3. Nehmen Sie die Trace-Datei:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

Sie können optional die Standardprotokollkonfiguration verschiedener Einstellungen für WindowManager-Traces ändern:

  • Legen Sie die Protokollhäufigkeit fest (für die Transaktion oder den Frame):
    adb shell cmd window tracing [ frame  |  transaction ]
  • Konfigurieren Sie die ausführliche Ebene für Protokolleinträge:
    adb shell cmd window tracing level [ all  |  trim  |  critical ]
  • Legen Sie die maximale Puffergröße (in KB) fest:
    adb shell cmd window tracing size size-value 
  • Speichern Sie den Pufferstatus, die Protokollstufe, die verbleibende Kapazität und die Anzahl der Elemente:
    adb shell cmd window tracing status

SurfaceFlinger-Spuren

So erfassen Sie SurfaceFlinger-Spuren:

  1. Trace aktivieren:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. Trace deaktivieren:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. Nehmen Sie die Trace-Datei:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

Sie können optional die Standardprotokollkonfiguration verschiedener Einstellungen für SurfaceFlinger-Traces ändern:

  • Legen Sie die maximale Puffergröße (in KB) fest:
    adb shell su root service call SurfaceFlinger 1029 i32 size-value 
  • Konfigurieren Sie die ausführliche Ebene für Protokolleinträge:
    adb shell su root service call SurfaceFlinger 1033 i32 flags 

State Dumps generieren

WinScope liest eine Momentaufnahme der WindowManager- und SurfaceFlinger-Zustände aus Fehlerberichten. Die Fehlerberichte speichern die Zustände als separate proto - Dateien innerhalb des proto - Ordner. Führen Sie die folgenden Befehle aus, um die Status-Dumps mit adb zu generieren.

Fenstermanager

adb exec-out dumpsys window --proto > window_dump.pb

SurfaceFlinger

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb

Spuren analysieren

Verwenden Sie zum Analysieren einer Tracedatei die WinScope-Webanwendung. Erstellen Sie die App aus der Quelle oder öffnen Sie sie aus dem vorgefertigten Verzeichnis.

  1. Laden Sie vorgefertigte Artefakte aus dem Android-Quell-Repository herunter:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. Öffnen Sie die heruntergeladenen Artefakte in einem Webbrowser.
  3. Wählen Sie nach dem Öffnen von WinScope OPEN FILE aus , um eine Trace-Datei zu laden.

Verwenden von WinScope

Nach dem Öffnen einer Trace-Datei in WinScope können Sie den Trace auf verschiedene Arten analysieren.

WinScope Screenshot
Abbildung 1. Analyse eines Trace in WinScope
  • Zeitleiste - Zeigt die Abfolge der Ereignisse in der Ablaufverfolgung an. Verwenden Sie die Pfeiltasten oder klicken Sie auf jeden Eintrag, um durch die Zeitleiste zu navigieren.
  • Bildschirm - Bietet eine visuelle Darstellung aller sichtbaren Fenster auf dem Bildschirm. Klicken Sie auf ein Fenster, um das Quellfenster in der Hierarchie auszuwählen.
  • Hierarchie - Repräsentiert jedes dem System bekannte Fenster. Einige Fenster enthalten keine Puffer, sind jedoch vorhanden, um Richtlinien für die untergeordneten Fenster festzulegen. Sichtbare Fenster sind mit dem V Symbol gekennzeichnet.
  • Eigenschaften - Zeigt Statusinformationen für den ausgewählten Eintrag in der Hierarchie an.