WindowManager ডাম্প একটি নির্দিষ্ট সময়ে WindowManager-এর একটি স্ন্যাপশট প্রদান করে। WindowManager ট্রেস রাজ্যগুলির একটি কালানুক্রমিক ক্রম বৈশিষ্ট্য যা একটি উইন্ডো কেন পর্দায় প্রদর্শিত হয়, এর কনফিগারেশন, বা এর কার্যকলাপ, কার্য, প্রদর্শন বা WindowManager অনুক্রমের অন্য কোনো উপাদানের মূল্যবান অন্তর্দৃষ্টি প্রদান করে। এই তথ্য সমস্যা সমাধানের জন্য দরকারী যেমন আমার অ্যাপ কেন দৃশ্যমান নয় বা অ্যাপগুলির মধ্যে পরিবর্তন করার সময় আমি ঝিকিমিকি অনুভব করেছি ।
Winscope এর WindowManager ভিউয়ার ট্রেস এবং ডাম্প উভয়ের জন্য এই তথ্য প্রদর্শন করে।
ট্রেস সংগ্রহ সম্পর্কে আরও তথ্যের জন্য WindowManager দেখুন।
চিত্র 1. উইন্ডো ম্যানেজার ট্রেস বিশ্লেষণ।
পর্দার বাম দিকে উইন্ডোগুলির একটি 3D ভিউ রয়েছে৷ রেক্টস ভিউ উইন্ডো বাউন্ড, জেড-অর্ডার এবং অপাসিটি বিবেচনা করে।
ট্যাবের সেন্ট্রাল সেগমেন্ট উইন্ডো হায়াররাকি দেখায়। উইন্ডোজ, ক্রিয়াকলাপ এবং কার্যগুলির মধ্যে পিতামাতা-সন্তানের সম্পর্ক ছাড়াও, এই দৃশ্যে নিম্নলিখিত তথ্যও অন্তর্ভুক্ত রয়েছে:
- V: দৃশ্যমান উইন্ডো শনাক্ত করে।
স্ক্রিনের ডানদিকে সমস্ত উপলব্ধ বৈশিষ্ট্যগুলির একটি প্রোটো ডাম্প রয়েছে৷ প্রোটো ডাম্প বিভাগের বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য বৈশিষ্ট্যগুলি দেখুন।
@IntDef অনুবাদ
@IntDef
অনুবাদ হল WindowManager বৈশিষ্ট্য প্যানেলের একটি মূল বৈশিষ্ট্য। @IntDef
নির্দেশ করে যে পূর্ণসংখ্যা টাইপের টীকাযুক্ত উপাদান একটি লজিক্যাল টাইপ প্রতিনিধিত্ব করে এবং এর মান অবশ্যই স্পষ্টভাবে নামযুক্ত ধ্রুবকগুলির মধ্যে একটি হতে হবে। @IntDef
মেমরি এবং কর্মক্ষমতা প্রভাব কমানোর জন্য enums এর পরিবর্তে Android কোডবেসের মধ্যে ব্যবহার করা হয়।
নিম্নলিখিত @IntDef ব্যবহারের একটি উদাহরণ:
/**
* The modes to control how root task is moved to the front when calling {@link Task#reparent}.
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef({
REPARENT_MOVE_ROOT_TASK_TO_FRONT,
REPARENT_KEEP_ROOT_TASK_AT_FRONT,
REPARENT_LEAVE_ROOT_TASK_IN_PLACE
})
@interface ReparentMoveRootTaskMode {}
// Moves the root task to the front if it was not at the front
static final int REPARENT_MOVE_ROOT_TASK_TO_FRONT = 0;
// Only moves the root task to the front if it was focused or frontmost already
static final int REPARENT_KEEP_ROOT_TASK_AT_FRONT = 1;
// Do not move the root task as a part of reparenting
static final int REPARENT_LEAVE_ROOT_TASK_IN_PLACE = 2;
পতাকাগুলি মানব-পাঠযোগ্য মান ব্যবহার করার পরিবর্তে পূর্ণসংখ্যা হিসাবে সংরক্ষণ করা হয়, যা ব্যাখ্যা করা চ্যালেঞ্জিং হতে পারে। Winscope এই পতাকাগুলিকে @IntDef
সংজ্ঞা ব্যবহার করে মানব-পঠনযোগ্য মানগুলিতে অনুবাদ করে। সংকলনের সময়, উইনস্কোপ @IntDef
মানগুলির একটি অভিধান সংগ্রহ করে এবং রানটাইমে মানব-পাঠযোগ্য বিন্যাসে @IntDef
উদাহরণগুলিকে ডিকোড করতে এই তালিকাটি ব্যবহার করে। উদাহরণস্বরূপ, 2
এর activityType
সহ একটি কার্যকলাপ ACTIVITY_TYPE_HOME
এর activityType
প্রকারে অনুবাদ করা হয়। একইভাবে, flags=2173763840
সহ একটি উইন্ডো উইনস্কোপে এইভাবে অনুবাদ করা হয়েছে:
flags=FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | FLAG_HARDWARE_ACCELERATED | FLAG_SPLIT_TOUCH | FLAG_SHOW_WALLPAPER | FLAG_LAYOUT_INSET_DECOR | FLAG_LAYOUT_IN_SCREEN
যদি Winscope একটি @IntDef
উদাহরণ সঠিকভাবে অনুবাদ না করে, তাহলে Winscope দ্বারা পরিচিত @IntDef
দৃষ্টান্তগুলির তালিকা আপডেট করতে আপডেট @IntDef ম্যাপিংয়ের ধাপগুলি অনুসরণ করুন৷