כיצד ללכוד באופן מקומי מעקב מערכת ב-Android Pie

systrace הוא כלי רב עוצמה שאוסף מידע תזמון מתהליכים הפועלים באנדרואיד. הנה איך ללכוד מעקב מערכת ב-Android Pie.

מעקב הוא כלי שלא יסולא בפז המאפשר למפתחים להבין את ההשפעה שיש לשינויים שונים על מערכת ויכול לספק רמזים לזיהוי שורש הבעיות.

סיסטרס הוא כלי מעקב חזק כזה שאוסף מידע תזמון מתהליכים פועל במכשיר אנדרואיד. סיסטרס היה בשימוש נרחב על ידי ה צוות ביצועי אנדרואיד ב-Google כדי לייעל את הביצועים בטלפונים של Google Pixel. השתמשתי סיסטרס לבחון את ההשפעה של שינויי מתזמן הליבה על מיקומי משימות במעבדים, למשל, ולזהות גורמים אפשריים ל-janks. סיסטרס יכול ללכוד מגוון רחב של נתונים, כולל תזמון מעבד, תדירות מעבד, קלט/פלט של דיסק, גרפיקה, פעילות בינדר ועוד הרבה יותר. המידע משולב לדוח שניתן לנתח בגוגל כרום.

לפני Android Pie, הדרך היחידה ללכוד עקבות עם סיסטרס היה לחבר מכשיר אנדרואיד למחשב ולהפעיל את Systrace משם - בדרך כלל ממסוף. עם זאת, לא לכולם יש גישה מתמדת למחשב, או את הידע והביטחון להפעיל את Systrace.

עם שחרורו של Android Pie, אי הנוחות הזו טופלה עם הצגת ה- חבילת Traceur, שהיא כלי הלוכד נתוני עקבות גולמיים

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

האפשרות החדשה "מעקב אחר מערכת" מאפשרת למשתמשים ללכוד ולשתף עקבות בקלות עם מפתחים, ללא צורך לדעת כיצד לפעול סיסטרס במחשב. מפתחים נהנים מהיכולת ללכוד עקבות ללא מחשב ולנתח מאוחר יותר כשנוח להם. נתוני המעקב הגולמיים המלאים שנאספו על ידי "מעקב מערכת" הם גם קטנים בגודלם באופן משמעותי מדוח ה-HTML שנוצר על ידי סיסטרס, מה שהופך את נתוני העקבות הגולמיים למתאימים יותר לאחסון ושיתוף עם אחרים.

מדריך: איסוף מערכת וניתוח עקבות מערכת

ראשית, ודא שיש לך מכשיר עם Android Pie ומחשב עם Python 2 מותקן. ההוראות הבאות בוצעו ב-OnePlus 6 המריץ את הבטא העדכנית ביותר של OxygenOS Android Pie.

  1. הפעל את אפשרויות המפתח באפליקציית ההגדרות ולאחר מכן גש לאפשרות "מעקב אחר מערכת". בקטע "ניפוי באגים" של אפשרויות מפתחים.
  2. עם פתיחת System Tracing, יוצג בפניך מתג כדי לאפשר את System Tracing, ואת היכולת להתאים אישית את קטגוריות המעקב וגודל המאגר של העקבות. עבור הדגמה זו, נעשה שימוש בקטגוריות ברירת המחדל, וזה מספיק ברוב המקרים. הלחצן "הצג אריח הגדרות מהירות" מאפשר להתחיל/להפסיק מעקב באמצעות הגדרות מהירות. אפשרתי זאת עבור המדריך הזה.
  3. כדי להתחיל ללכוד מעקב, הקש על אריח ההגדרות המהירות "הקלט מעקב" שנוספה לאחרונה.
  4. כשתסיים להתחקות אחר מקרה בדיקה, תוכל להפסיק את המעקב מצללית ההתראות.
  5. גדול! תפסת בהצלחה עקבות גולמית. הודעה תבקש ממך לשתף את קובץ המעקב הגולמי. אתה אמור להיות מסוגל לשמור אותו במכשיר שלך, להעלות אותו לאחסון מקוון, לשלוח אותו באימייל למישהו וכו'. לחלופין, אתה יכול להשתמש ב-ADB כדי למשוך ישירות את המעקב מהמכשיר שלך למחשב שלך (adb pull /data/local/traces/). קדימה, שמור את קובץ המעקב במחשב שלך.
  6. לקובץ העקבות הגולמי יש את המרכיב פורמט .ctrace. לא ניתן לפרש אותו בצורתו הגולמית. אנחנו יכולים להשתמש סיסטרס כדי ליצור דוח HTML אינטראקטיבי שימושי ומובן יותר מקובץ המעקב הגולמי שלנו.
  7. אנו נשתמש בגרסה העדכנית ביותר של סיסטרס מ ה ריפו של פרויקט מעוט. ביישום טרמינל, שכפל את ה-repo (ודא ש-git מותקן):
    git clone https://github.com/catapult-project/catapult.git
  8. כדי להפיק את דוח ה-HTML מקובץ המעקב הגולמי שלנו באמצעות סיסטרס, הזן את הפקודות הבאות:
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    יווצר קובץ HTML באותו שם כמו קובץ המעקב הגולמי. הערה: systrace תומכת רק ב- Python 2 בזמן הכתיבה.
  9. כדי להציג את דוח ה-HTML, הפעל את דפדפן Google Chrome ועבור לכתובת האתר "chrome://tracing". אל תפתח את דוח ה-HTML ישירות ב-Google Chrome כי הוא יופיע ריק.
  10. לחץ על "טען" ופתח את קובץ דוח ה-HTML מתוך הדו-שיח המוקפץ. וואלה! דוח המעקב שלך זמין כעת לבדיקה.

מה הלאה?

כעת, כשאתה מסוגל לתפוס עקבות וליצור א סיסטרס דוח, חשוב להבין כיצד לקרוא ולפרש את הנתונים המוצגים בדוח. בתור התחלה, אני ממליץ לקרוא "הֲבָנָה סיסטרס", וצופה ב"ביצועי אנדרואיד: סקירה כללית (Google I/O '17)" ו"סיסטרס עבור משחקים" לראות סיסטרס בִּפְעוּלָה.

זהו פוסט אורח שנכתב במקור על ידי ג'וש צ'ו, הידוע גם כ-XDA Recognized Developer יהושע. הפוסט עבר עריכה קלה לצורך עיצוב.