Mit der Einführung von Shell-Übergängen wurde die Methode zum Ausführen von Animationen im System konsolidiert und kodiert, sodass zentralisierte Informationen zu den geplanten Animationen abgerufen werden konnten.
Die Übergangsaufzeichnung enthält Daten zu jedem Übergang, der innerhalb der WindowManager-Shell (WM) auftritt, sowohl vom Systemserver als auch von der Shell aus. Dieser Trace ist in Droidfood dauerhaft aktiviert und wird automatisch in Fehlerberichte eingebettet.
Weitere Informationen zur Trace-Erfassung finden Sie unter Shell-Übergänge.
Im Winscope-Übergangsbereich werden diese Informationen für Übergangs-Traces angezeigt, die sowohl server- als auch clientseitige Informationen enthalten. Der Viewer besteht aus einer Tabellenprotokollansicht mit allgemeinen Informationen zum Übergang links und einer Detailansicht für jeden Übergang rechts:
Abbildung 1: Analyse von Shell-Übergangs-Traces
Tabellenansicht
Die Tabellenansicht enthält:
- Id:Nur zur Fehlerbehebung generierte Übergangs-ID.
- Typ:Übergangstyp, wie in
Transitions.java
definiert - Send Time (Sendezeit): Zeitstempel, zu dem die Umwandlung vom Server zur Shell gesendet wurde, um verarbeitet zu werden.
- Abfertigungszeit:Zeitstempel, zu dem der Übergang an den Handler gesendet wird, um die Wiedergabe zu starten.
- Dauer:Die Zeit, die der Übergang vom Start bis zum Ende der Wiedergabe gedauert hat.
- Status:Wenn der Übergang:
- PLAYED: Wurde abgespielt.
- ABORTED: Vor dem Abspielen abgebrochen. Ein Übergang kann von der Shell- oder WM-Seite abgebrochen werden.
- MERGED: Wird vom Übergangs-Handler mit einem anderen bereits abgespielten Übergang zusammengeführt. Wie das geschieht, wird vom Handler festgelegt.
Detailansicht
Zusätzlich zu den Details in der Tabellenansicht enthält die detaillierte Übergangsansicht im Bereich AUSGEWÄHLTER ÜBERTRAG Folgendes:
handler
: Der Übergangs-Handler, der diese Animation verarbeitet hat.createTimeNs
: Zeitstempel, zu dem die Übertragung auf der WM-Serverseite erstellt wurde.finishTimeNs
: Zeitstempel, zu dem die WM-Serverseite benachrichtigt wird, dass die Umstellung auf der Shell-Seite abgeschlossen ist.endTransactionId
: Die letzte SurfaceFlinger-Transaktion, die in dieser Umwandlung enthalten ist.startTransactionId
: Erste SurfaceFlinger-Transaktion, die in dieser Umwandlung enthalten ist.targets
: Liste der Teilnehmer an der Umstellung.type
: Übergangstyp, wie inTransitions.java
definiert
Ziele
Ziele sind die Elemente, die an der Umstellung beteiligt sind (normalerweise Aktivitäten oder Aufgaben). Für jedes Ziel werden folgende Daten erfasst:
layerId
: Die animierte Ebene (aus der SurfaceFlinger-Hierarchie).mode
: Art der Animation, die auf dieser Ebene ausgeführt wird.windowId
: Das animierte Fenster (aus der WindowManager-Hierarchie).flags
: Neue Flags, die auf die Ebene angewendet werden.