أدّى طرح ميزة "عمليات الانتقال بين التطبيقات" إلى دمج وتدوين طريقة عرض الصور المتحركة في النظام، ما أتاح استرجاع معلومات مركزية بشأن الصور المتحركة المقرر تنفيذها.
يتضمّن تتبُّع الانتقال بيانات عن كل انتقال ضمن واجهة WindowManager (WM)، سواء من خادم النظام أو الواجهة. تفعِّل Droidfood هذا التتبُّع بشكل دائم وتضمّنه تلقائيًا في تقارير الأخطاء.
لمزيد من المعلومات حول جمع عمليات التتبُّع، اطّلِع على عمليات الانتقال بين الأغلفة.
يعرض عارض "عمليات الانتقال" في Winscope هذه المعلومات لعمليات تتبُّع عمليات الانتقال التي تحتوي على معلومات من جهة الخادم ومن جهة العميل. يتضمّن العارض عرضًا لسجلّ الجدول على اليمين يعرض معلومات عالية المستوى حول عمليات الانتقال، وعرضًا تفصيليًا على اليسار لكل عملية انتقال:
الشكل 1. تحليل تتبُّع انتقال واجهة المستخدم
العرض في جدول
يحتوي العرض في جدول على ما يلي:
- المعرّف: معرّف الانتقال الذي يتم إنشاؤه لتصحيح الأخطاء فقط.
- النوع: نوع الانتقال، كما هو محدّد في
Transitions.java. - وقت الإرسال: الطابع الزمني الذي تم إرسال الانتقال خلاله من الخادم إلى الواجهة ليتم التعامل معه.
- وقت الإرسال: الطابع الزمني الذي يتم فيه إرسال الانتقال إلى معالج التشغيل لبدء التشغيل.
- المدة: الوقت الذي استغرقه الانتقال من بدء التشغيل إلى الانتهاء.
- الحالة: إذا كان الانتقال:
- تمّ اللعب:: تمّ اللعب
- تم الإلغاء: تم الإلغاء قبل بدء اللعب. يمكن إلغاء عملية الانتقال من واجهة الأوامر أو من جانب "إدارة النوافذ".
- MERGED: تم دمجها بواسطة معالج الانتقال في انتقال آخر يتم تشغيله حاليًا (يقرر المعالج كيفية التعامل مع هذا).
العرض التفصيلي
بالإضافة إلى التفاصيل الواردة في طريقة عرض الجدول، تتضمّن طريقة العرض التفصيلية للانتقال في قسم الانتقال المحدّد ما يلي:
-
handler: معالج الانتقال الذي تعامل مع هذه الحركة. -
createTimeNs: الطابع الزمني الذي تم فيه إنشاء الانتقال على خادم إدارة المياه. -
finishTimeNs: الطابع الزمني الذي يتم فيه إبلاغ خادم إدارة النوافذ (WM) بأنّ عملية الانتقال قد انتهت على جانب الواجهة. -
endTransactionId: آخر معاملة SurfaceFlinger مضمّنة في هذا الانتقال. -
startTransactionId: معاملة SurfaceFlinger الأولية المضمّنة في هذا الانتقال. -
targets: قائمة المشاركين في عملية النقل type: نوع الانتقال، كما هو محدّد فيTransitions.java
الأهداف
الأهداف هي العناصر المشاركة في عملية الانتقال، وعادةً ما تكون أنشطة أو مهام. يتم تسجيل المعلومات التالية لكل هدف:
layerId: الطبقة التي يتم تحريكها (من التسلسل الهرمي SurfaceFlinger)mode: نوع الحركة التي يتم تنفيذها على هذه الطبقةwindowId: النافذة التي يتم تحريكها (من بنية WindowManager).flags: مجموعة جديدة من العلامات يتم تطبيقها على الطبقة