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

מעקב אחר מעברי חלון

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

לכידת עקבות

צלם עקבות דרך הגדרות מהירות או adb במכשירים שמפעילים usebug או eng builds.

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

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

  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 , הפעל את הפקודות הבאות.

חלון מנהל

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

SurfaceFlinger

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

ניתוח עקבות

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

  1. הורד חפצים שנבנו מראש מראש ממאגר המקורות אנדרואיד:
    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
  • מאפיינים - מציג פרטי מצב עבור הרשומה שנבחרה בהיררכיה.