SurfaceFlinger

SurfaceFlinger ডাম্প নির্দিষ্ট সময়ে SurfaceFlinger-এর স্ন্যাপশট প্রদান করে। SurfaceFlinger ট্রেসে স্টেটের ক্রমিক সিকোয়েন্স থাকে যা স্ক্রিনে কীভাবে উইন্ডো দেখা যায় সেই বিষয়ে মূল্যবান ইনসাইট প্রদান করে এবং নির্দিষ্ট লোকেশনে কোন উইন্ডো টাচ রেসপন্স পায় তা নির্ধারণ করে। এই তথ্য আপনাকে সমস্যা সমাধান করতে সাহায্য করে, যেমন অ্যাপে টাচ করলে কোনও প্রতিক্রিয়া পাওয়া যাচ্ছে না অথবা ভিডিও দেখার সময় স্ক্রিন ফ্লিকার করছে।

Winscope-এ, SurfaceFlinger ভিউয়ার এই তথ্য দেখায়, যা আপনি অ্যাক্টিভ মোড ব্যবহার করে সংগ্রহ করেন অথবা বাগ রিপোর্ট (ডিফল্ট হিসেবে, Droidfood কনফিগারেশন) নেওয়ার সময় ট্রানজ্যাকশন ট্রেস থেকে জেনারেট করেন, এর পাশাপাশি ডাম্পের জন্যও দেখায়।

ট্রেস সংগ্রহ করা সম্পর্কে আরও তথ্যের জন্য SurfaceFlinger (লেয়ার) দেখুন।

SurfaceFlinger ট্রেস বিশ্লেষণ

ছবি ১. SurfaceFlinger ট্রেস বিশ্লেষণ।

স্ক্রিনের বাঁদিকে লেয়ারের 3D ভিউ দেখানো হয়। রেক্টস ভিউ লেয়ার বাউন্ড, z-অর্ডার, অস্বচ্ছতা, আপেক্ষিক Z এবং গোলাকার কোণ বিবেচনা করে।

হায়ারার্কি চিপ

ট্যাবের কেন্দ্রীয় অংশে আরও তথ্যের জন্য চিপ সহ লেয়ারের হায়ারার্কি দেখানো হয়। যেমন, লেয়ারের মধ্যে পেরেন্ট-চাইল্ড সম্পর্ক, যা নিচে দেখানো হল:

  • V: দৃশ্যমান লেয়ার শনাক্ত করে।
  • RelZParent: RelZ চাইল্ডের সাথে লেয়ার শনাক্ত করে।
  • RelZ: RelZParent-এর সাথে লেয়ার শনাক্ত করে এবং তাদের ক্রম অনুযায়ী z-অর্ডারে আঁকা হয়।
  • HWC: হার্ডওয়্যার কম্পোজার দ্বারা তৈরি লেয়ার শনাক্ত করে।
  • GPU: GPU-এর মাধ্যমে কম্পোজ করা লেয়ার শনাক্ত করে।

স্ক্রিনের ডানদিকে কিউরেট করা প্রপার্টির তালিকা এবং উপলভ্য সব লেয়ার প্রপার্টির প্রোটো ডাম্প দেখানো হয়। প্রোটো ডাম্প বিভাগের ফিচার সম্পর্কে আরও তথ্য পেতে, প্রপার্টি দেখুন।

বাছাই করা প্রপার্টি

ডিবাগ করা আরও সহজ করতে, SurfaceFlinger ভিউয়ার প্রপার্টির একটি কিউরেট করা তালিকা প্রদান করে, যা আরও সুসংগঠিত ফর্ম্যাটে সবচেয়ে বেশি ব্যবহৃত তথ্য উপস্থাপন করে:

SurfaceFlinger প্রপার্টি

ছবি ২. SurfaceFlinger প্রপার্টি।

এই তালিকায় নিম্নলিখিত বিভাগগুলি অন্তর্ভুক্ত।

দৃশ্যমানতা

এই ব্লকে লেয়ারের দৃশ্যমানতা সম্পর্কিত তথ্য এবং এটি কেন দেখা যাচ্ছে না তার ব্যাখ্যা রয়েছে। এর মধ্যে অন্তর্ভুক্ত হল:

  • ফ্ল্যাগ: এগুলি দৃশ্যমানতা কন্ট্রোল করে, যেমন, HIDDEN ও OPAQUE।

  • অদৃশ্য হওয়ার কারণ: কোনও লেয়ার বা সারফেস কেন স্ক্রিনে অদৃশ্যমান, তার ব্যাখ্যা। যেমন, সেটি বা তার প্যারেন্ট সেটি লুকিয়ে রেখেছে অথবা ড্র করার জন্য কোনও বাফার নেই।

  • অস্পষ্ট, আংশিক অস্পষ্ট অথবা ঢাকা:

    • অক্লুডেড: বর্তমান লেয়ারটি দৃশ্যমান হিসেবে গণনা করা হয়, কিন্তু অন্য একটি অস্বচ্ছ লেয়ার এটির উপরে আঁকা হয়, যার ফলে বর্তমান লেয়ারটি অদৃশ্য হয়ে যায়। আড়াল করা লেয়ারের উপরের লেয়ারটি অস্বচ্ছ, অর্থাৎ, সেটির OPAQUE ফ্ল্যাগ সেট করা আছে অথবা পিক্সেল ফর্ম্যাটে আলফা নেই বা লেয়ারে কোনও আলফা সেট করা নেই।
    • আংশিক ঢাকা: বর্তমান লেয়ারটি আংশিকভাবে দেখা যাচ্ছে কারণ এর উপরে আঁকা অস্বচ্ছ লেয়ারটি এটিকে সম্পূর্ণভাবে ঢেকে দেয়নি। আংশিকভাবে ঢাকা লেয়ারের উপরের লেয়ারটি অস্বচ্ছ, অর্থাৎ, OPAQUE ফ্ল্যাগ সেট করা আছে অথবা পিক্সেল ফর্ম্যাটে আলফা নেই বা লেয়ারে কোনও আলফা সেট করা নেই।
    • ঢাকা: বর্তমান লেয়ারটি সম্পূর্ণ বা আংশিকভাবে অস্বচ্ছ লেয়ার দিয়ে ঢাকা আছে এবং এখনও স্ক্রিনে দেখা যেতে পারে। ঢাকা লেয়ারের উপরের লেয়ারটি অস্বচ্ছ নয়, অর্থাৎ OPAQUE ফ্ল্যাগ সেট করা নেই অথবা পিক্সেল ফর্ম্যাটে আলফা আছে বা লেয়ারে আলফা সেট করা আছে। তবে, SurfaceFlinger ট্রেসের জন্য, SurfaceFlinger-এর নিচে থাকা লেয়ারের ক্ষেত্রে, ঢাকা লেয়ারকে দৃশ্যমান হিসেবে দেখানো হয়:

      SurfaceFlinger-এ কভার করা লেয়ার

      ছবি ৩. SurfaceFlinger-এ কভার করা লেয়ার।

জ্যামিতি ও এফেক্ট

এই বিভাগে, বর্তমান লেয়ারের জন্য অনুরোধ করা ও কম্পিউট করা জ্যামিতি ও প্রভাব বর্ণনা করা হয়েছে।

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

ছবি ২-এ, লেয়ারটি কোণের ব্যাসার্ধ ০ পিক্সেল সেট করার অনুরোধ করে। তবে, এর একটি প্যারেন্ট লেয়ার কর্নার রেডিয়াস-এর ভ্যালু ৯৭.৪১৯ px সেট করে, এটিই হল প্রয়োগ করা ভ্যালু।

বাফার

নিচে উল্লেখ করা প্রপার্টি থেকে লেয়ারে বাফার আছে কিনা, সেটির সাইজ ও ট্রান্সফর্ম সংক্রান্ত তথ্য পাওয়া যায়:

  • ফ্রেম নম্বর: অ্যাপ তৈরি করার সময় থেকে শুরু করে ইনক্রিমেন্টাল নম্বর।
  • ডেস্টিনেশন ফ্রেম: ডেস্টিনেশন ফ্রেমের মাধ্যমে নির্ধারিত বাউন্ডে বাফারকে স্কেল করতে ব্যবহার করা হয়।

হায়ারার্কি

লেয়ারের হায়ারার্কি কীভাবে নির্ধারণ করা হয় তা নিম্নলিখিত প্রপার্টি থেকে জানা যায়:

  • z-অর্ডার: লেয়ারের হায়ারার্কিতে, z-অর্ডার নির্ধারণ করে যে সেটির সিবলিংয়ের সাথে সম্পর্কিত লেয়ারের আপেক্ষিক পজিশনিং। ০-এর z-ভ্যালু সহ লেয়ার সেটির পেরেন্ট লেয়ারের উপরে পজিশন করা হয়। একাধিক লেয়ার একই z-ভ্যালু শেয়ার করলে, যে লেয়ারের লেয়ার আইডি বেশি সেটি উপরে প্লেস করা হয়।
  • রিলেটিভ পেরেন্ট: z-অর্ডারে রিলেটিভ পেরেন্ট লেয়ার নির্দেশ করে। লুকানো ফ্ল্যাগ ছাড়া বাচ্চা তার আত্মীয় অভিভাবকের কোনও প্রপার্টি ইনহেরিট করে না।

ইনপুট

নিম্নলিখিত প্রপার্টিতে টাচ করা যায় এমন অঞ্চল ও ফোকাস সম্পর্কে তথ্য রয়েছে:

  • আইটেম সহ টাচ করার অঞ্চল ক্রপ করা: টাচ করা যায় এমন অঞ্চল ক্রপ করতে লেয়ার বাউন্ড ব্যবহার করুন।
  • ক্রপ দিয়ে টাচ অঞ্চল পরিবর্তন করুন: বর্তমান লেয়ারের ক্রপকে টাচ অঞ্চল হিসেবে ব্যবহার করুন।