Kabuk geçişleri

Kabuk geçişlerinin kullanıma sunulması, sistemdeki animasyonları çalıştırma yöntemini birleştirip kodlayarak yürütülmeye 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.

İz 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üleyicide solda üst düzey geçiş bilgilerini gösteren bir tablo günlük görünümü, sağda 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.
  • Type: 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şlanması için işleyiciye gönderildiği zaman damgası.
  • Süre: Geçişin oynatılmaya başlanmasından tamamlanmasına kadar geçen süre.
  • 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 durumu nasıl ele alacağına karar verir).

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

Tablo görünümündeki ayrıntıların yanı sıra 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ışmasının tamamlandığı bildirildiğinde oluşan zaman damgası.
  • endTransactionId: Bu geçişe son SurfaceFlinger işlemi dahildir.
  • startTransactionId: Bu geçişe ilk SurfaceFlinger işlemi dahildir.
  • 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.