SurfaceFlinger dökümleri, belirli bir zamandaki SurfaceFlinger'ın anlık görüntüsünü sağlar. SurfaceFlinger izlemeleri, bir pencerenin ekranda nasıl göründüğüne dair değerli bilgiler sağlayan ve belirli konumlarda hangi pencerenin dokunma yanıtları aldığını belirleyen kronolojik bir durum dizisine sahiptir. Bu bilgiler, uygulama dokunuşuma yanıt vermiyor veya video izlerken titreme sorunu yaşadım gibi sorunların giderilmesi için gereklidir.
Winscope'un SurfaceFlinger görüntüleyicisi, hata raporu alınırken (varsayılan olarak Droidfood yapılandırması) etkin mod kullanılarak toplanan veya işlemler izinden oluşturulan izler için bu bilgileri gösterir. Ayrıca, dökümler için de bu bilgileri gösterir.
İz toplama hakkında daha fazla bilgi için SurfaceFlinger (katmanlar) başlıklı makaleyi inceleyin.
1. şekil. 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 içeren 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, özelliklerin derlenmiş bir listesini sunar ve en sık kullanılan bilgileri daha düzenli bir biçimde gösterir:
Şekil 2. SurfaceFlinger özellikleri.
Bu liste aşağıdaki kategorileri içerir.
Görünürlük
Bu blokta, katman görünürlüğü ile 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ın veya üst öğesinin kendisi tarafından gizlenmiş olması ya da ç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. Occluded katmanının üzerindeki katman opak (saydam olmayan) olduğunda, yani
OPAQUE
işareti ayarlandığında veya piksel biçimi alfa içermediğinde ya da katmanda alfa ayarlanmadığında bu hata oluşur. - 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, opak olmayan bir katman tarafından tamamen veya kısmen kaplanmıştı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:3.Şekil 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ıyor:
Arabellek
Aşağıdaki özellikler, katmanda arabellek olup olmadığı, boyutu ve dönüşümü hakkında bilgi gösterir.
- Kare Numarası: 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ğerine sahipse 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: Dokunulabilir bölge olarak mevcut katman kırpmasını kullanır.