হায়ারার্কি ভিউয়ার অবরুদ্ধ করা হয়েছে। আপনি যদি অ্যান্ড্রয়েড স্টুডিও 3.1 বা তার পরের সংস্করণ ব্যবহার করেন, তবে রানটাইমে আপনার অ্যাপের ভিউ হায়ারার্কি পরিদর্শন করতে আপনার পরিবর্তে লেআউট ইন্সপেক্টর ব্যবহার করা উচিত। আপনার অ্যাপের লেআউটের রেন্ডারিং স্পিড প্রোফাইল করতে, এই ব্লগ পোস্টে বর্ণিত Window.OnFrameMetricsAvailableListener ব্যবহার করুন।
হায়ারার্কি ভিউয়ার হল অ্যান্ড্রয়েড ডিভাইস মনিটরে তৈরি একটি টুল যা আপনাকে আপনার লেআউট হায়ারার্কিতে প্রতিটি ভিউয়ের জন্য লেআউটের গতি পরিমাপ করতে দেয়। এটি আপনাকে আপনার ভিউ হায়ারার্কির কাঠামোর কারণে কর্মক্ষমতার বাধা খুঁজে পেতে সহায়তা করতে পারে।
দ্রষ্টব্য: হায়ারার্কি ভিউয়ার আর তৈরি করা হচ্ছে না। রানটাইমে আপনার ভিউ হায়ারার্কির বৈশিষ্ট্যগুলি পরিদর্শন করতে, আপনার পরিবর্তে অ্যান্ড্রয়েড স্টুডিওতে লেআউট ইন্সপেক্টর ব্যবহার করা উচিত। যাইহোক, লেআউট ইন্সপেক্টর বর্তমানে আপনার লেআউট কর্মক্ষমতা সম্পর্কে প্রোফাইলিং বিশদ প্রদান করে না।
এই পৃষ্ঠাটি হায়ারার্কি ভিউয়ারের একটি ভূমিকা এবং আপনার লেআউট প্রোফাইল করার জন্য একটি ওয়াকথ্রু প্রদান করে।
সেট আপ করুন
আপনি যদি অ্যান্ড্রয়েড এমুলেটর ব্যবহার করেন তবে আপনি এই বিভাগটি এড়িয়ে যেতে পারেন। অন্যথায়, আপনাকে নিম্নলিখিত হিসাবে আপনার ডিভাইস সেট আপ করতে হবে।
দ্রষ্টব্য: আপনার ডিভাইসটি অবশ্যই Android 4.1 বা উচ্চতর সংস্করণে চলমান হতে হবে৷
- আপনার ডিভাইসে বিকাশকারী বিকল্পগুলি সক্ষম করুন৷
- আপনার ডেভেলপমেন্ট মেশিনে পরিবেশ পরিবর্তনশীল
ANDROID_HVPROTO=ddm
সেট করুন।এই ভেরিয়েবলটি হায়ারার্কি ভিউয়ারকে
ddm
প্রোটোকল ব্যবহার করে ডিভাইসের সাথে সংযোগ করতে বলে, যা ডিডিএমএস প্রোটোকলের মতো। সতর্কতা হল যে হোস্টে শুধুমাত্র একটি প্রক্রিয়া থাকতে পারে যা ডিভাইসের সাথে সংযোগ করে, তাই আপনাকে হায়ারার্কি ভিউয়ার চালানোর জন্য অন্য কোনো ডিডিএমএস সেশন মেরে ফেলতে হবে।
হায়ারার্কি ভিউয়ার শুরু করুন
![](https://developer.android.com/static/images/tools/performance/hierarchy-viewer/gettingstarted_image005.png?authuser=4&hl=bn)
চিত্র 1. অ্যান্ড্রয়েড ডিভাইস মনিটর
- আপনার কম্পিউটার থেকে আপনার ডিভাইসের সাথে সংযুক্ত করুন। যদি ডিভাইসে একটি ডায়ালগ দ্বারা অনুরোধ করা হয় যা জিজ্ঞাসা করে, USB ডিবাগিংয়ের অনুমতি দেবেন? , ঠিক আছে আলতো চাপুন।
- অ্যান্ড্রয়েড স্টুডিওতে আপনার প্রকল্প খুলুন, এটি তৈরি করুন এবং আপনার ডিভাইসে চালান ।
- অ্যান্ড্রয়েড ডিভাইস মনিটর শুরু করুন। অ্যান্ড্রয়েড স্টুডিও একটি ডিসেবল অ্যাডবি ইন্টিগ্রেশন ডায়ালগ দেখাতে পারে কারণ অ্যাডবি-এর মাধ্যমে ডিভাইসের সাথে একবারে একটি প্রক্রিয়া সংযোগ করতে পারে এবং অ্যান্ড্রয়েড ডিভাইস মনিটর একটি সংযোগের অনুরোধ করছে। তাই হ্যাঁ ক্লিক করুন.
চিত্র 1 অ্যান্ড্রয়েড ডিভাইস মনিটরে প্রাথমিকভাবে কী দেখায় তা ব্যাখ্যা করে।
- মেনু বারে, Window > Open Perspective নির্বাচন করুন এবং তারপর Hierarchy View-এ ক্লিক করুন।
আপনি চিত্র 2-এ যা দেখানো হয়েছে তার অনুরূপ একটি ব্যবস্থা দেখতে হবে। যদি না হয়, ডিফল্ট লেআউটে ফিরে যেতে উইন্ডো > রিসেট পরিপ্রেক্ষিত নির্বাচন করুন।
- বাম দিকের উইন্ডোজ ট্যাবে আপনার অ্যাপের প্যাকেজ নামের উপর ডাবল-ক্লিক করুন। এটি আপনার অ্যাপের ভিউ হায়ারার্কি সহ প্যানগুলিকে পপুলেট করে।
সরঞ্জামগুলির সাথে পরিচিত হন
![](https://developer.android.com/static/images/tools/performance/hierarchy-viewer/gettingstarted_image008.png?authuser=4&hl=bn)
চিত্র 2. হায়ারার্কি ভিউয়ার প্যান।
হায়ারার্কি ভিউয়ার নিম্নলিখিত প্যানগুলি প্রদান করে (চিত্র 2 এ দেখানো হয়েছে):
- ট্রি ভিউ (মাঝে): আপনার ভিউ হায়ারার্কির একটি ট্রি ভিউ দেখায়। আপনি আপনার মাউস এবং নীচে জুম নিয়ন্ত্রণ ব্যবহার করে গাছটিকে টেনে আনতে এবং জুম করতে পারেন। প্রতিটি নোড ইঙ্গিত করে যে এটি
View
ক্লাসের নাম এবং আইডি নাম। - ট্রি ওভারভিউ (উপরে ডানদিকে): আপনাকে আপনার অ্যাপের সম্পূর্ণ ভিউ হায়ারার্কির একটি বার্ডস-আই ভিউ দেয়। ট্রি ভিউতে দৃশ্যমান ভিউপোর্ট পরিবর্তন করতে ধূসর আয়তক্ষেত্রটি সরান।
- লেআউট ভিউ (নীচে ডানদিকে): আপনার লেআউটের একটি ওয়্যারফ্রেম ভিউ দেখায়। বর্তমানে নির্বাচিত দৃশ্যের রূপরেখা লাল, এবং এর মূল দৃশ্য হালকা লাল।
এখানে একটি ভিউ ক্লিক করলে এটি ট্রি ভিউতেও নির্বাচন করে এবং এর বিপরীতে।
ভিউ হায়ারার্কি হল লেআউটের একটি স্ন্যাপশট, তাই এটি স্বয়ংক্রিয়ভাবে আপডেট হয় না। হায়ারার্কি ভিউ আপডেট করতে, ভিউ হায়ারার্কি রিলোড করুন ক্লিক করুন .
একটি ভিউ অকার্যকর করতে (অনুরোধ করুন যে সিস্টেমটি পরবর্তী লেআউট আপডেটের সময় onDraw()
কল করুন), অনুক্রমের একটি ভিউ নির্বাচন করুন এবং তারপরে লেআউটটি অবৈধ করুন ক্লিক করুন (এটি ভিউতে
invalidate()
কল করার সমতুল্য)। এবং ভিউ (এবং যেকোনো বাচ্চাদের) আসলে lay out করার অনুরোধ করতে, Request lay out এ ক্লিক করুন .
আপনি যদি একটি ভিন্ন অ্যাপে নেভিগেট করেন, তাহলে আপনাকে অবশ্যই সেটির ভিউ হায়ারার্কি দেখতে বাম ফলকে Windows ট্যাব থেকে সেই অ্যাপটি নির্বাচন করতে হবে।
এর পরিমাপ, বিন্যাস এবং আঁকার সময় সহ ভিউ সম্পর্কে বিশদ দেখতে (চিত্র 3-এ দেখানো হয়েছে), ট্রি ভিউ -তে ভিউটিতে ক্লিক করুন। এটির একটি বর্ধিত চিত্র দেখতে ভিউটিতে ডাবল ক্লিক করুন।
![](https://developer.android.com/static/images/developing/hv_treeview_screenshot.png?authuser=4&hl=bn)
চিত্র 3. ভিউ নোড প্রদর্শনের অংশ।
দৃশ্যের বৈশিষ্ট্যগুলি দেখতে, চিত্র 4-এ দেখানো হিসাবে, বাম ফলকে দেখুন বৈশিষ্ট্য ট্যাবে ক্লিক করুন৷
![](https://developer.android.com/static/images/tools/performance/hierarchy-viewer/gettingstarted_image010.png?authuser=4&hl=bn)
চিত্র 4. দেখুন বৈশিষ্ট্য ট্যাবের অবস্থান।
একটি Adobe Photoshop (PSD) ফাইলে আপনার লেআউটের একটি স্তরযুক্ত স্ক্রিনশট সংরক্ষণ করতে, ক্যাপচার দ্য উইন্ডো স্তরগুলিতে ক্লিক করুন টুলবারে প্রতিটি দৃশ্য তার নিজস্ব স্তর হিসাবে সংরক্ষণ করা হয় যাতে আপনি সহজেই প্রতিটি দৃশ্য লুকিয়ে এবং সামঞ্জস্য করে একটি নতুন উপহাস তৈরি করতে পারেন৷
আপনার লেআউট প্রোফাইল
![](https://developer.android.com/static/images/tools/performance/hierarchy-viewer/gettingstarted_image014.png?authuser=4&hl=bn)
চিত্র 5. প্রোফাইল করার পরে শ্রেণিবিন্যাস দেখুন।
এখন যেহেতু আপনি টুলটির চারপাশে আপনার পথ জানেন, আপনি এটি ব্যবহার করতে পারেন আপনার ভিউ হায়ার্কি প্রোফাইল করতে এবং ফলাফলগুলি ব্যাখ্যা করতে।
- ট্রি ভিউ বা লেআউট ভিউতে , ভিউ নোডে ক্লিক করুন যার বাচ্চাদের আপনি প্রোফাইল করতে চান।
- প্রোফাইলিং শুরু করতে, লেআউট বার পান ক্লিক করুন
ট্রি ভিউ এর শীর্ষে।
বৃহৎ ভিউ অনুক্রমের জন্য, প্রোফাইলিং কয়েক সেকেন্ড সময় নিতে পারে।
আপনার নির্বাচিত নোডের প্রতিটি চাইল্ড ভিউ তিনটি বিন্দু পায়, যা সবুজ, হলুদ বা লাল হতে পারে।
- বাম বিন্দু রেন্ডারিং পাইপলাইনের ড্র প্রক্রিয়া উপস্থাপন করে।
- মাঝের বিন্দুটি লেআউট পর্বের প্রতিনিধিত্ব করে।
- ডান বিন্দু এক্সিকিউট ফেজ প্রতিনিধিত্ব করে।
![](https://developer.android.com/static/images/tools/performance/hierarchy-viewer/gettingstarted_image015.png?authuser=4&hl=bn)
চিত্র 6. রঙিন বিন্দুগুলি কীভাবে সম্পর্কিত
রেন্ডারিং পাইপলাইনে।
এই বিন্দুগুলি মোটামুটিভাবে প্রক্রিয়াকরণ পাইপলাইনের পরিমাপ, বিন্যাস এবং আঁকার পর্যায়গুলির সাথে মিলে যায়। বিন্দুর রঙ স্থানীয় পরিবারের অন্যান্য সমস্ত প্রোফাইল নোডের ক্ষেত্রে এই নোডের আপেক্ষিক কর্মক্ষমতা নির্দেশ করে।
- সবুজ মানে ভিউ অন্য ভিউয়ের অন্তত অর্ধেকের চেয়ে দ্রুত রেন্ডার হয়।
- হলুদ মানে ভিউ অন্য ভিউয়ের নিচের অর্ধেকের চেয়ে দ্রুত রেন্ডার হয়।
- লাল মানে ভিউটি সবচেয়ে ধীরগতির অর্ধেক দর্শনের মধ্যে।
ফলাফল ব্যাখ্যা
হায়ারার্কি ভিউয়ার ভাইবোন ভিউয়ের সাপেক্ষে প্রতিটি নোডের পারফরম্যান্স পরিমাপ করে, তাই প্রোফাইলে সবসময় লাল নোড থাকে-যদি না সমস্ত ভিউ একইভাবে সম্পাদিত হয়- এবং এর মানে এই নয় যে লালটি খারাপভাবে কাজ করছে (শুধুমাত্র এটি সবচেয়ে ধীর দৃশ্য স্থানীয় ভিউ গ্রুপে)।
হায়ারার্কি ভিউয়ার সময় সংক্রান্ত তথ্য পেতে আপনার লেআউটকে রাস্টারাইজ করে। রাস্টারাইজেশন হল একটি উচ্চ-স্তরের আদিম, যেমন একটি বৃত্ত বা একটি ভেক্টর ফন্ট নেওয়া এবং এটিকে স্ক্রিনে পিক্সেলে পরিণত করার প্রক্রিয়া। সাধারণত, আপনার ডিভাইসে জিপিইউ দ্বারা রাস্টারাইজেশন করা হয়, তবে সফ্টওয়্যার রাস্টারাইজেশনের ক্ষেত্রে, রেন্ডারিং সাধারণ সফ্টওয়্যার দিয়ে সিপিইউতে করা হয়। এর মানে হল যে পরম রিপোর্ট করা সময়গুলি একে অপরের সাপেক্ষে সঠিক, কিন্তু ফুলে গেছে এবং আপনার ডিভাইস এবং আপনার ডেভেলপমেন্ট মেশিনে সামগ্রিক এবং পরিবর্তনশীল CPU কাজের চাপের উপর নির্ভর করে পরিবর্তিত হয়। সুতরাং এটি একটি ডিভাইসে বাস্তব-বিশ্বের কর্মক্ষমতা গতি প্রতিফলিত করে না এবং গড় পরিমাপের জন্য ধারণা পেতে আপনার একাধিকবার প্রোফাইল করা উচিত।
আপনার অ্যাপের অপ্রত্যাশিতভাবে ধীর কর্মক্ষমতা আছে এমন যেকোনো পরিস্থিতিতে একটি লাল নোড একটি সম্ভাব্য সমস্যা। একটি আপেক্ষিক সেটিং, সবসময় একটি ধীর নোড আছে; শুধু নিশ্চিত করুন যে এটি আপনার প্রত্যাশিত নোড। নিম্নলিখিত উদাহরণগুলি লাল বিন্দুগুলিকে কীভাবে ব্যাখ্যা করতে হয় তা ব্যাখ্যা করে।
- লিফ নোডগুলিতে লাল বিন্দুগুলি দেখুন বা শুধুমাত্র কয়েকটি বাচ্চার সাথে গ্রুপ দেখুন। এটি একটি সমস্যা নির্দেশ করতে পারে. আপনার অ্যাপটি ধীর নাও হতে পারে, বা এটি আপনার ডিভাইসে ধীর নাও হতে পারে, তবে সেই বিন্দুটি লাল কেন তা আপনাকে সচেতন হতে হবে। সিস্ট্রেস বা ট্রেসভিউ আপনাকে অতিরিক্ত তথ্য দিতে পারে।
- আপনার যদি অনেক বাচ্চাদের সাথে একটি ভিউ গ্রুপ থাকে এবং একটি লাল পরিমাপ পর্যায় থাকে, তাহলে বাচ্চারা কীভাবে পারফর্ম করছে তা দেখতে তাদের দিকে নজর দিন।
- হলুদ বা এমনকি লাল বিন্দু সহ একটি দৃশ্য ডিভাইসে ধীরে ধীরে নাও হতে পারে। যে যেখানে প্রকৃত সংখ্যা সহায়ক. সিস্ট্রেস বা ট্রেসভিউ আপনাকে অতিরিক্ত তথ্য দিতে পারে।
- যদি একটি অনুক্রমের রুট ভিউতে একটি লাল পরিমাপ ফেজ, লাল লেআউট ফেজ এবং হলুদ ড্র ফেজ থাকে, তবে এটি কিছুটা সাধারণ, কারণ এটি অন্যান্য সমস্ত দৃষ্টিভঙ্গির মূল এবং বাচ্চারা শেষ না হওয়া পর্যন্ত এর লেআউট শেষ হয় না।
- যদি 20+ ভিউ সহ একটি গাছের পাতার নোডের একটি লাল ড্র ফেজ থাকে তবে এটি একটি সমস্যা। কোডের জন্য আপনার
onDraw()
পদ্ধতি পরীক্ষা করুন যা সেখানে থাকা উচিত নয়।
আরও লেআউট টিপসের জন্য, লেআউট কর্মক্ষমতা উন্নত করা দেখুন।