תיעוד עקבות באמצעות Winscope

מריצים את Winscope באופן מקומי או ניגשים אליו משרת אינטרנט.

אתם יכולים להשתמש ב-Winscope כדי ללכוד עקבות לצורך פיתוח וניפוי באגים מקומיים. ‫Winscope משתמש ב-adb, שתומך בחיבור מכשירים באמצעות USB או Wi-Fi.

המסך Collect Traces (איסוף עקבות) מוצג כשמפעילים את Winscope.

חיבור המכשיר

אפשר לחבר מכשירים ב-Winscope באמצעות Winscope Proxy או Web Device Proxy. כברירת מחדל, בדף הבית של Winscope מוצג ממשק המשתמש של הגדרת החיבור Winscope Proxy.

כדי להתחיל ללכוד עקבות, בוחרים באחד ממנגנוני חיבור המכשירים הבאים.

הגדרת שרת proxy ב-Winscope

כדי להגדיר את Winscope Proxy:

  1. בקטע Collect Traces בדף הבית, בוחרים באפשרות Winscope Proxy בתפריט הנפתח Select connection type:

    תיעוד עקבות באמצעות Winscope Proxy

    איור 1. לכידת עקבות באמצעות Winscope Proxy.

  2. מריצים את הפקודה הבאה כדי להפעיל את פרוקסי Winscope ADB Connect ולתעד עקבות ישירות מהדפדפן:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. שימו לב לטוקן ה-proxy של Winscope שמוצג במסוף אחרי ההפעלה.

  4. אחרי שמפעילים את ה-proxy של Winscope ADB Connect, המסך משתנה באופן הבא. כדי ליצור את החיבור הראשוני ל-proxy, מזינים את אסימון ה-proxy של Winscope משלב 3 ולוחצים על Connect (חיבור).

    התחברות ל-Winscope Proxy

    איור 2. מתחברים ל-Winscope Proxy.

הגדרה של שרת proxy למכשיר אינטרנט

כדי להגדיר פרוקסי למכשיר אינטרנט:

  1. בקטע Collect Traces בדף הבית, בוחרים באפשרות Web Device Proxy בתפריט הנפתח Select connection type:

    תיעוד נתוני מעקב באמצעות Web Device Proxy

    איור 3. תיעוד עקבות באמצעות Web Device Proxy.

  2. אם אין במחשב שלכם את דמון Web Device Proxy, לוחצים על Install או מפעילים את התוכנה להתקנה.

  3. מאשרים את הגישה של המקור ל-Web Device Proxy דרך תיבת הדו-שיח.

    אישור גישה של מקור ל-WDP

    איור 4. נותנים הרשאה למקור.

  4. בפעם הראשונה שמתחברים למכשיר חדש, צריך לאשר את הגישה אליו. אם תיבת הדו-שיח לא מופיעה באופן אוטומטי, לוחצים על הסמל lock_open לצד המכשיר:

    wdp_unauth_device

    איור 5. נותנים הרשאה למכשיר.

רכיבים מוליכים

כדי לאסוף עקבות:

  1. כשהמכשיר מחובר, כדי להתחיל את תהליך הצילום, בוחרים את היעדים ומגדירים את ההגדרות. לאחר מכן לוחצים על התחלת מעקב כדי להתחיל את הלכידה:

    איסוף עקבות ב-Winscope

    איור 6. איסוף עקבות ב-Winscope.

  2. כדי להפסיק את הצילום, לוחצים על סיום המעקב:

    סיום המעקב ב-Winscope

    איור 7. מפסיקים את המעקב ב-Winscope.

אפשרויות איתור

בקטע הזה מתוארות האפשרויות לכל סוג של מעקב.

הקלטת מסך

באמצעות Winscope, אפשר להקליט את המסך של כמה תצוגות. בוחרים תצוגה מהתפריט כדי להקליט את המסך. אם לא תבחרו אפשרות, Winscope יקליט את התצוגה הפעילה כברירת מחדל.

SurfaceFlinger

  • גודל המאגר: כאן משנים את הגודל של מאגר הנתונים הזמני בזיכרון עבור מעקב SurfaceFlinger. מאגר נתונים זמני גדול יותר מאפשר איסוף של יותר נתונים, אבל מגדיל את השימוש בזיכרון.

  • קלט: אם הממשק מכיל נתוני קלט, המערכת עוקבת אחרי הפרטים של חלון הקלט.

  • הרכב: מעקב אחר סוג ההרכב והאזור הגלוי.

  • מטא-נתונים: עקבות של מטא-נתונים נוספים של הפלטפורמה, כולל שכבות מחוץ למסך.

  • HWC: עקבות של מטא-נתונים נוספים של Hardware Composer לא מובנים.

  • מאגרי עקבות: הגדרה של SurfaceFlinger למעקב אחרי כל השינויים במאגרים בשטח. כברירת מחדל, SurfaceFlinger עוקב אחרי מצב חדש רק כשהגיאומטריה משתנה.

  • תצוגות וירטואליות: כולל שכבות של תצוגה וירטואלית בנתוני המעקב.

WindowManager

  • גודל מאגר הנתונים הזמני: כאן משנים את הגודל של מאגר הנתונים הזמני בזיכרון עבור מעקב אחר WindowManager. מאגר נתונים זמני גדול יותר מאפשר איסוף של יותר נתונים, אבל מגדיל את השימוש בזיכרון.
  • סוג המעקב: מגדיר את אפשרויות התדירות לאיסוף מצבים:

    • frame: במצב הזה, WindowManager מבצע dump של מצב יחיד לכל פריים, כדי לוודא שרק מצבים תקפים של WindowManager נלכדים. למצב הזה יש את תקורת הביצועים הנמוכה ביותר.
    • transaction: במצב הזה מתועד מצב של WindowManager בכל פעם שמבוצעת עסקה. אפשר לבצע כמה טרנזקציות בפריים, וכך לנפות באגים במצבי WindowManager ביניים במהלך פריים. עם זאת, במצב הזה יש תקורה גבוהה יותר של ביצועים בהשוואה למצב המסגרת.
  • רמת המעקב: קובעת את רמת הפירוט של המעקבים של WindowManager:

    • verbose: כולל את כל החלונות ופרטי ההגדרה של כל חלון. במצב הזה יש את התקורה הכי גבוהה של זיכרון וביצועים.
    • debug: כולל מידע על כל החלונות, אבל מתעד רק את הגדרות החלון אם הוא מכיל הגדרות חלופיות שנדרשו.
    • קריטי: כולל את אותו מידע כמו במצב ניפוי באגים, אבל כולל רק חלונות גלויים. במצב הזה יש את התקורה הכי קטנה של זיכרון וביצועים.

Dumps

כדי לבצע dump של מצב באמצעות Winscope, בקטע Collect Traces בדף הבית, בוחרים בכרטיסייה Dump ואז לוחצים על Dump state:

מצב Dump ב-Winscope

איור 8. מצב Dump ב-Winscope.

הגדרת צילום מסך

‫Winscope מאפשר צילום מסך של כמה מסכים. בוחרים תצוגה מהתפריט כדי לצלם מסך. אם לא בוחרים כלום, נאסף צילום מסך של התצוגה הפעילה.