Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Seguimiento de transiciones de ventana

WinScope proporciona la infraestructura y las herramientas para registrar y analizar los estados de WindowManager y SurfaceFlinger durante y después de las transiciones de ventana. WinScope registra todos los estados de servicio del sistema pertinentes en un archivo de seguimiento, que puede utilizar para reproducir y recorrer las transiciones.

Captura de rastros

Capture trazas a través de Configuración rápida o adb en dispositivos que ejecutan compilaciones userdebug o eng.

Ajustes rápidos

Para capturar trazas desde Configuración rápida :

  1. Habilite las opciones de desarrollador .
  2. Vaya a Opciones de desarrollador > Mosaicos de desarrollador de configuración rápida .
  3. Habilite WinScope Trace .
  4. Abra Configuración rápida .
  5. Toque Winscope Trace para habilitar el rastreo.
  6. Ejecute transiciones de ventana en el dispositivo.
  7. Una vez que haya terminado, abra Configuración rápida y toque Winscope Trace para deshabilitar el rastreo.

Los /data/misc/wmtrace/wm_trace.pb se escriben en /data/misc/wmtrace/wm_trace.pb y /data/misc/wmtrace/layers_trace.pb . Los rastros también se incluyen en los informes de errores.

adb

Al capturar trazas a través de adb , capture las trazas de WindowManager y SurfaceFlinger por separado.

Rastros de WindowManager

Para capturar seguimientos de WindowManager:

  1. Habilitar seguimiento:
    adb shell cmd window tracing start
  2. Deshabilitar rastreo:
    adb shell cmd window tracing stop
  3. Tome el archivo de seguimiento:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

Opcionalmente, puede cambiar la configuración de registro predeterminada de varias configuraciones para los seguimientos de WindowManager:

  • Establezca la frecuencia de registro (para la transacción o el marco):
    adb shell cmd window tracing [frame | transaction]
  • Configure el nivel detallado para las entradas de registro:
    adb shell cmd window tracing level [all | trim | critical]
  • Establezca el tamaño máximo de búfer (en KB):
    adb shell cmd window tracing size size-value
  • Volcar el estado del búfer, el nivel de registro, la capacidad restante y el número de elementos:
    adb shell cmd window tracing status

Rastros de SurfaceFlinger

Para capturar trazas de SurfaceFlinger:

  1. Habilitar seguimiento:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. Deshabilitar rastreo:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. Tome el archivo de seguimiento:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

Opcionalmente, puede cambiar la configuración de registro predeterminada de varias configuraciones para los seguimientos de SurfaceFlinger:

  • Establezca el tamaño máximo de búfer (en KB):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value
  • Configure el nivel detallado para las entradas de registro:
    adb shell su root service call SurfaceFlinger 1033 i32 flags

Generando volcados de estado

WinScope lee una instantánea de los estados de WindowManager y SurfaceFlinger de los informes de errores. Los informes de errores almacenan los estados como archivos proto separados dentro de la carpeta proto . Para generar los volcados de estado usando adb , ejecute los siguientes comandos.

WindowManager

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

SurfaceFlinger

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

Analizando rastros

Para analizar un archivo de seguimiento, utilice la aplicación web WinScope. Cree la aplicación desde la fuente o ábrala desde el directorio prediseñado.

  1. Descargue los artefactos prediseñados del repositorio de fuentes de Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. Abra los artefactos descargados en un navegador web.
  3. Después de que se abra WinScope, seleccione ABRIR ARCHIVO para cargar un archivo de seguimiento.

Usando WinScope

Después de abrir un archivo de seguimiento en WinScope, puede analizar el seguimiento de varias formas.

Captura de pantalla de WinScope
Figura 1. Analizando una traza en WinScope
  • Línea de tiempo : muestra la secuencia de eventos en el seguimiento. Utilice las teclas de flecha o haga clic en cada entrada para navegar por la línea de tiempo.
  • Pantalla : proporciona una representación visual de cada ventana visible en la pantalla. Haga clic en una ventana para seleccionar la ventana de origen en la jerarquía.
  • Jerarquía : representa cada ventana conocida por el sistema. Algunas ventanas no contienen búfer, pero existen para establecer políticas en los elementos secundarios de la ventana. Las ventanas visibles están marcadas con el icono V
  • Propiedades : muestra información de estado para la entrada seleccionada en la jerarquía.