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, tüm ilgili sistem hizmeti durumlarını, geçişleri yeniden oynatmak ve adım adım ilerlemek için kullanabileceğiniz bir izleme dosyasına kaydeder.

İzleri yakalamak

Userdebug veya eng builds çalıştıran cihazlarda Hızlı Ayarlar veya adb aracılığıyla izleri yakalayın.

Hızlı Ayarlar

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

  1. Geliştirici seçeneklerini etkinleştirin .
  2. Geliştirici seçenekleri > Hızlı ayarlar geliştirici döşemelerine gidin .
  3. WinScope Trace'i etkinleştirin.
  4. Hızlı Ayarlar'ı açın.
  5. İzlemeyi etkinleştirmek için Winscope Trace'e dokunun.
  6. Cihazda pencere geçişlerini çalıştırın.
  7. Bitirdikten sonra, Hızlı Ayarlar'ı açın ve izlemeyi devre dışı bırakmak için Winscope Trace'e 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 aracılığıyla 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ın:
    adb shell cmd window tracing stop
  3. İzleme dosyasını alın:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

WindowManager izleri için çeşitli ayarların varsayılan günlük yapılandırmasını isteğe bağlı olarak 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 (KB cinsinden) ayarlayın:
    adb shell cmd window tracing size size-value
  • Arabellek durumunu, günlük düzeyini, 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ın:
    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

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

  • Maksimum arabellek boyutunu (KB cinsinden) ayarlayın:
    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ümleri 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ünün içinde ayrı proto dosyaları olarak depolar. adb kullanarak durum dökümleri oluşturmak için aşağıdaki komutları çalıştırın.

WindowManager

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

SurfaceFlinger

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. Uygulamayı derleyin, kaynaktan veya önceden oluşturulmuş dizinden açın.

  1. Android kaynak deposundan önceden oluşturulmuş yapıları 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 OPEN FILE öğesini seçin.

WinScope Kullanımı

WinScope'ta bir izleme dosyasını açtıktan sonra, izi birkaç şekilde 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 girişi tıklayın.
  • Ekran - Ekrandaki her görünür 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 öğeleri üzerinde politikalar belirlemek için vardır. Görünür pencereler V simgesiyle işaretlenmiştir.
  • Özellikler - Hiyerarşide seçilen giriş için durum bilgilerini gösterir.