Pengenalan transisi shell menggabungkan dan mengodifikasi metode menjalankan animasi dalam sistem, sehingga memungkinkan pengambilan informasi terpusat mengenai animasi yang dijadwalkan untuk dieksekusi.
Rekaman aktivitas transisi mencakup data tentang setiap transisi dalam shell WindowManager (WM), dari server sistem dan shell. Droidfood mengaktifkan rekaman aktivitas ini secara permanen dan menyematkannya 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 sisi klien. Penampil mencakup tampilan log tabel di sebelah kiri, yang menampilkan informasi transisi tingkat tinggi, dan tampilan mendetail di sebelah kanan untuk setiap transisi:
Gambar 1. Analisis rekaman aktivitas transisi shell.
Tampilan tabel
Tampilan tabel berisi:
- Id: ID transisi yang dibuat hanya untuk proses debug.
- Type: Jenis transisi, seperti yang ditentukan dalam
Transitions.java
. - Waktu Pengiriman: Stempel waktu transisi dikirim dari server ke shell untuk ditangani.
- Waktu Pengiriman: Stempel waktu saat transisi dikirim ke handler untuk mulai diputar.
- Durasi: Waktu yang diperlukan transisi dari mulai diputar hingga selesai.
- Status: Jika transisi:
- DIMAINAKAN:: Dimainkan.
- ABORTED: Dibatalkan sebelum diputar. Transisi dapat dibatalkan dari sisi shell atau WM.
- DIGABUNGKAN: Digabungkan oleh pengendali transisi ke transisi lain yang sudah diputar (pengendali memutuskan cara menangani hal ini).
Tampilan mendetail
Selain detail pada tampilan tabel, tampilan transisi mendetail di bagian SELECTED TRANSITION berisi:
handler
: Handler transisi yang menangani animasi ini.createTimeNs
: Stempel waktu saat 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, sebagaimana ditentukan dalamTransitions.java
.
Target
Target adalah elemen yang terlibat dalam transisi, biasanya aktivitas atau tugas. Untuk setiap target, informasi berikut dicatat:
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.