শেল ট্রানজিশন

শেল ট্রানজিশনের প্রবর্তনের ফলে সিস্টেমের মধ্যে অ্যানিমেশন চালানোর পদ্ধতি সুসংহত ও বিধিবদ্ধ হয়েছে, যা সম্পাদনের জন্য নির্ধারিত অ্যানিমেশনগুলো সম্পর্কিত কেন্দ্রীভূত তথ্য পুনরুদ্ধারের সুযোগ করে দিয়েছে।

ট্রানজিশন ট্রেসে সিস্টেম সার্ভার এবং শেল উভয় থেকেই উইন্ডো ম্যানেজার (WM) শেলের ভেতরের প্রতিটি ট্রানজিশনের ডেটা অন্তর্ভুক্ত থাকে। ড্রয়েডফুড এই ট্রেসটি স্থায়ীভাবে সক্রিয় করে এবং বাগ রিপোর্টে স্বয়ংক্রিয়ভাবে এটি যুক্ত করে দেয়।

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

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

Shell transition trace analysis

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

টেবিল ভিউ

টেবিল ভিউতে রয়েছে:

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

বিস্তারিত দৃশ্য

টেবিল ভিউয়ের বিবরণের পাশাপাশি, সিলেক্টেড ট্রানজিশন (SELECTED TRANSITION) বিভাগের বিস্তারিত ট্রানজিশন ভিউতে নিম্নলিখিত বিষয়গুলো থাকে:

  • handler : যে ট্রানজিশন হ্যান্ডলারটি এই অ্যানিমেশনটি পরিচালনা করেছে।
  • createTimeNs : যে টাইমস্ট্যাম্পে WM সার্ভার সাইডে ট্রানজিশনটি তৈরি করা হয়েছিল।
  • finishTimeNs : যে টাইমস্ট্যাম্পে WM সার্ভার সাইডকে জানানো হয় যে শেল সাইডে ট্রানজিশনটির চালনা শেষ হয়েছে।
  • endTransactionId : এই ট্রানজিশনে অন্তর্ভুক্ত চূড়ান্ত SurfaceFlinger ট্রানজ্যাকশন।
  • startTransactionId : এই ট্রানজিশনে অন্তর্ভুক্ত প্রাথমিক SurfaceFlinger ট্রানজ্যাকশন।
  • targets : রূপান্তর প্রক্রিয়ায় অংশগ্রহণকারীদের তালিকা।
  • type : Transition type, যা Transitions.java তে সংজ্ঞায়িত।

লক্ষ্য

লক্ষ্য হলো রূপান্তরের সাথে জড়িত উপাদানসমূহ, যা সাধারণত কার্যকলাপ বা কাজ হয়ে থাকে। প্রতিটি লক্ষ্যের জন্য নিম্নলিখিত তথ্য লিপিবদ্ধ করা হয়:

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