Shell ট্রানজিশন

শেল ট্রানজিশন চালু করার ফলে সিস্টেমের মধ্যে অ্যানিমেশন চালানোর পদ্ধতিকে একত্রিত ও কোডিফাই করা হয়েছে। এর ফলে এক্সিকিউট করার জন্য নির্ধারিত অ্যানিমেশন সম্পর্কিত কেন্দ্রীয় তথ্য পুনরুদ্ধার করা যায়।

ট্রানজিশন ট্রেসে WindowManager (WM) শেল-এর মধ্যে প্রতিটি ট্রানজিশনের ডেটা অন্তর্ভুক্ত থাকে, যা সিস্টেম সার্ভার ও শেল, দু'টি থেকেই নেওয়া হয়। Droidfood স্থায়ীভাবে এই ট্রেস চালু করে এবং অটোমেটিক সমস্যা সংক্রান্ত রিপোর্টে এটি এম্বেড করে।

ট্রেস সংগ্রহ করা সম্পর্কে আরও জানতে, শেল ট্রানজিশন দেখুন।

Winscope-এর ট্রানজিশন ভিউয়ার ট্রানজিশন ট্রেসের জন্য এই তথ্য দেখায় যেখানে সার্ভার ও ক্লায়েন্ট-সাইড, দুটি তথ্যই থাকে। ভিউয়ারের বাঁদিকে একটি টেবিল লগ ভিউ থাকে, যা হাই-লেভেল ট্রানজিশন সংক্রান্ত তথ্য দেখায় এবং ডানদিকে প্রতিটি ট্রানজিশনের জন্য একটি বিস্তারিত ভিউ থাকে:

Shell ট্রানজিশন ট্রেস বিশ্লেষণ

ছবি ১. শেল ট্রানজিশন ট্রেস বিশ্লেষণ।

সারণী হিসেবে দেখুন

টেবিল ভিউতে এগুলি থাকে:

  • আইডি: শুধুমাত্র ডিবাগিংয়ের জন্য ট্রানজিশন আইডি তৈরি করা হয়।
  • ধরন: ট্রানজিশনের ধরন, যেমন Transitions.java-এ উল্লেখ করা আছে।
  • পাঠানোর সময়: সার্ভার থেকে শেল-এ ট্রানজিশন পাঠানোর টাইমস্ট্যাম্প ম্যানেজ করতে হবে।
  • ডিসপ্যাচ করার সময়: ট্রানজিশন হ্যান্ডলারের কাছে ডিসপ্যাচ করার টাইমস্ট্যাম্প যাতে সেটি চালানো শুরু করা যায়।
  • সময়সীমা: ট্রানজিশন শুরু থেকে শেষ পর্যন্ত কতক্ষণ সময় লেগেছে।
  • স্ট্যাটাস: ট্রানজিশন যদি:
    • খেলা হয়েছে:: খেলা হয়েছে।
    • বাতিল করা হয়েছে: চালানোর আগেই বাতিল করা হয়েছে। শেল বা WM সাইড থেকে ট্রানজিশন বাতিল করা যেতে পারে।
    • মার্জ করা হয়েছে: ট্রানজিশন হ্যান্ডলারের মাধ্যমে আগে থেকেই চলছে এমন অন্য কোনও ট্রানজিশনে মার্জ করা হয়েছে (হ্যান্ডলার সিদ্ধান্ত নেয় যে এটি কীভাবে ম্যানেজ করা হবে)।

বিস্তারিত ভিউ

টেবিল ভিউতে দেখানো বিবরণের পাশাপাশি, বেছে নেওয়া ট্রানজিশন বিভাগে বিস্তারিত ট্রানজিশন ভিউতে এগুলি থাকে:

  • handler: এই অ্যানিমেশন যে ট্রানজিশন হ্যান্ডলার হ্যান্ডেল করেছে।
  • createTimeNs: WM সার্ভার সাইডে ট্রানজিশন তৈরি হওয়ার টাইমস্ট্যাম্প।
  • finishTimeNs: WM সার্ভার সাইডকে কখন জানানো হয় যে শেল সাইডে ট্রানজিশন চালানো শেষ হয়ে গেছে সেই টাইমস্ট্যাম্প।
  • endTransactionId: এই ট্রানজিশনে ফাইনাল SurfaceFlinger ট্রানজ্যাকশন অন্তর্ভুক্ত।
  • startTransactionId: Initial SurfaceFlinger transaction included in this transition.
  • targets: ট্রানজিশনে অংশগ্রহণকারীদের তালিকা।
  • type: ট্রানজিশনের ধরন, যা Transitions.java-এ উল্লেখ করা আছে।

লক্ষ্য

ট্রানজিশনে অন্তর্ভুক্ত এলিমেন্ট হল টার্গেট, সাধারণত অ্যাক্টিভিটি বা টাস্ক। প্রতিটি টার্গেটের জন্য, নিম্নলিখিত তথ্য রেকর্ড করা হয়:

  • layerId: অ্যানিমেট করা হচ্ছে এমন লেয়ার (SurfaceFlinger হায়ারার্কি থেকে)।
  • mode: এই লেয়ারে করা অ্যানিমেশনের ধরন।
  • windowId: উইন্ডো যা অ্যানিমেট করা হচ্ছে (WindowManager হায়ারার্কি থেকে)।
  • flags: লেয়ারে নতুন ফ্ল্যাগ প্রয়োগ করা হচ্ছে।