Введение переходов между оболочками упорядочило и кодифицировало метод запуска анимаций в системе, позволив получать централизованную информацию о запланированных к выполнению анимациях.
Трассировка переходов включает данные о каждом переходе внутри оболочки WindowManager (WM), как с системного сервера, так и из самой оболочки. Droidfood постоянно включает эту трассировку и автоматически встраивает ее в отчеты об ошибках.
Для получения дополнительной информации о сборе трассировки см. раздел «Переходы оболочки» .
Средство просмотра переходов Winscope отображает эту информацию для трассировок переходов, содержащих как серверную, так и клиентскую информацию. Слева средство просмотра включает табличное представление журнала, показывающее общую информацию о переходах, а справа — подробное представление для каждого перехода:

Рисунок 1. Анализ траектории перехода между оболочками.
Табличный вид
В табличном представлении содержится:
- Идентификатор: Идентификатор перехода, сгенерированный только для отладки.
- Тип: Тип перехода, как определено в
Transitions.java. - Время отправки: Отметка времени, когда переход был отправлен с сервера в оболочку для обработки.
- Время отправки: Отметка времени, когда переход отправляется обработчику для начала воспроизведения.
- Продолжительность: время, прошедшее с момента начала игры до её завершения.
- Статус: Если переход был следующим:
- Сыграно: : Сыграно.
- ПРЕРВАНО : Прервано до начала воспроизведения. Переход может быть прерван как со стороны оболочки, так и со стороны оконного менеджера.
- ОБЪЕДИНЕНО : Обработчик перехода объединяет переход с другим уже воспроизводимым переходом (обработчик решает, как это обработать).
Детальный вид
Помимо подробной информации в табличном представлении, подробное представление переходов в разделе «Выбранный переход» содержит:
-
handler: Обработчик перехода, который обработал эту анимацию. -
createTimeNs: Отметка времени создания перехода на стороне сервера оконного менеджера. -
finishTimeNs: Временная метка, когда сервер оконного менеджера получает уведомление о завершении выполнения перехода на стороне оболочки. -
endTransactionId: Заключительная транзакция SurfaceFlinger, включенная в этот переход. -
startTransactionId: Начальная транзакция SurfaceFlinger, включенная в этот переход. -
targets: Список участников переходного процесса. -
type: Тип перехода, как определено вTransitions.java.
Цели
Цели — это элементы, участвующие в переходе, как правило, действия или задачи. Для каждой цели регистрируется следующая информация:
-
layerId: Слой, который анимируется (из иерархии SurfaceFlinger). -
mode: Тип анимации, выполняемой на этом слое. -
windowId: Окно, которое анимируется (из иерархии WindowManager). -
flags: К слою применяется новый набор флагов.