Shell-Übergänge

Durch die Einführung von Shell-Übergängen wurde die Methode zum Ausführen von Animationen im System konsolidiert und kodifiziert. So können zentralisierte Informationen zu den Animationen abgerufen werden, die ausgeführt werden sollen.

Der Übergangstrace enthält Daten zu jedem Übergang in der WindowManager-Shell (WM-Shell) sowohl vom Systemserver als auch von der Shell. Droidfood aktiviert diesen Trace dauerhaft und bettet ihn automatisch in Fehlerberichte ein.

Weitere Informationen zum Erfassen von Traces finden Sie unter Shell-Übergänge.

Im Transitions-Viewer von Winscope werden diese Informationen für Übergangstraces angezeigt, die sowohl Server- als auch Client-seitige Informationen enthalten. Der Viewer enthält links eine Tabellenansicht des Logs mit allgemeinen Informationen zu den Übergängen und rechts eine detaillierte Ansicht für jeden Übergang:

Analyse von Shell-Übergängen

Abbildung 1: Analyse von Shell-Übergängen

Tabellenansicht

Die Tabellenansicht enthält:

  • Id:Übergangs-ID, die nur für das Debugging generiert wird.
  • Typ:Übergangstyp, wie in Transitions.java definiert.
  • Sendezeit:Zeitstempel für den Zeitpunkt, zu dem der Übergang vom Server an die Shell gesendet wurde, damit er verarbeitet werden kann.
  • Dispatch Time (Versandzeit): Zeitstempel für den Zeitpunkt, zu dem der Übergang an den Handler gesendet wird, um die Wiedergabe zu starten.
  • Dauer:Die Zeit, die für die Übergangsanimation vom Start bis zum Ende benötigt wurde.
  • Status:Wenn die Umstellung:
    • GESPIELT: Gespielt.
    • ABORTED: Vor der Wiedergabe abgebrochen. Ein Übergang kann über die Shell oder den Fenstermanager abgebrochen werden.
    • MERGED: Vom Übergangs-Handler in einen anderen bereits laufenden Übergang zusammengeführt. Der Handler entscheidet, wie dies gehandhabt wird.

Detailansicht

Zusätzlich zu den Details in der Tabellenansicht enthält die detaillierte Übergangsansicht im Bereich AUSGEWÄHLTER ÜBERGANG Folgendes:

  • handler: Der Übergangs-Handler, der diese Animation verarbeitet hat.
  • createTimeNs: Zeitstempel, der angibt, wann der Übergang auf dem WM-Server erstellt wurde.
  • finishTimeNs: Zeitstempel, der angibt, wann der WM-Server darüber informiert wird, dass die Übergangsanimation auf der Shell-Seite abgeschlossen ist.
  • endTransactionId: Letzte SurfaceFlinger-Transaktion, die in diesen Übergang einbezogen wird.
  • startTransactionId: Die erste SurfaceFlinger-Transaktion, die in diesem Übergang enthalten ist.
  • targets: Liste der Übergangsteilnehmer.
  • type: Übergangstyp, wie in Transitions.java definiert.

Ziele

Ziele sind die Elemente, die an der Übergangsphase beteiligt sind, in der Regel Aktivitäten oder Aufgaben. Für jedes Ziel werden die folgenden Informationen erfasst:

  • layerId: Die Ebene, die animiert wird (aus der SurfaceFlinger-Hierarchie).
  • mode: Art der Animation, die auf dieser Ebene ausgeführt wird.
  • windowId: Das Fenster, das animiert wird (aus der WindowManager-Hierarchie).
  • flags: Neue Gruppe von Flags, die auf die Ebene angewendet werden.