Przejścia w muszli

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:

Analiza śladu przejścia w programie Shell

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 w Transitions.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.