انتقال پوسته

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

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

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

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

Shell transition trace analysis

شکل 1. تحلیل ردیابی گذار پوسته.

نمای جدول

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

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

نمای تفصیلی

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

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

اهداف

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

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