Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Tracciare le transizioni della finestra

WinScope fornisce l'infrastruttura e gli strumenti per registrare e analizzare gli stati di WindowManager e SurfaceFlinger durante e dopo le transizioni delle finestre. WinScope registra tutti gli stati del servizio di sistema pertinenti in un file di traccia, che è possibile utilizzare per riprodurre e scorrere le transizioni.

Catturare tracce

Acquisisci tracce tramite Impostazioni rapide o adb su dispositivi che eseguono build userdebug o eng.

Impostazioni rapide

Per acquisire tracce da Impostazioni rapide :

  1. Abilita le opzioni sviluppatore .
  2. Vai a Opzioni sviluppatore > Riquadri sviluppatore Impostazioni rapide .
  3. Abilita WinScope Trace .
  4. Apri Impostazioni rapide .
  5. Tocca Traccia Winscope per abilitare la traccia.
  6. Esegui le transizioni della finestra sul dispositivo.
  7. Al termine, apri Impostazioni rapide e tocca Traccia Winscope per disabilitare la traccia.

Le tracce vengono scritte in /data/misc/wmtrace/wm_trace.pb e /data/misc/wmtrace/layers_trace.pb . Le tracce sono incluse anche nelle segnalazioni di bug.

adb

Quando si acquisiscono tracce tramite adb , acquisire separatamente le tracce WindowManager e SurfaceFlinger.

Tracce di WindowManager

Per acquisire le tracce di WindowManager:

  1. Abilita traccia:
    adb shell cmd window tracing start
  2. Disabilita traccia:
    adb shell cmd window tracing stop
  3. Prendi il file di traccia:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

Facoltativamente, è possibile modificare la configurazione del registro predefinita di varie impostazioni per le tracce di WindowManager:

  • Imposta la frequenza di log (per la transazione o il frame):
    adb shell cmd window tracing [frame | transaction]
  • Configurare il livello dettagliato per le voci di registro:
    adb shell cmd window tracing level [all | trim | critical]
  • Imposta la dimensione massima del buffer (in KB):
    adb shell cmd window tracing size size-value
  • Scarica lo stato del buffer, il livello di registrazione, la capacità rimanente e il numero di elementi:
    adb shell cmd window tracing status

Tracce di SurfaceFlinger

Per acquisire le tracce di SurfaceFlinger:

  1. Abilita traccia:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. Disabilita traccia:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. Prendi il file di traccia:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

Facoltativamente, puoi modificare la configurazione del registro predefinita di varie impostazioni per le tracce SurfaceFlinger:

  • Imposta la dimensione massima del buffer (in KB):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value
  • Configurare il livello dettagliato per le voci di registro:
    adb shell su root service call SurfaceFlinger 1033 i32 flags

Generazione di dump di stato

WinScope legge un'istantanea degli stati di WindowManager e SurfaceFlinger dalle segnalazioni di bug. Le segnalazioni di bug memorizzano gli stati come file proto separati all'interno della cartella proto . Per generare i dump di stato utilizzando adb , eseguire i seguenti comandi.

WindowManager

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

SurfaceFlinger

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

Analisi delle tracce

Per analizzare un file di traccia, utilizzare l'app Web WinScope. Compilare l'app può dalla sorgente o aprirla dalla directory precostruita.

  1. Scarica gli artefatti predefiniti dal repository dei sorgenti di Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. Apri gli elementi scaricati in un browser web.
  3. Dopo l'apertura di WinScope, selezionare APRI FILE per caricare un file di traccia.

Utilizzando WinScope

Dopo aver aperto un file di traccia in WinScope, è possibile analizzare la traccia in diversi modi.

Screenshot di WinScope
Figura 1. Analisi di una traccia in WinScope
  • Timeline : mostra la sequenza di eventi nella traccia. Utilizza i tasti freccia o fai clic su ciascuna voce per spostarti nella sequenza temporale.
  • Schermo : fornisce una rappresentazione visiva di ogni finestra visibile sullo schermo. Fare clic su una finestra per selezionare la finestra di origine nella gerarchia.
  • Gerarchia : rappresenta ogni finestra nota al sistema. Alcune finestre non contengono buffer, ma esistono per impostare i criteri sui figli della finestra. Le finestre visibili sono contrassegnate dall'icona V
  • Proprietà : mostra le informazioni sullo stato per la voce selezionata nella gerarchia.