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

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

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

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

חיבור המכשיר

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

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

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

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

  1. בקטע Collect Traces (איסוף נתוני מעקב) בדף הבית, בוחרים באפשרות Winscope Proxy (פרוקסי של Winscope) בתפריט 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. שימו לב לטוקן הפרוקסי של Winscope שמוצג במסוף אחרי ההפעלה.

  4. אחרי שמפעילים את פרוקסי החיבור של Winscope ADB, המסך משתנה באופן הבא. כדי ליצור את החיבור הראשוני ל-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 או מפעילים את installer.

  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 ביניים במהלך פריים. עם זאת, במצב הזה יש תקורה גבוהה יותר של ביצועים בהשוואה למצב המסגרת.
  • Tracing level: קובע את רמת הפירוט של ה-traces של WindowManager:

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

קובצי dump

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

מצב Dump ב-Winscope

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

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

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