Kabuk geçişleri

Kabuk geçişlerinin kullanıma sunulması, sistemdeki animasyonları çalıştırma yöntemini birleştirip kodlayarak yürütülmek üzere planlanan animasyonlarla ilgili merkezi bilgilerin alınmasına olanak tanıdı.

Geçiş izi, hem sistem sunucusundan hem de kabuktan WindowManager (WM) kabuğundaki her geçişle ilgili verileri içerir. Droidfood bu izlemeyi kalıcı olarak etkinleştirir ve hata raporlarına otomatik olarak yerleştirir.

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

Winscope'un Transitions görüntüleyicisi, hem sunucu hem de istemci tarafı bilgilerini içeren geçiş izlemeleri için bu bilgileri gösterir. Görüntüleyicinin sol tarafında, üst düzey geçiş bilgilerini gösteren bir tablo günlük görünümü, sağ tarafında ise her geçiş için ayrıntılı bir görünüm bulunur:

Kabuk geçişi izleme analizi

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

Tablo görünümü

Tablo görünümünde şunlar yer alır:

  • Id: Yalnızca hata ayıklama için oluşturulan geçiş kimliği.
  • Tür: Transitions.java içinde 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, oynatmaya başlama anından tamamlanma anına kadar geçen süresi.
  • Durum: Geçiş:
    • PLAYED:: Oynandı.
    • ABORTED: Oynanmadan önce iptal edildi. Geçiş, kabuk veya WM tarafından iptal edilebilir.
    • BİRLEŞTİRİLDİ: Geçiş işleyici tarafından, zaten oynatılmakta olan başka bir geçişle birleştirildi (işleyici, bu durumun nasıl ele alınacağı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ünde şunlar yer alır:

  • handler: Bu animasyonu işleyen geçiş işleyicisi.
  • createTimeNs: Geçişin WM sunucu tarafında oluşturulduğu zaman damgası.
  • finishTimeNs: WM sunucu tarafına, geçişin kabuk tarafında çalışmayı tamamladığı bildirildiğinde oluşan zaman damgası.
  • endTransactionId: Bu geçişe son SurfaceFlinger işlemi dahildir.
  • startTransactionId: Bu geçişe dahil edilen ilk SurfaceFlinger işlemi.
  • targets: Geçiş katılımcılarının listesi.
  • type: Transitions.java içinde tanımlandığı şekilde geçiş türü.

Hedefler

Hedefler, geçişe dahil olan öğelerdir. Genellikle etkinlikler veya görevlerdir. Her hedef için aşağıdaki bilgiler kaydedilir:

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