انتقال پوسته

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

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

برای اطلاعات بیشتر در مورد جمع آوری ردیابی، به Transitions Shell مراجعه کنید.

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

Shell transition trace analysis

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

نمای جدول

نمای جدول شامل:

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

نمای تفصیلی

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

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

اهداف

اهداف عناصری هستند که در انتقال (معمولاً فعالیت ها یا وظایف) دخیل هستند. برای هر هدف ثبت می کنیم:

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