Transisi shell

Pengenalan transisi shell menggabungkan dan menyusun metode menjalankan animasi dalam sistem, sehingga memungkinkan pengambilan informasi terpusat terkait animasi yang dijadwalkan untuk dieksekusi.

Rekaman aktivitas transisi menyertakan data tentang setiap transisi yang terjadi dalam shell WindowManager (WM), yang berasal dari sisi server sistem dan shell. Rekaman aktivitas ini diaktifkan secara permanen di Droidfood dan disematkan secara otomatis dalam laporan bug.

Untuk mengetahui informasi selengkapnya tentang pengumpulan rekaman aktivitas, lihat Transisi shell.

Penampil Transisi Winscope menampilkan informasi ini untuk rekaman aktivitas transisi yang berisi informasi sisi server dan klien. Pelihat terdiri dari tampilan log tabel yang berisi informasi tingkat tinggi tentang transisi di sebelah kiri dan tampilan mendetail untuk setiap transisi di sebelah kanan:

Analisis rekaman aktivitas transisi shell

Gambar 1. Analisis rekaman aktivitas transisi shell.

Tampilan tabel

Tampilan tabel berisi:

  • Id: ID transisi yang hanya dibuat untuk proses debug.
  • Type: Jenis transisi, seperti yang ditentukan dalam Transitions.java
  • Send Time: Stempel waktu saat transisi dikirim dari server ke shell untuk ditangani.
  • Waktu Pengiriman: Stempel waktu saat transisi dikirim ke pengendali untuk mulai diputar.
  • Durasi: Waktu yang diperlukan transisi dari mulai diputar hingga selesai.
  • Status: Jika transisi adalah:
    • PLAYED:: Dimainkan.
    • ABORTED: Dibatalkan sebelum diputar. Transisi dapat dihentikan dari sisi shell atau WM.
    • DIGABUNG: Digabung oleh pengendali transisi ke beberapa transisi lain yang sudah diputar (pengendali menentukan cara menangani hal ini).

Tampilan mendetail

Selain detail pada tampilan tabel, tampilan transisi mendetail di bagian SELECTED TRANSITION berisi:

  • handler: Pengendali transisi yang menangani animasi ini.
  • createTimeNs: Stempel waktu transisi dibuat di sisi server WM.
  • finishTimeNs: Stempel waktu saat sisi server WM diberi tahu bahwa transisi telah selesai berjalan di sisi shell.
  • endTransactionId: Transaksi SurfaceFlinger akhir yang disertakan dalam transisi ini.
  • startTransactionId: Transaksi SurfaceFlinger awal yang disertakan dalam transisi ini.
  • targets: Daftar peserta transisi.
  • type: Jenis transisi, seperti yang ditentukan dalam Transitions.java

Target

Target adalah elemen yang terlibat dalam transisi (biasanya aktivitas atau tugas). Untuk setiap target, kita mencatat:

  • layerId: Lapisan yang sedang dianimasikan (dari hierarki SurfaceFlinger).
  • mode: Jenis animasi yang dilakukan pada lapisan ini.
  • windowId: Jendela yang sedang dianimasikan (dari hierarki WindowManager).
  • flags: Kumpulan flag baru yang diterapkan ke lapisan.