מריצים את Winscope באופן מקומי או ניגשים אליו משרת אינטרנט.
אתם יכולים להשתמש ב-Winscope כדי ללכוד עקבות לצורך פיתוח וניפוי באגים מקומיים. Winscope משתמש ב-adb, שתומך בחיבור מכשירים באמצעות USB או Wi-Fi.
המסך Collect Traces (איסוף עקבות) מוצג כשמפעילים את Winscope.
חיבור המכשיר
אפשר לחבר מכשירים ב-Winscope באמצעות Winscope Proxy או Web Device Proxy. כברירת מחדל, בדף הבית של Winscope מוצג ממשק המשתמש של הגדרת החיבור Winscope Proxy.
כדי להתחיל ללכוד עקבות, בוחרים באחד ממנגנוני חיבור המכשירים הבאים.
הגדרת שרת proxy ב-Winscope
כדי להגדיר את Winscope Proxy:
בקטע Collect Traces בדף הבית, בוחרים באפשרות Winscope Proxy בתפריט הנפתח Select connection type:
איור 1. לכידת עקבות באמצעות Winscope Proxy.
מריצים את הפקודה הבאה כדי להפעיל את פרוקסי Winscope ADB Connect ולתעד עקבות ישירות מהדפדפן:
python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
שימו לב לטוקן ה-proxy של Winscope שמוצג במסוף אחרי ההפעלה.
אחרי שמפעילים את ה-proxy של Winscope ADB Connect, המסך משתנה באופן הבא. כדי ליצור את החיבור הראשוני ל-proxy, מזינים את אסימון ה-proxy של Winscope משלב 3 ולוחצים על Connect (חיבור).
איור 2. מתחברים ל-Winscope Proxy.
הגדרה של שרת proxy למכשיר אינטרנט
כדי להגדיר פרוקסי למכשיר אינטרנט:
בקטע Collect Traces בדף הבית, בוחרים באפשרות Web Device Proxy בתפריט הנפתח Select connection type:
איור 3. תיעוד עקבות באמצעות Web Device Proxy.
אם אין במחשב שלכם את דמון Web Device Proxy, לוחצים על Install או מפעילים את התוכנה להתקנה.
מאשרים את הגישה של המקור ל-Web Device Proxy דרך תיבת הדו-שיח.
איור 4. נותנים הרשאה למקור.
בפעם הראשונה שמתחברים למכשיר חדש, צריך לאשר את הגישה אליו. אם תיבת הדו-שיח לא מופיעה באופן אוטומטי, לוחצים על הסמל
lock_open
לצד המכשיר:איור 5. נותנים הרשאה למכשיר.
רכיבים מוליכים
כדי לאסוף עקבות:
כשהמכשיר מחובר, כדי להתחיל את תהליך הצילום, בוחרים את היעדים ומגדירים את ההגדרות. לאחר מכן לוחצים על התחלת מעקב כדי להתחיל את הלכידה:
איור 6. איסוף עקבות ב-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:
איור 8. מצב Dump ב-Winscope.
הגדרת צילום מסך
Winscope מאפשר צילום מסך של כמה מסכים. בוחרים תצוגה מהתפריט כדי לצלם מסך. אם לא בוחרים כלום, נאסף צילום מסך של התצוגה הפעילה.