Kabuk geçişleri

Kabuk geçişlerinin kullanıma sunulması, sistemde animasyon çalıştırma yöntemini birleştirip kodlandırdı ve yürütülmesi planlanan animasyonlarla ilgili merkezi bilgilere erişilmesine olanak tanıdı.

Geçiş izleme, WindowManager (WM) kabuğunda gerçekleşen her geçişle ilgili verileri içerir. Bu veriler hem sistem sunucusundan hem de kabuk taraflarından gelir. Bu izleme, Droidfood'da kalıcı olarak etkinleştirilir ve hata raporlarına otomatik olarak yerleştirilir.

İz toplama hakkında daha fazla bilgi için Kabuk geçişleri başlıklı makaleyi inceleyin.

Winscope'un Geçişler görüntüleyicisi, hem sunucu hem de istemci tarafı bilgileri içeren geçiş izlemeleri için bu bilgileri gösterir. Görüntüleyici, solda geçişle ilgili üst düzey bilgileri içeren bir tablo günlük görünümünden ve sağda her geçiş için ayrıntılı bir görünümden oluşur:

Kabuk geçişi izleme analizi

Şekil 1. Kabuk geçişi izleme analizi.

Tablo görünümü

Tablo görünümü şunları içerir:

  • Id: Yalnızca hata ayıklama için oluşturulan geçiş kimliği.
  • Tür: Transitions.java bölümünde tanımlandığı şekliyle geçiş türü
  • Gönderme Zamanı: Geçişin, işlenmek üzere sunucudan kabuğa gönderildiği zaman damgası.
  • Gönderme Zamanı: Geçişin oynatılmaya başlaması için işleyiciye gönderildiği zaman damgası.
  • Süre: Geçişin, oynamaya başlamadan bitene kadar geçen süresi.
  • Durum: Geçiş:
    • PLAYED:: Oynandı.
    • ABORTED: Oynamadan önce iptal edildi. Geçiş, kabuk veya WM tarafından iptal edilebilir.
    • BİRLEŞTİRİLDİ: Geçiş işleyici tarafından, oynatılmakta olan başka bir geçişle birleştirildi (işleyici bu işlemi nasıl yapacağına karar verir).

Ayrıntılı görünüm

Tablo görünümündeki ayrıntılara ek olarak, SEÇİLEN GEÇİŞ bölümündeki ayrıntılı geçiş görünümü şunları içerir:

  • handler: Bu animasyonu yöneten geçiş işleyicisi.
  • createTimeNs: Geçişin WM sunucu tarafında oluşturulduğu zaman damgası.
  • finishTimeNs: Geçiş işleminin kabuk tarafında tamamlandığına dair WM sunucu tarafının bilgilendirildiği zaman damgası.
  • endTransactionId: Bu geçişe dahil edilen nihai SurfaceFlinger işlemi.
  • startTransactionId: Bu geçişe dahil edilen ilk SurfaceFlinger işlemi.
  • targets: Geçiş katılımcılarının listesi.
  • type: Transitions.java bölümünde tanımlandığı şekilde geçiş türü

Hedefler

Hedefler, geçişle ilgili öğelerdir (normalde etkinlikler veya görevler). Her hedef için şu bilgileri kaydederiz:

  • layerId: Animasyonlu katman (SurfaceFlinger hiyerarşisinde).
  • mode: Bu katmanda gerçekleştirilen animasyon türü.
  • windowId: Animasyonlu pencere (WindowManager hiyerarşisinde).
  • flags: Katmana yeni bir işaret grubu uygulanıyor.