מעברים של מעטפת

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

המעקב אחר המעבר כולל נתונים על כל מעבר בתוך מעטפת WindowManager‏ (WM), גם משרת המערכת וגם מהמעטפת. ‫Droidfood מפעיל את העקבות האלה באופן קבוע ומשבץ אותם אוטומטית בדוחות על באגים.

מידע נוסף על איסוף נתוני מעקב זמין במאמר מעברים בין מעטפות.

בכלי Transitions viewer של Winscope מוצג המידע הזה לגבי מעקב אחר מעברים שמכיל מידע גם בצד השרת וגם בצד הלקוח. הצופה כולל תצוגת יומן טבלה בצד ימין, שבה מוצג מידע כללי על המעבר, ותצוגה מפורטת בצד שמאל של כל מעבר:

ניתוח מעקב אחר מעבר מעטפת

איור 1. ניתוח של מעקב אחר מעבר בין מעטפות.

תצוגת טבלה

תצוגת הטבלה כוללת:

  • Id: מזהה המעבר שנוצר רק לצורך ניפוי באגים.
  • Type: סוג המעבר, כפי שמוגדר ב-Transitions.java.
  • זמן השליחה: חותמת הזמן של המעבר מהשרת למעטפת לטיפול.
  • שעת השליחה: חותמת הזמן שבה המעבר נשלח אל רכיב ה-handler כדי להתחיל את ההפעלה.
  • משך הזמן: משך הזמן שחלף מהתחלת ההפעלה ועד לסיום.
  • סטטוס: אם המעבר היה:
    • PLAYED:: שיחקת.
    • ABORTED: בוטל לפני ההפעלה. אפשר לבטל מעבר ממסך אחד למסך אחר דרך מעטפת או דרך WM.
    • MERGED: המעבר מוזג על ידי המטפל במעברים למעבר אחר שכבר פועל (המטפל קובע איך לטפל בזה).

תצוגה מפורטת

בנוסף לפרטים בתצוגת הטבלה, התצוגה המפורטת של המעבר בקטע SELECTED TRANSITION כוללת:

  • handler: המטפל במעבר שטיפל באנימציה הזו.
  • createTimeNs: חותמת הזמן שבה נוצר המעבר בצד השרת של WM.
  • finishTimeNs: חותמת הזמן שבה השרת בצד ה-WM מקבל הודעה על כך שהמעבר הסתיים בצד המעטפת.
  • endTransactionId: הטרנזקציה הסופית של SurfaceFlinger שנכללת במעבר הזה.
  • startTransactionId: טרנזקציית SurfaceFlinger ראשונית שנכללת במעבר הזה.
  • targets: רשימת המשתתפים במעבר.
  • type: סוג המעבר, כפי שמוגדר ב-Transitions.java.

מטרות

יעדים הם הרכיבים שמעורבים במעבר, בדרך כלל פעילויות או משימות. לכל יעד נרשמים הפרטים הבאים:

  • layerId: השכבה שמונפשת (מההיררכיה של SurfaceFlinger).
  • mode: סוג האנימציה שמופעלת בשכבה הזו.
  • windowId: חלון שמונפש (מההיררכיה של WindowManager).
  • flags: קבוצה חדשה של דגלים שמוחלת על השכבה.