תיעוד מעקב מערכת בשורת הפקודה

הפקודה systrace מפעילה את הכלי Systrace, שמאפשר לאסוף ולבדוק פרטי תזמון בכל התהליכים שפועלת במכשיר ברמת המערכת.

במסמך הזה מוסבר איך ליצור דוחות Systrace משורת הפקודה. במכשירים שמותקנת בהם גרסת Android 9 (רמת API 28) ואילך, אפשר גם ליצור דוחות Systrace באמצעות מערכת Tracing במערכת app.

כדי להריץ את systrace, צריך לבצע את השלבים הבאים:

  1. מורידים ומתקינים את הגרסה העדכנית ביותר של Android SDK ב-Android Studio כלים.
  2. מתקינים Python ומוסיפים אותו משתנה הסביבה PATH של תחנת העבודה.
  3. הוספת android-sdk/platform-tools/ אל משתנה הסביבה PATH. ספרייה זו מכילה את Android קובץ בינארי של ניפוי באגים (adb), שנקרא על ידי התוכנה systrace.
  4. לחבר מכשיר שפועלת בו מערכת Android בגרסה 4.3 (רמת API 18) ומעלה מערכת פיתוח באמצעות ניפוי באגים ב-USB החיבור.

הפקודה systrace מסופקת בחבילת הכלים של Android SDK נמצא ב-android-sdk/platform-tools/systrace/.

תחביר

כדי להפיק את דוח ה-HTML לאפליקציה, צריך להריץ את הפקודה systrace מתוך בשורת הפקודה באמצעות התחביר הבא:

python systrace.py [options] [categories]

לדוגמה, הפקודה הבאה מפעילה את הפקודה systrace כדי להקליט את הפעילות במכשיר וניצור דוח HTML בשם mynewtrace.html. רשימת הקטגוריות הזו רשימת ברירת מחדל סבירה עבור רוב המכשירים.

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

טיפ: רוצים לראות את השמות של המשימות? פלט המעקב, חובה לכלול את הקטגוריה sched את הפרמטרים של הפקודות.

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

$ python systrace.py --list-categories

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

אפשרויות כלליות

אפשרויות כלליות תיאור
-h | --help הצגת הודעת העזרה.
-l | --list-categories רשימה של קטגוריות המעקב שזמינות למכשיר המחובר.

אפשרויות של פקודות ופקודות

פקודות ואפשרויות תיאור
-o file כותבים את דוח מעקב ה-HTML ל-file שצוין. אם המיקום אם לא ציינת את האפשרות הזו, systrace שומר את הדוח שלך באותו אופן כ-systrace.py ונותן לה את השם trace.html.
-t N | --time=N מעקב אחר הפעילות במכשיר במשך N שניות. אם לא מציינים באפשרות הזו, systrace מציג בקשה לסיום המעקב על ידי לחיצה על מזינים את המפתח משורת הפקודה.
-b N | --buf-size=N צריך להשתמש במאגר נתונים זמני למעקב של NKB. בעזרת האפשרות הזו אפשר להגביל את הגודל הכולל של הנתונים שנאספים במהלך מעקב.
-k functions
| --ktrace=functions
לעקוב אחרי הפעילות של פונקציות ליבה ספציפיות, שצוינו רשימה מופרדת בפסיקים.
-a app-name
| --app=app-name
הפעלת מעקב עבור אפליקציות, המצוינת כרשימה מופרדת בפסיקים של שמות תהליכים. האפליקציות חייבות לכלול הפעלות של אינסטרומנטציית מעקב מ- כיתה אחת (Trace). עליכם לציין את האפשרות הזו בכל פעם ליצור פרופיל לאפליקציה שלכם — ספריות רבות, RecyclerView, כולל נתוני מעקב קריאות להפעלת אינסטרומנטציה שמספקות מידע שימושי כשמפעילים את ההגדרה ולעקוב אחרי הביצועים ברמת האפליקציה. מידע נוסף זמין במאמר הגדרה של אירועים מותאמים אישית.

כדי לעקוב אחר כל האפליקציות במכשיר שמותקנת בו גרסת Android 9 (API ברמה 28) ואילך, מעבירים את התו הכללי לחיפוש "*", כולל המירכאות סימנים.

--from-file=file-path ליצור דוח HTML אינטראקטיבי מקובץ, כמו קובצי TXT שכוללים נתוני מעקב גולמיים, במקום להפעיל מעקב פעיל.
-e device-serial
| --serial=device-serial
לנהל את המעקב במכשיר מחובר ספציפי, שמזוהה לפי המספר הסידורי של המכשיר.
categories לכלול פרטי מעקב לתהליכי המערכת שתציינו, כמו בתור gfx לתהליכי מערכת שבהם מתבצע רינדור גרפיקה. שלך יכול להריץ את systrace עם הפקודה -l כדי לראות רשימה של שירותים הזמינים למכשיר המחובר.