Wprowadzenie przejść powłoki ujednoliciło i skodyfikowało metodę uruchamiania animacji w systemie, umożliwiając pobieranie scentralizowanych informacji o animacjach przeznaczonych do wykonania.
Ślad przejścia zawiera dane o każdym przejściu w powłoce WindowManager (WM), zarówno z serwera systemowego, jak i z powłoki. Droidfood trwale włącza ten ślad i automatycznie umieszcza go w raportach o błędach.
Więcej informacji o zbieraniu śladów znajdziesz w artykule Przejścia powłoki.
Przeglądarka przejść Winscope wyświetla te informacje w przypadku śladów przejść, które zawierają informacje po stronie serwera i po stronie klienta. Przeglądarka zawiera widok dziennika tabeli po lewej stronie, który wyświetla ogólne informacje o przejściach, oraz widok szczegółowy po prawej stronie dla każdego przejścia:
Rysunek 1. Analiza śladu przejścia powłoki.
Widok tabeli
Widok tabeli zawiera:
- Id: identyfikator przejścia generowany tylko na potrzeby debugowania.
- Type: typ przejścia zdefiniowany w
Transitions.java
. - Czas wysłania: sygnatura czasowa wysłania przejścia z serwera do powłoki w celu obsługi.
- Czas wysłania: sygnatura czasowa wysłania przejścia do modułu obsługi w celu rozpoczęcia odtwarzania.
- Czas trwania: czas, jaki upłynął od rozpoczęcia do zakończenia przejścia.
- Stan: jeśli przejście było:
- ZAGRANO:: zagrano.
- ABORTED: przerwano przed odtworzeniem. Przejście można przerwać po stronie powłoki lub menedżera okien.
- MERGED: scalone przez moduł obsługi przejścia z innym odtwarzanym już przejściem (moduł obsługi decyduje, jak to zrobić).
Widok szczegółowy
Oprócz szczegółów w widoku tabeli szczegółowy widok przejścia w sekcji WYBRANE PRZEJŚCIE zawiera:
handler
: moduł obsługi przejść, który obsłużył tę animację.createTimeNs
: sygnatura czasowa utworzenia przejścia po stronie serwera WM.finishTimeNs
: sygnatura czasowa powiadomienia serwera WM o zakończeniu przejścia po stronie powłoki.endTransactionId
: ostateczna transakcja SurfaceFlinger uwzględniona w tej zmianie.startTransactionId
: początkowa transakcja SurfaceFlinger uwzględniona w tej zmianie.targets
: Lista uczestników przejścia.type
: typ przejścia zdefiniowany wTransitions.java
.
Cele
Cele to elementy związane z przejściem, zwykle działania lub zadania. W przypadku każdego miejsca docelowego rejestrowane są te informacje:
layerId
: warstwa, która jest animowana (z hierarchii SurfaceFlingera).mode
: typ animacji wykonanej na tej warstwie.windowId
: okno, które jest animowane (z hierarchii WindowManager).flags
: do warstwy zastosowano nowy zestaw flag.