Los volcados de SurfaceFlinger proporcionan una instantánea de SurfaceFlinger en un momento específico. Los seguimientos de SurfaceFlinger incluyen una secuencia cronológica de estados que proporcionan estadísticas valiosas sobre cómo aparece una ventana en la pantalla y determinan qué ventana recibe respuestas táctiles en ubicaciones específicas. Esta información es esencial para solucionar problemas, como la app no responde a mi toque o experimenté parpadeos mientras miraba un video.
El visor de SurfaceFlinger de Winscope muestra esta información para los seguimientos recopilados con el modo activo o generados a partir del seguimiento de transacciones cuando se toma un informe de errores (de forma predeterminada, la configuración de Droidfood), así como para los volcados.
Consulta SurfaceFlinger (capas) para obtener más información sobre la recopilación de seguimientos.
Figura 1: Análisis de seguimiento de SurfaceFlinger.
El lado izquierdo de la pantalla muestra una vista en 3D de las capas. La vista de rectángulos considera los límites de la capa, el orden en Z, la opacidad, la Z relativa y las esquinas redondeadas.
Chips de jerarquía
El segmento central de la pestaña muestra la jerarquía de capas con chips para obtener más información, como las relaciones de superior y secundario entre capas, de la siguiente manera:
- V: Identifica las capas visibles.
- RelZParent: Identifica capas con un elemento secundario RelZ.
- RelZ: Identifica las capas con un RelZParent y se dibujan en orden z como su jerarquía.
- HWC: Identifica las capas compuestas por Hardware Composer.
- GPU: Identifica las capas compuestas por la GPU.
El lado derecho de la pantalla muestra una lista de propiedades seleccionadas, así como un volcado de proto de todas las propiedades de capa disponibles. Para obtener más información sobre las funciones de la sección de volcado de proto, consulta Propiedades.
Propiedades seleccionadas
Para facilitar la depuración, el visor de SurfaceFlinger proporciona una lista seleccionada de propiedades que presenta la información más utilizada en un formato más organizado:
Figura 2: Propiedades de SurfaceFlinger.
Esta lista incluye las siguientes categorías.
Visibilidad
Este bloque contiene información sobre la visibilidad de la capa y una explicación de por qué no es visible. Incluye lo siguiente:
Marcas: Controlan la visibilidad, por ejemplo, HIDDEN
y OPAQUE
.
Motivo de invisibilidad: Es una explicación de por qué la capa o la superficie es invisible en la pantalla, si corresponde, por ejemplo, si está oculta por sí misma o por su elemento superior, o si no tiene un búfer para dibujar.
Ocluso, Ocluso parcialmente o Cubierto:
- Ocluida: La capa actual se calcula como visible, pero se dibuja otra capa opaca sobre ella, lo que hace que la capa actual sea invisible. La capa sobre la capa Occluded es opaca, es decir, se establece su marca
OPAQUE
, o bien el formato de píxeles no contiene alfa o no se establece alfa en la capa. - Ocluida parcialmente: La capa actual es parcialmente visible, ya que la capa opaca que se dibuja sobre ella no la cubre por completo. La capa sobre la capa Partially Occluded es opaca, es decir, se estableció la marca
OPAQUE
, o bien el formato de píxeles no contiene alfa o no se estableció alfa en la capa. Cubierta: La capa actual está cubierta, ya sea de forma parcial o total, por una capa no opaca y puede seguir siendo visible en la pantalla. La capa sobre la capa Covered no es opaca, es decir, no se estableció la marca
OPAQUE
o el formato de píxeles contiene alfa o alfa se estableció en la capa. Sin embargo, para los seguimientos de SurfaceFlinger, una capa cubierta se muestra como visible para las capas debajo de SurfaceFlinger:Figura 3: Capa cubierta en SurfaceFlinger.
Geometría y efectos
En esta sección, se describen la geometría y los efectos solicitados y calculados para la capa actual.
En la sección Requested, se muestran las propiedades que se establecen en la capa. En cambio, la sección Calculated muestra las propiedades que se aplican a la capa. Esta distinción se debe a que la geometría y los efectos se transmiten a la jerarquía y se heredan de los elementos superiores.
En la Figura 2, la capa solicita que el Radio de esquina se establezca en 0 px. Sin embargo, una de sus capas superiores establece el Radio de esquina en 97.419 px, que es el valor aplicado:
Búfer
Las siguientes propiedades muestran información sobre si la capa tiene un búfer, su tamaño y su transformación.
- Número de fotogramas: Es un número incremental que comienza cuando se crea una app.
- Marco de destino: Se usa para escalar el búfer a los límites definidos por el marco de destino.
Jerarquía
Las siguientes propiedades describen cómo se determina la jerarquía de capas:
- Orden en Z: En la jerarquía de capas, el orden en Z determina la posición relativa de una capa en relación con sus hermanas. Una capa con un valor de Z de 0 se coloca sobre su elemento superior. Si varias capas comparten el mismo valor z, la capa con el ID de capa más alto se coloca en la parte superior.
- elemento superior relativo: Indica la capa superior relativa en el orden en Z. El elemento secundario no hereda ninguna propiedad de su elemento superior relativo, excepto la marca oculta.
Entrada
Las siguientes propiedades contienen información sobre la región táctil y el enfoque:
- Recortar región táctil con el elemento: Usa los límites de la capa para recortar la región táctil.
- Reemplaza la región táctil por el recorte: Usa el recorte de las capas actuales como su región táctil.