Дампы SurfaceFlinger представляют собой моментальный снимок SurfaceFlinger на определённый момент времени. Трассировки SurfaceFlinger представляют собой хронологическую последовательность состояний, которая даёт ценную информацию о том, как окно выглядит на экране, и определяет, какое окно получает сенсорные отклики в определённых местах. Эта информация поможет вам устранить неполадки, например, если приложение не реагирует на касания или при просмотре видео возникло мерцание .
В Winscope средство просмотра SurfaceFlinger отображает эту информацию для трассировок, собранных вами либо в активном режиме, либо сгенерированных из трассировки транзакций при создании отчета об ошибке (по умолчанию конфигурация Droidfood), а также для дампов.
Дополнительную информацию о сборе трассировок см. в разделе SurfaceFlinger (слои) .

Рисунок 1. Анализ следов SurfaceFlinger.
В левой части экрана отображается трёхмерное изображение слоёв. В прямоугольном представлении учитываются границы слоёв, Z-порядок, непрозрачность, относительная Z-координата и скруглённые углы.
Иерархические чипы
В центральном сегменте вкладки показана иерархия слоев с микросхемами для получения дополнительной информации, например, о родительско-дочерних отношениях между слоями, как показано ниже:
- V : Определяет видимые слои.
- RelZParent : идентифицирует слои с дочерним элементом RelZ .
- RelZ : идентифицирует слои с RelZParent и отображает их в z-порядке в качестве их иерархии.
- HWC : определяет слои, созданные с помощью Hardware Composer.
- GPU : определяет слои, состоящие из графического процессора.
В правой части экрана отображается список подобранных свойств , а также прото-дамп всех доступных свойств слоя. Подробнее о функциях прото-дампа см. в разделе « Свойства ».
Курируемые объекты недвижимости
Для упрощения отладки средство просмотра SurfaceFlinger предоставляет тщательно подобранный список свойств, представляющий наиболее часто используемую информацию в более организованном формате:

Рисунок 2. Свойства SurfaceFlinger.
В этот список входят следующие категории.
Видимость
Этот блок содержит информацию о видимости слоя и объяснение причин его невидимости. Он включает в себя:
Флаги: управляют видимостью, например,
HIDDENиOPAQUE.Причина невидимости: Объяснение того, почему слой или поверхность невидимы на экране, если применимо, например, скрыты самими собой или своим родительским элементом или не имеют буфера для отрисовки.
Закрыто , частично закрыто или покрыто:
- Закрытый: текущий слой считается видимым, но поверх него отображается другой непрозрачный слой, делающий текущий слой невидимым. Слой, находящийся над закрытым , непрозрачен, то есть либо у него установлен флаг
OPAQUE, либо формат пикселей не содержит альфа-канала, либо альфа-канал для слоя не задан. - Частично перекрытый: текущий слой частично виден, так как непрозрачный слой, нарисованный поверх него, не перекрывает его полностью. Слой, расположенный над частично перекрытым слоем, непрозрачен, то есть установлен флаг
OPAQUE, либо формат пикселей не содержит альфа-канала или альфа-канал для слоя не задан. Покрытый: текущий слой полностью или частично перекрыт непрозрачным слоем и может быть видим на экране. Слой, расположенный над слоем, не является непрозрачным, то есть для него не установлен флаг
OPAQUEили формат пикселей содержит альфа-канал или альфа-канал для слоя установлен. Однако для трассировок SurfaceFlinger слой, расположенный под слоем, отображается как видимый. Для слоёв, расположенных ниже SurfaceFlinger:
Рисунок 3. Покрытый слой на SurfaceFlinger.
- Закрытый: текущий слой считается видимым, но поверх него отображается другой непрозрачный слой, делающий текущий слой невидимым. Слой, находящийся над закрытым , непрозрачен, то есть либо у него установлен флаг
Геометрия и эффекты
В этом разделе описывается запрошенная и вычисленная геометрия и эффекты для текущего слоя.
В разделе «Запрошенные» отображаются свойства, устанавливаемые для слоя. В разделе «Вычисляемые» отображаются свойства, применяемые к слою. Это различие обусловлено тем, что геометрия и эффекты передаются вниз по иерархии и наследуются от родительских элементов.
На рисунке 2 слой запрашивает значение радиуса скругления 0 пикселей. Однако один из его родительских слоёв устанавливает радиус скругления 97,419 пикселей, что и соответствует применённому значению.
Буфер
Следующие свойства отображают информацию о наличии у слоя буфера, его размере и преобразовании:
- Номер кадра: порядковый номер, начиная с момента создания приложения.
- Кадр назначения: используется для масштабирования буфера до границ, определенных кадром назначения.
Иерархия
Следующие свойства описывают, как определяется иерархия слоев:
- Z-порядок: В иерархии слоёв z-порядок определяет относительное расположение слоя по отношению к родственным слоям. Слой с z-значением, равным 0, располагается выше родительского слоя. Если несколько слоёв имеют одинаковое z-значение, слой с более высоким идентификатором размещается выше.
- Относительный родитель: указывает относительный родительский слой в Z-порядке. Дочерний элемент не наследует никаких свойств от своего относительного родителя, за исключением флага «скрыто».
Вход
Следующие свойства содержат информацию о сенсорной области и фокусе:
- Обрезать область касания с помощью элемента: использовать границы слоя для обрезки области касания.
- Заменить область касания обрезкой: использовать обрезку текущего слоя в качестве области касания.