گذار پوسته

معرفی انتقال‌های پوسته روش اجرای پویانمایی‌ها در سیستم را یکپارچه و مدون کرد و امکان بازیابی اطلاعات متمرکز درباره پویانمایی‌های برنامه‌ریزی‌شده برای اجرا را فراهم کرد.

رد انتقال شامل داده‌های مربوط به هر انتقال در پوسته WindowManager (WM)، هم از سرور سیستم و هم از پوسته است. ‫Droidfood این ردیابی را برای همیشه فعال می‌کند و به‌طور خودکار آن را در گزارش‌های اشکال جاسازی می‌کند.

برای اطلاعات بیشتر درباره جمع‌آوری ردپا، انتقال‌های پوسته را ببینید.

بیننده «گذارها» در Winscope این اطلاعات را برای ردپاهای گذاری که حاوی اطلاعات سمت سرور و سمت مشتری هستند نمایش می‌دهد. نمایگر شامل نمای گزارش جدول در سمت راست است که اطلاعات انتقال سطح بالا را نشان می‌دهد، و نمای تفصیلی در سمت چپ برای هر انتقال:

تحلیل ردیابی انتقال Shell

شکل ۱. تحلیل ردیابی انتقال پوسته.

نمای جدول

نمای جدولی شامل موارد زیر است:

  • شناسه: شناسه انتقال فقط برای اشکال‌زدایی تولید شده است.
  • نوع: نوع گذار، همان‌طور که در Transitions.java تعریف شده است.
  • زمان ارسال: مُهر زمان انتقال از سرور به پوسته برای رسیدگی ارسال شد.
  • زمان ارسال: مُهر زمان زمانی که انتقال برای شروع پخش به کنترل‌کننده ارسال می‌شود.
  • مدت زمان: مدت زمانی که انتقال از شروع پخش تا پایان طول کشیده است.
  • وضعیت: اگر انتقال:
    • PLAYED:: Played.
    • لغوشده: قبل‌از پخش لغو شده است. انتقال را می‌توان ازطریق پوسته یا WM لغو کرد.
    • MERGED: توسط کنترل‌کننده انتقال در برخی‌از انتقال‌های درحال پخش دیگر ادغام شده است (کنترل‌کننده تصمیم می‌گیرد که چگونه این مورد را مدیریت کند).

نمای پرجزئیات

علاوه‌بر جزئیات نمای جدولی، نمای انتقال دقیق در بخش انتقال انتخاب‌شده شامل موارد زیر است:

  • ‫handler: کنترل‌کننده انتقالی که این پویانمایی را مدیریت کرده است.
  • ‫createTimeNs: مُهر زمان ایجاد انتقال در سمت سرور WM.
  • ‫finishTimeNs: مُهر زمان وقتی که به سمت سرور WM اطلاع داده می‌شود که اجرای انتقال در سمت پوسته به‌پایان رسیده است.
  • ‫endTransactionId: تراکنش نهایی SurfaceFlinger در این انتقال گنجانده شده است.
  • ‫startTransactionId: تراکنش اولیه SurfaceFlinger در این انتقال گنجانده شده است.
  • targets: فهرست شرکت‌کنندگان در انتقال.
  • ‫type: نوع گذار، همان‌گونه که در Transitions.java تعریف شده است.

هدف

هدف‌ها عناصری هستند که در انتقال دخیل‌اند، معمولاً فعالیت‌ها یا تکالیف. برای هر هدف، اطلاعات زیر ضبط می‌شود:

  • layerId: لایه‌ای که پویانمایی می‌شود (از سلسله‌مراتب SurfaceFlinger).
  • ‫mode: نوع پویانمایی انجام‌شده روی این لایه.
  • ‫windowId: پنجره‌ای که درحال پویانمایی است (از سلسله مراتب WindowManager).
  • ‫flags: مجموعه جدیدی از پرچم‌ها درحال اعمال شدن روی لایه است.