View Hierarchy: এটি কী, কাজের নীতি এবং কীভাবে ইন্টারফেস পরিদর্শন করবেন

লেখক: IT Sectr প্রকাশিত: 2026-05-07 পড়ার সময়: 8 মিনিট

Android Studio-তে View Hierarchy হল View শ্রেণিবিন্যাস পরিদর্শনের জন্য একটি শক্তিশালী টুল, যা ডেভেলপারদের রিয়েল টাইমে অ্যাপ্লিকেশনের ইউজার ইন্টারফেসের কাঠামো বিশ্লেষণ করতে দেয়। Android Developers (2025) এর অফিসিয়াল ডকুমেন্টেশন অনুসারে, Layout Inspector প্রতিটি লেআউট উপাদান সম্পর্কে বিস্তারিত তথ্য প্রদান করে, যার মধ্যে এর মাত্রা, মার্জিন এবং বৈশিষ্ট্য অন্তর্ভুক্ত। এই টুলটি UI ডিবাগিং, ওভারল্যাপিং উপাদান খোঁজা এবং রেন্ডারিং পারফরম্যান্স অপ্টিমাইজ করার জন্য অপরিহার্য।

মূল বিষয়

  • View Hierarchy — স্ক্রিনের সমস্ত View উপাদানের একটি গাছ, যা ইন্টারফেস উপাদানের নেস্টিং এবং রেন্ডারিং ক্রম দেখায়
  • Layout Inspector — View শ্রেণিবিন্যাস দেখার জন্য প্রধান টুল, যা সরাসরি Android Studio-তে নির্মিত
  • 3D ভিজুয়ালাইজেশন স্থানের মধ্যে View স্তর দেখতে এবং ওভারল্যাপিং ও Z-ক্রমের সমস্যা চিহ্নিত করতে দেয়
  • প্রোপার্টি প্রতিটি View-এর জন্য দেখার জন্য উপলব্ধ, যার মধ্যে layout_width, layout_height, padding, margin এবং থিম বৈশিষ্ট্য অন্তর্ভুক্ত
  • ডিবাগিং View Hierarchy-এর সাহায্যে অবস্থান এবং রেন্ডারিং সমস্যা খোঁজার সময় দশগুণ কমিয়ে দেয়

View Hierarchy কী?

View Hierarchy হল সমস্ত View উপাদানের একটি শ্রেণিবিন্যাসগত কাঠামো যা Android অ্যাপ্লিকেশনের ইউজার ইন্টারফেস গঠন করে। ইন্টারফেসের প্রতিটি উপাদান, তা বাটন, টেক্সট ফিল্ড, ইমেজ বা কন্টেইনার হোক, এই শ্রেণিবিন্যাসে একটি গাছের নোড হিসেবে উপস্থাপিত হয় এবং প্যারেন্ট-চাইল্ড সম্পর্ক লেআউট উপাদানের নেস্টিং প্রতিফলিত করে।

সংজ্ঞা এবং উদ্দেশ্য

Android-এ, প্রতিটি স্ক্রিন ViewGroups (কন্টেইনার) এবং Views (উইজেট) থেকে নির্মিত হয়। ViewGroup-এ চাইল্ড Views থাকে এবং তাদের অবস্থান পরিচালনা করে। উদাহরণস্বরূপ, LinearLayout উপাদানগুলিকে একটি লাইনে সাজায়, যখন ConstraintLayout সেগুলিকে সীমাবদ্ধতা অনুসারে সাজায়। View Hierarchy এই কাঠামোটিকে একটি গাছ হিসেবে ভিজুয়ালাইজ করে: মূল হল রুট ViewGroup (যেমন content), এবং পাতা হল TextView বা ImageView-এর মতো টার্মিনাল উইজেট।

View গাছ তৈরির নীতি

যখন Android একটি স্ক্রিন রেন্ডার করে, এটি View গাছকে উপরে থেকে নীচে ট্রাভার্স করে: প্যারেন্ট ViewGroup চাইল্ড উপাদানগুলিকে মাপে এবং অবস্থান নির্ধারণ করে, তারপর প্রতিটি চাইল্ড উপাদান নিজেকে Canvas-এ আঁকে। ট্রাভার্সাল ক্রম রেন্ডারিংয়ের Z-ক্রম নির্ধারণ করে — পরে যুক্ত উপাদানগুলি আগের উপাদানগুলির উপরে আঁকা হয়। এই নীতিটি বোঝা ওভারল্যাপিং উপাদান এবং ভুল অবস্থান নির্ধারণ ডিবাগ করার জন্য গুরুত্বপূর্ণ।

xml
<!-- লেআউটে View শ্রেণিবিন্যাসের উদাহরণ -->
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/titleText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World" />

    <Button
        android:id="@+id/submitBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit" />

</androidx.constraintlayout.widget.ConstraintLayout>

Layout Inspector কীভাবে কাজ করে

Layout Inspector হল View Hierarchy-এর সাথে কাজ করার জন্য প্রধান Android Studio টুল। এটি চলমান অ্যাপ্লিকেশনের বর্তমান UI অবস্থার স্ন্যাপশট নেয় এবং ইন্টারঅ্যাকটিভ দেখার ক্ষমতা সহ সম্পূর্ণ View গাছ প্রদর্শন করে। এর জন্য API Level 14 এবং তার উপরের ডিভাইস বা এমুলেটর প্রয়োজন।

UI অবস্থার স্ন্যাপশট

চালু হলে, Layout Inspector অ্যাপ্লিকেশন প্রক্রিয়ার সাথে সংযুক্ত হয় এবং বর্তমান WindowManager অবস্থার ডাম্প অনুরোধ করে। ফলাফলে শুধু View গাছ নয়, উপাদানের সীমানা সহ স্ক্রিনের স্ক্রিনশটও অন্তর্ভুক্ত থাকে। এটি আক্ষরিক অর্থে দেখতে দেয় যে কোন Views রেন্ডার করা হয়েছে এবং তারা কোথায় অবস্থিত, ভিজুয়াল ডিসপ্লেকে লেআউট কোডের সাথে মিলিয়ে।

রিয়েল-টাইম আপডেট

Layout Inspector Live Update মোড সমর্থন করে, যেখানে UI অবস্থা পরিবর্তন হলে স্ন্যাপশট স্বয়ংক্রিয়ভাবে আপডেট হয় — উদাহরণস্বরূপ, বাটনে ক্লিক করার বা অন্য স্ক্রিনে নেভিগেট করার পরে। এটি অ্যানিমেশন এবং ডায়নামিক ইন্টারফেস পরিবর্তন ডিবাগ করার সময় বিশেষভাবে উপযোগী, যখন ব্যবহারকারীর ক্রিয়ার প্রতিক্রিয়ায় View গাছ কীভাবে পরিবর্তিত হয় তা ট্র্যাক করা প্রয়োজন।

kotlin
// রানটাইমে ডায়নামিকভাবে View যোগ করার উদাহরণ
val dynamicView = TextView(this).apply {
    id = View.generateViewId()
    layoutParams = ViewGroup.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT,
        ViewGroup.LayoutParams.WRAP_CONTENT
    )
    text = "Dynamic View"
}
binding.root.addView(dynamicView)

View Hierarchy-এর প্রধান ক্ষমতা

Android Studio-তে View Hierarchy ইউজার ইন্টারফেসের গভীর বিশ্লেষণের জন্য বৈশিষ্ট্যের একটি সেট প্রদান করে। টুলটি শুধু গাছ দেখা ছাড়িয়ে যায় এবং প্রোপার্টি পরিদর্শন, 3D বিশ্লেষণ এবং উপাদান ফিল্টারিং অন্তর্ভুক্ত করে।

উপাদানের প্রোপার্টি দেখা

গাছের যেকোনো View নির্বাচন করলে, Properties প্যানেল বৈশিষ্ট্যের সম্পূর্ণ তালিকা সহ খোলে: layout_width, layout_height, padding, margin, visibility, elevation, background এবং অ্যাপ্লিকেশন থিমের সমস্ত কাস্টম বৈশিষ্ট্য। মান পিক্সেল এবং dp উভয়েই প্রদর্শিত হয়, যা লেআউট কোডের সাথে মিলানো সহজ করে।

প্রোপার্টিবিবরণউদাহরণ মান
mLeft, mTopপ্যারেন্টের সাপেক্ষে উপরের বাম কোণের স্থানাঙ্ক24px (12dp)
mMeasuredWidthমাপ ধাপের পরে মাপা প্রস্থ192px (96dp)
getVisibilityউপাদানের দৃশ্যমানতা: visible, invisible বা gonevisible
getAlpha0–1 পরিসরে উপাদানের স্বচ্ছতা1.0
getElevationছায়া প্রদর্শনের জন্য উপাদানের উচ্চতা4dp

স্তরগুলির 3D ভিজুয়ালাইজেশন

Layout Inspector View শ্রেণিবিন্যাসের একটি ত্রিমাত্রিক দৃশ্য অফার করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট উচ্চতা (elevation) সহ একটি স্তর হিসেবে প্রদর্শিত হয়। এটি দেখতে দেয় যে কোন উপাদানগুলি একে অপরকে ওভারল্যাপ করে এবং রেন্ডারিংয়ের সময় কোন Z-ক্রম ব্যবহার করা হয়। এই মোডটি CardView, FloatingActionButton এবং elevation সহ অন্যান্য উপাদানের সাথে কাজ করার সময় বিশেষভাবে উপযোগী।

উপাদান ফিল্টারিং এবং অনুসন্ধান

ডজন ডজন View সহ বড় স্ক্রিনের জন্য, id দ্বারা অনুসন্ধান এবং উপাদান টেক্সট উপলব্ধ। আপনি View প্রকার অনুসারে গাছ ফিল্টার করতে পারেন (যেমন, শুধু TextView দেখান) বা কন্টেইনার লুকাতে পারেন, শুধু টার্মিনাল উপাদান রেখে। ফিল্টারিং গভীর নেস্টিং সহ জটিল লেআউট ফাইলে নেভিগেশন দ্রুত করে। RecyclerView-এর সাথে কাজ করার সময়, ফিল্টারিং আপনাকে তার লেআউট প্যারামিটার এবং অবস্থার বিস্তারিত বিশ্লেষণের জন্য তালিকার একটি নির্দিষ্ট আইটেমকে আলাদা করতে দেয়।

রিসোর্স এবং drawable বিশ্লেষণ

View Hierarchy শুধু লেআউট প্রোপার্টি নয়, সংশ্লিষ্ট রিসোর্সও প্রদর্শন করে: background drawable, ইমেজ সোর্স, থিম রঙ। যদি View একটি VectorDrawable ব্যবহার করে, তবে রিসোর্সের সঠিক পাথ দেখা যায়। এটি ভুল drawable রেফারেন্সের সমস্যা খুঁজতে সাহায্য করে — উদাহরণস্বরূপ, যখন ডার্ক থিম একটি হালকা আইকন ব্যবহার করে, বা যখন একটি রিসোর্স রেফারেন্স একটি অস্তিত্বহীন ফাইলের দিকে নির্দেশ করে।

ইন্টারফেস ডিবাগ করতে কীভাবে ব্যবহার করবেন

View Hierarchy-এর সাথে UI ডিবাগ করা নির্দিষ্ট ব্যবহারিক কাজগুলি সমাধান করে যা প্রতিটি Android ডেভেলপার সম্মুখীন হয়। টুলটি শুধু গাছ দেখা নয়, পারফরম্যান্স এবং প্রদর্শন সমস্যা খুঁজে ও ঠিক করার অনুমতি দেয়।

অবস্থান সংক্রান্ত সমস্যা খোঁজা

যখন স্ক্রিনের একটি উপাদান প্রত্যাশিত স্থানে নেই, কেবল Layout Inspector খুলুন এবং এর স্থানাঙ্ক mLeft এবং mTop দেখুন। প্রায়ই সমস্যাটি ভুল মার্জিন বা ভুলভাবে কনফিগার করা সীমাবদ্ধতায় থাকে। View Hierarchy সঠিক অবস্থান এবং প্রকৃত মাত্রা দেখাবে।

নেস্টিং গভীরতা অপ্টিমাইজেশন

গভীরভাবে নেস্টেড লেআউট কন্টেইনার রেন্ডারিং পারফরম্যান্সকে নেতিবাচকভাবে প্রভাবিত করে, কারণ Android মাপ এবং লেআউট পাসে বেশি সময় ব্যয় করে। View Hierarchy প্রতিটি উপাদানের নেস্টিং স্তর স্পষ্টভাবে দেখায়। প্রস্তাবিত গভীরতা 10 স্তরের বেশি নয়, এবং 15 স্তর অতিক্রম করাকে গুরুতর সমস্যা হিসেবে বিবেচনা করা হয় যার জন্য ConstraintLayout বা Merge ব্যবহার করে রিফ্যাক্টরিং প্রয়োজন।

অতিরিক্ত পুনরায় অঙ্কন সনাক্তকরণ

প্রোপার্টি প্যানেলে, আপনি প্রতিটি View-এর জন্য মাপ এবং লেআউট পাসের প্রকৃত সংখ্যা দেখতে পারেন। অতিরিক্ত পুনরায় অঙ্কন একটি অদক্ষ লেআউট কাঠামো নির্দেশ করে। GPU Overdraw ডিবাগিং টুল View Hierarchy-এর সাথে মিলে সম্পূর্ণ চিত্র দেয়: কোন Views অপ্রয়োজনীয়ভাবে অন্যদের উপরে আঁকা হয়, যা GPU-তে অতিরিক্ত লোড তৈরি করে। GPU Overdraw বিশ্লেষণ Layout Inspector ডেটার সাথে মিলে পুরো স্ক্রিন জুড়ে অদক্ষ অঙ্কনের সম্পূর্ণ চিত্র দেয়।

kotlin
// Merge-এর সাথে গভীরতা অপ্টিমাইজেশন
// নেস্টেড LinearLayout-এর পরিবর্তে Merge ব্যবহার করুন
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="অপ্টিমাইজড কন্টেন্ট" />
</merge>

Android Studio-তে View Hierarchy: ধাপে ধাপে নির্দেশিকা

View Hierarchy কার্যকরভাবে ব্যবহার করতে, টুলটি কীভাবে শুরু করবেন, গাছটিতে কীভাবে নেভিগেট করবেন এবং বিশ্লেষণ বা রিপোর্টিংয়ের জন্য প্রাপ্ত ডেটা কীভাবে রপ্তানি করবেন তা জানা প্রয়োজন।

পরিদর্শন শুরু করা

Layout Inspector Android Studio-তে Tools → Layout Inspector মেনু থেকে চালু করা হয়। চালু করার আগে, অ্যাপ্লিকেশনটি সংযুক্ত ডিভাইস বা এমুলেটরে চলমান থাকতে হবে। প্রক্রিয়া নির্বাচন করার পরে, তিনটি প্যানেল সহ একটি উইন্ডো উপস্থিত হয়: স্ক্রিনের স্ক্রিনশট, View গাছ এবং নির্বাচিত উপাদানের প্রোপার্টি প্যানেল। API 29 এবং তার উপরের এমুলেটরের জন্য, Live Update মোড উপলব্ধ।

গাছে নেভিগেশন

View গাছ বাম প্যানেলে একটি শ্রেণিবিন্যাসগত তালিকা হিসেবে প্রদর্শিত হয়। আপনি কন্টেইনারগুলি প্রসারিত এবং সংকুচিত করতে পারেন, এবং স্ক্রিনশটে সরাসরি ক্লিক করতে পারেন — সংশ্লিষ্ট উপাদানটি গাছে স্বয়ংক্রিয়ভাবে হাইলাইট হয়। এটি দ্বিমুখী সিঙ্ক্রোনাইজেশন: গাছে নির্বাচন স্ক্রিনশটে উপাদানটিকে হাইলাইট করে, এবং এর বিপরীত। দ্রুত অনুসন্ধানের জন্য, Filter ফিল্ড ব্যবহার করুন।

ডেটা রপ্তানি

পরিদর্শনের ফলাফল পরবর্তীতে দেখার বা সহকর্মীদের সাথে শেয়ার করার জন্য .li ফরম্যাটে (Layout Inspector ফাইল) সংরক্ষণ করা যেতে পারে। ফাইলটিতে View গাছ, স্ক্রিনশট এবং সমস্ত উপাদানের প্রোপার্টি সম্পর্কে সম্পূর্ণ তথ্য থাকে। রপ্তানি করতে, Layout Inspector টুলবারে Export বাটন ব্যবহার করুন। রপ্তানি করা ডেটা UI সমস্যার সহযোগী বিশ্লেষণের জন্য Android Studio সহ অন্য মেশিনে খোলা যেতে পারে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

Layout Inspector-এর জন্য Android-এর ন্যূনতম সংস্করণ কী প্রয়োজন?

Layout Inspector API Level 14 (Android 4.0) এবং তার উপরের ডিভাইসে কাজ করে। তবে, Live Update মোডের জন্য API Level 29 (Android 10) এবং gradle নির্ভরতায় Layout Inspector লাইব্রেরি প্রয়োজন।

কেন Layout Inspector সব Views দেখায় না?

কিছু Views হার্ডওয়্যার ত্বরণ ফ্ল্যাগ বা রেন্ডারিং অপ্টিমাইজেশনের কারণে লুকানো থাকতে পারে। ম্যানিফেস্টে উইন্ডোর জন্য হার্ডওয়্যার ত্বরণ নিষ্ক্রিয় করার চেষ্টা করুন বা ডিভাইসে Developer Options চালু করুন। SurfaceView এবং TextureViewও সম্পূর্ণরূপে প্রদর্শিত হয় না।

এমুলেটরে View Hierarchy কীভাবে দেখবেন?

Android এমুলেটর API 29+ এ Live Update সহ Layout Inspector কে সম্পূর্ণরূপে সমর্থন করে। নিশ্চিত করুন যে এমুলেটর Google Play Services সমর্থন সহ চলছে। Play Store ছাড়া এমুলেটরের জন্য, অ্যাপ্লিকেশনের Debug বিল্ড ব্যবহার করুন।

Layout Inspector-এর মাধ্যমে View প্রোপার্টি সম্পাদনা করা যায়?

Layout Inspector দেখার এবং বিশ্লেষণের জন্য একটি শুধু-পঠনযোগ্য টুল। প্রোপার্টির সরাসরি সম্পাদনা সমর্থিত নয়। মান পরিবর্তন করতে, আপনাকে লেআউট ফাইল বা কোড সম্পাদনা করতে হবে এবং অ্যাপ্লিকেশন পুনরায় চালু করতে হবে। রানটাইম পরিবর্তনের জন্য Hyperion-এর মতো থার্ড-পার্টি লাইব্রেরি বিদ্যমান।

View Hierarchy এবং Layout Inspector-এর মধ্যে পার্থক্য কী?

View Hierarchy হল ধারণাগত উপাদান গাছ, যখন Layout Inspector এটি ভিজুয়ালাইজ এবং বিশ্লেষণ করার জন্য Android Studio টুল। কথ্য ভাষায়, এই শব্দগুলি প্রায়শই সমার্থকভাবে ব্যবহৃত হয়, কিন্তু প্রযুক্তিগতভাবে View Hierarchy ডেটা কাঠামোকে নির্দেশ করে, যখন Layout Inspector টুলকে নির্দেশ করে।

সারাংশ

  • View Hierarchy — View উপাদানের একটি শ্রেণিবিন্যাসগত গাছ যা রিয়েল টাইমে Android অ্যাপ্লিকেশনের UI কাঠামো প্রদর্শন করে
  • Layout Inspector ভিজুয়াল তুলনার জন্য শুধু View গাছ নয়, উপাদানের সীমানা সহ স্ক্রিনশটও প্রদান করে
  • স্তরগুলির 3D ভিজুয়ালাইজেশন Z-ক্রম, elevation এবং উপাদান ওভারল্যাপিংয়ের সাথে সমস্যা চিহ্নিত করতে সাহায্য করে
  • প্রোপার্টি প্যানেল নির্বাচিত View-এর সমস্ত বৈশিষ্ট্য দেখায়: স্থানাঙ্ক, মাত্রা, মার্জিন, দৃশ্যমানতা এবং থিম প্যারামিটার
  • লেআউট নেস্টিং গভীরতা অপ্টিমাইজেশন View Hierarchy-এর সাথে সমাধান করা মূল কাজগুলির মধ্যে একটি, বিশেষ করে 10 স্তর অতিক্রম করলে
  • API 29+ এ Live Update অ্যাপ্লিকেশন পুনরায় চালু না করেই ব্যবহারকারীর ক্রিয়ার প্রতিক্রিয়ায় View গাছের পরিবর্তন ট্র্যাক করতে দেয়
  • জটিল স্ক্রিন ডেভেলপ করার সময় Layout Inspector নিয়মিতভাবে ব্যবহার করুন — এটি UI ডিবাগিং সময় কমায় এবং লেআউট রিফ্যাক্টরিংয়ের সময় রিগ্রেশন প্রতিরোধ করে

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন