SurfaceFlinger

SurfaceFlinger dökümleri, belirli bir zamanda SurfaceFlinger'ın anlık görüntüsünü sağlar. SurfaceFlinger izleri, bir pencerenin ekranda nasıl göründüğü ve belirli konumlarda hangi pencerenin dokunma yanıtları aldığı hakkında değerli bilgiler sağlayan, kronolojik bir durum dizisine sahiptir. Bu bilgiler, uygulama dokunuşuma yanıt vermiyor veya video izlerken titreme sorunu yaşıyorum gibi sorunları gidermenize yardımcı olur.

Winscope'taki SurfaceFlinger görüntüleyici, hata raporu alırken (varsayılan olarak Droidfood yapılandırması) etkin mod veya işlemler izinden oluşturulan izler için bu bilgileri gösterir.

İz toplama hakkında daha fazla bilgi için SurfaceFlinger (katmanlar) başlıklı makaleyi inceleyin.

SurfaceFlinger iz analizi

Şekil 1. SurfaceFlinger izleme analizi.

Ekranın sol tarafında katmanların 3D görünümü yer alır. Rects görünümü; katman sınırlarını, Z düzenini, opaklığı, göreli Z'yi ve yuvarlatılmış köşeleri dikkate alır.

Hiyerarşi çipleri

Sekmenin orta bölümünde, katmanlar arasındaki üst-alt ilişkileri gibi daha fazla bilgi için çiplere sahip katman hiyerarşisi gösterilir:

  • V: Görünür katmanları tanımlar.
  • RelZParent: RelZ alt öğesi olan katmanları tanımlar.
  • RelZ: RelZParent öğesi olan ve hiyerarşilerine göre z-sırasında çizilen katmanları tanımlar.
  • HWC: Donanım Oluşturucu tarafından oluşturulan katmanları tanımlar.
  • GPU: GPU tarafından oluşturulan katmanları tanımlar.

Ekranın sağ tarafında, seçilmiş özelliklerin listesinin yanı sıra mevcut tüm katman özelliklerinin proto dökümü yer alır. Proto dökümü bölümünün özellikleri hakkında daha fazla bilgi için Özellikler konusuna bakın.

Seçilmiş mülkler

Hata ayıklamayı kolaylaştırmak için SurfaceFlinger görüntüleyici, en çok tercih edilen bilgileri daha düzenli bir biçimde sunarak özelliklerin derlenmiş bir listesini sağlar:

SurfaceFlinger özellikleri

Şekil 2. SurfaceFlinger özellikleri.

Bu liste aşağıdaki kategorileri içerir.

Görünürlük

Bu blokta, katman görünürlüğüyle ilgili bilgiler ve neden görünür olmadığına dair bir açıklama yer alır. Şunları içermektedir:

  • İşaretler: Bunlar görünürlüğü kontrol eder. Örneğin, HIDDEN ve OPAQUE.

  • Görünmezlik nedeni: Katmanın veya yüzeyin ekranda görünmez olmasının nedeni (varsa). Örneğin, katman veya yüzeyin kendisi ya da üst öğesi tarafından gizlenmiş olması veya çizilecek arabellek olmaması.

  • Kapalı, Kısmen Kapalı veya Örtülü:

    • Kapatılmış: Geçerli katman görünür olarak hesaplanır ancak üzerine başka bir opak katman çizildiğinden geçerli katman görünmez hale gelir. Kapanan katmanın üzerindeki katman opak. Yani OPAQUE işareti ayarlanmış veya piksel biçimi alfa içermiyor ya da katmanda alfa ayarlanmamış.
    • Kısmen Kapanmış: Üzerine çizilen opak katman, mevcut katmanı tamamen kapatmadığı için mevcut katman kısmen görünür. Kısmen Kapanmış katmanın üzerindeki katman opak (yani OPAQUE işareti ayarlanmış) veya piksel biçimi alfa içermiyor ya da katmanda alfa ayarlanmamış.
    • Kapalı: Geçerli katman, tamamen veya kısmen opak olmayan bir katmanla kaplıdır ve ekranda görünmeye devam edebilir. Kapalı katmanın üzerindeki katman opak değil. Yani OPAQUE işareti ayarlanmamış veya piksel biçimi alfa içeriyor ya da katmanda alfa ayarlanmış. Ancak SurfaceFlinger izlerinde, SurfaceFlinger'ın altındaki katmanlar için Covered (Kapalı) katmanı görünür olarak gösterilir:

      SurfaceFlinger'daki kaplanmış katman

      Şekil 3. SurfaceFlinger'daki kaplanmış katman.

Geometri ve Efektler

Bu bölümde, geçerli katman için istenen ve hesaplanan geometri ile efektler açıklanmaktadır.

İstenen bölümünde, katmanda ayarlanan özellikler gösterilir. Buna karşılık, Hesaplanmış bölümünde katmana uygulanan özellikler gösterilir. Bu ayrımın nedeni, geometri ve efektlerin hiyerarşide aktarılması ve üst öğelerden devralınmasıdır.

Şekil 2'de katman, köşe yarıçapının 0 piksel olarak ayarlanmasını istiyor. Ancak üst katmanlarından biri Köşe yarıçapını 97,419 piksel olarak ayarlıyor.Bu değer uygulanır.

Arabellek

Aşağıdaki özellikler, katmanda arabellek olup olmadığı, boyutu ve dönüşümü hakkında bilgi gösterir:

  • Kare Numarası: Bir uygulama oluşturulduğunda başlayan artımlı sayı.
  • Hedef Çerçeve: Arabelleği hedef çerçeve tarafından tanımlanan sınırlara göre ölçeklendirmek için kullanılır.

Hiyerarşi

Aşağıdaki özellikler, katman hiyerarşisinin nasıl belirlendiğini açıklar:

  • z-sırası: Katman hiyerarşisinde z-sırası, bir katmanın kardeşlerine göre göreceli konumunu belirler. Z değeri 0 olan bir katman, üst öğesinin üzerinde konumlandırılır. Birden fazla katman aynı Z değerini paylaşıyorsa daha yüksek katman kimliğine sahip katman en üste yerleştirilir.
  • relative parent: Z sırasındaki göreli üst katmanı belirtir. Çocuk, gizli işaret dışında akrabası olan üst öğeden herhangi bir özellik devralmaz.

Giriş

Aşağıdaki özellikler, dokunulabilir bölge ve odak hakkında bilgi içerir:

  • Öğeyle dokunma bölgesini kırp: Dokunulabilir bölgeyi kırpmak için katman sınırlarını kullanın.
  • Dokunma bölgesini kırpma ile değiştir: Mevcut katman kırpmasını dokunulabilir bölge olarak kullanın.