Wprowadzenie przejść w powłoce konsolidowało i unormowywało metodę uruchamiania animacji w systemie, umożliwiając centralne pobieranie informacji o animacjach przeznaczonych do wykonania.
Ślad przejścia zawiera dane o każdym przejściu, które występuje w powłoce WindowManager (WM), zarówno po stronie serwera systemu, jak i powłoki. To śledzenie jest stale włączone w Droidfood i automatycznie umieszczane w raportach o błędach.
Więcej informacji o zbieraniu śladów znajdziesz w artykule Przejścia w powłoce.
W przeglądarce przejść Winscope te informacje są wyświetlane w przypadku ścieżek przejść zawierających zarówno informacje po stronie serwera, jak i po stronie klienta. Widok składa się z tabeli z dziennikiem zawierającej po lewej stronie ogólne informacje o przechodzeniu oraz po prawej stronie szczegółowy widok każdego przejścia:
Rysunek 1. Analiza śladu przejścia w oprogramowaniu Shell
Widok tabeli
Widok tabeli zawiera:
- Id: identyfikator przejścia wygenerowany tylko do debugowania.
- Type: typ przejścia zdefiniowany w
Transitions.java
. - Czas wysyłania: sygnatura czasowa przejścia wysłanego z serwera do powłoki do przetworzenia.
- Czas wysłania: sygnatura czasowa, kiedy przejście zostało wysłane do modułu obsługi, aby rozpocząć odtwarzanie.
- Czas trwania:czas przejścia od rozpoczęcia do zakończenia gry.
- Stan: jeśli przejście było:
- PLAYED: grane.
- ABORTED (Przerwanie): przerwanie przed odtworzeniem. Przejście można przerwać po stronie powłoki lub WM.
- SKRÓCONY: został połączony przez moduł obsługi przejścia z jakiś innym, już odtwarzanym przejściem (moduł decyduje, jak to zrobić).
Widok szczegółowy
Oprócz szczegółów w tabeli widok szczegółowy przejścia w sekcji WYBRANE PRZEJŚCIE zawiera:
handler
: moduł obsługi przejść, który obsługiwał tę animację.createTimeNs
: sygnatura czasowa przejścia utworzonego po stronie serwera WM.finishTimeNs
: sygnatura czasowa, w której WM po stronie serwera otrzymuje powiadomienie o zakończeniu przełączania po stronie powłoki.endTransactionId
: transakcja SurfaceFlinger uwzględniona w tym przejściu.startTransactionId
: początkowa transakcja SurfaceFlinger uwzględniona w tym przejściu.targets
: lista uczestników przejścia.type
: typ przejścia zdefiniowany wTransitions.java
Cele
Docelowe to elementy uczestniczące w przechodzeniu (zwykle czynności lub zadania). W przypadku każdego celu rejestrujemy:
layerId
: animowana warstwa (z hierarchii SurfaceFlinger).mode
: typ animacji wykonywanej na tej warstwie.windowId
: okno, które jest animowane (z hierarchii WindowManager).flags
: nowy zestaw flag zastosowany do warstwy.