Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Pencere Geçişlerini İzleme

WinScope, pencere geçişleri sırasında ve sonrasında WindowManager ve SurfaceFlinger durumlarını kaydetmek ve analiz etmek için altyapı ve araçlar sağlar. WinScope, ilgili tüm sistem hizmeti durumlarını, geçişleri yeniden yürütmek ve geçiş yapmak için kullanabileceğiniz bir izleme dosyasına kaydeder.

İzleri yakalama

Hızlı Ayarlar veya içinden Yakalama izleri adb userdebug veya eng oluşturur çalıştıran cihazlarda.

Hızlı Ayarlar

Hızlı Ayarlar'dan izler yakalamak için:

  1. Geliştirici seçeneklerini etkinleştirin .
  2. Geliştirici seçenekleri > Hızlı ayarlar geliştirici döşemeleri'ne gidin .
  3. WinScope Trace'ı etkinleştir.
  4. Hızlı Ayarlar'ı açın.
  5. İzlemeyi etkinleştirmek için Winscope Trace öğesine dokunun.
  6. Cihazda pencere geçişlerini çalıştırın.
  7. İşiniz bittiğinde, Hızlı Ayarları açın ve izlemeyi devre dışı bırakmak için Winscope Trace öğesine dokunun.

İzler /data/misc/wmtrace/wm_trace.pb ve /data/misc/wmtrace/layers_trace.pb . İzler ayrıca hata raporlarına dahil edilir.

adb

adb yoluyla izleri yakalarken, WindowManager ve SurfaceFlinger izlerini ayrı ayrı yakalayın.

WindowManager izleri

WindowManager izlerini yakalamak için:

  1. İzlemeyi etkinleştir:
    adb shell cmd window tracing start
  2. İzlemeyi devre dışı bırak:
    adb shell cmd window tracing stop
  3. İzleme dosyasını alın:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

İsteğe bağlı olarak, WindowManager izleri için çeşitli ayarların varsayılan günlük yapılandırmasını değiştirebilirsiniz:

  • Günlük sıklığını ayarlayın (işlem veya çerçeve için):
    adb shell cmd window tracing [ frame  |  transaction ]
  • Günlük girişleri için ayrıntılı düzeyi yapılandırın:
    adb shell cmd window tracing level [ all  |  trim  |  critical ]
  • Maksimum arabellek boyutunu ayarlayın (KB cinsinden):
    adb shell cmd window tracing size size-value 
  • Arabellek durumunu, günlük seviyesini, kalan kapasiteyi ve öğe sayısını boşaltın:
    adb shell cmd window tracing status

SurfaceFlinger izleri

SurfaceFlinger izlerini yakalamak için:

  1. İzlemeyi etkinleştir:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. İzlemeyi devre dışı bırak:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. İzleme dosyasını alın:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

İsteğe bağlı olarak SurfaceFlinger izleri için çeşitli ayarların varsayılan günlük yapılandırmasını değiştirebilirsiniz:

  • Maksimum arabellek boyutunu ayarlayın (KB cinsinden):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value 
  • Günlük girişleri için ayrıntılı düzeyi yapılandırın:
    adb shell su root service call SurfaceFlinger 1033 i32 flags 

Durum dökümü oluşturma

WinScope hata raporlarından WindowManager ve SurfaceFlinger durumlarının anlık görüntüsünü okur. Hata raporları, durumları proto klasörü içinde ayrı proto dosyaları olarak saklar. adb kullanarak durum dökümlerini oluşturmak için aşağıdaki komutları çalıştırın.

WindowManager

adb exec-out dumpsys window --proto > window_dump.pb

SurfaceFlinger'a

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb

İzleri analiz etme

Bir izleme dosyasını analiz etmek için WinScope web uygulamasını kullanın. Uygulama kutusunu kaynaktan oluşturun veya önceden oluşturulmuş dizinden açın.

  1. Android kaynak deposundan önceden oluşturulmuş eserleri indirin:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. İndirilen eserleri bir web tarayıcısında açın.
  3. WinScope açıldıktan sonra, bir izleme dosyası yüklemek için AÇIK DOSYAYI seçin.

WinScope'u kullanma

WinScope'ta bir izleme dosyasını açtıktan sonra, izini çeşitli yollarla analiz edebilirsiniz.

WinScope Ekran Görüntüsü
Şekil 1. WinScope'ta bir izi analiz etme
  • Zaman Çizelgesi - İzdeki olayların sırasını gösterir. Zaman çizelgesinde gezinmek için ok tuşlarını kullanın veya her bir girişi tıklatın.
  • Ekran - Ekranda görünen her pencerenin görsel bir temsilini sağlar. Hiyerarşide kaynak pencereyi seçmek için bir pencereye tıklayın.
  • Hiyerarşi - Sistem tarafından bilinen her pencereyi temsil eder. Bazı pencereler arabellek içermez, ancak pencerenin alt öğeleriyle ilgili ilkeleri ayarlamak için vardır. Görünür pencereler V simgesiyle işaretlenmiştir.
  • Özellikler - Hiyerarşide seçilen girişin durum bilgilerini gösterir.