Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

מעקב אחר מעברי חלונות

WinScope מספקת תשתית וכלים להקלטה וניתוח של מצבי WindowManager ו- SurfaceFlinger במהלך ואחרי מעברי חלונות. WinScope מתעד את כל מצבי שירותי המערכת הרלוונטיים לקובץ מעקב, שבו אתה יכול להשתמש כדי להפעיל מחדש את המעברים.

לכידת עקבות

צלם עקבות באמצעות הגדרות מהירות או adb במכשירים שמריצים usebebug או eng build.

הגדרות מהירות

כדי לתפוס עקבות מהגדרות מהירות :

  1. אפשר אפשרויות מפתח .
  2. עבור אל אפשרויות מפתח > אריחי מפתח להגדרות מהירות .
  3. אפשר מעקב אחר WinScope .
  4. פתח הגדרות מהירות .
  5. הקש על Winscope Trace כדי לאפשר מעקב.
  6. הפעל מעברי חלונות במכשיר.
  7. לאחר שתסיים, פתח את הגדרות מהירות והקש על Winscope Trace כדי להשבית את העקיבה.

עקבות נכתבים אל /data/misc/wmtrace/wm_trace.pb ו- /data/misc/wmtrace/layers_trace.pb . עקבות כלולים גם בדוחות באגים.

adb

בעת לכידת עקבות דרך adb , צלם עקבות של WindowManager ו- SurfaceFlinger בנפרד.

עקבות WindowManager

כדי ללכוד עקבות של WindowManager:

  1. אפשר מעקב:
    adb shell cmd window tracing start
  2. השבת מעקב:
    adb shell cmd window tracing stop
  3. קח את קובץ המעקב:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

באפשרותך לשנות את תצורת יומן ברירת המחדל של הגדרות שונות עבור עקבות WindowManager:

  • הגדר את תדר היומן (לעסקה או למסגרת):
    adb shell cmd window tracing [frame | transaction]
  • הגדר את הרמה המילולית עבור רשומות יומן:
    adb shell cmd window tracing level [all | trim | critical]
  • הגדר את גודל המאגר המקסימלי (ב- KB):
    adb shell cmd window tracing size size-value
  • זרוק את מצב החיץ, רמת יומן, קיבולת שנותרה ומספר האלמנטים:
    adb shell cmd window tracing status

עקבות SurfaceFlinger

כדי ללכוד עקבות של SurfaceFlinger:

  1. אפשר מעקב:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. השבת מעקב:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. קח את קובץ העקבות:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

באפשרותך לשנות את תצורת היומן ברירת המחדל של הגדרות שונות עבור עקבות SurfaceFlinger:

  • הגדר את גודל החיץ המקסימלי (ב- KB):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value
  • הגדר את רמת הפירוש עבור רשומות יומן:
    adb shell su root service call SurfaceFlinger 1033 i32 flags

יצירת השלכות מדינה

WinScope קורא תמונת מצב של מצבי WindowManager ו- SurfaceFlinger מדוחות באגים. דוחות הבאגים מאחסנים את המדינות כקבצי פרוטו נפרדים בתוך תיקיית proto . כדי ליצור dumps של המדינה באמצעות adb , הפעל את הפקודות הבאות.

WindowManager

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

SurfaceFlinger

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

ניתוח עקבות

כדי לנתח קובץ מעקב, השתמש ביישום האינטרנט WinScope. בנה את האפליקציה יכולה מהמקור או פתח אותה מהספרייה שהוקמה מראש.

  1. הורד חפצים שנבנו מראש ממאגר המקורות של Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. פתח את החפצים שהורדת בדפדפן אינטרנט.
  3. לאחר פתיחת WinScope, בחר OPEN FILE לטעינת קובץ מעקב.

שימוש ב- WinScope

לאחר פתיחת קובץ מעקב ב- WinScope, ניתן לנתח את המעקב בכמה דרכים.

צילום מסך WinScope
איור 1. ניתוח עקבות ב- WinScope
  • ציר זמן - מראה את רצף האירועים במסלול. השתמש במקשי החצים או לחץ על כל ערך כדי לנווט בציר הזמן.
  • מסך - מספק ייצוג חזותי של כל חלון גלוי על המסך. לחץ על חלון כדי לבחור את חלון המקור בהיררכיה.
  • היררכיה - מייצגת כל חלון המוכר למערכת. חלונות מסוימים אינם מכילים מאגרים, אך קיימים כדי לקבוע מדיניות עבור ילדי החלון. חלונות גלויים מסומנים בסמל V
  • מאפיינים - מציג מידע מצב עבור הערך שנבחר בהיררכיה.