تم إيقاف "عارض التسلسل الهرمي" نهائيًا. إذا كنت تستخدم الإصدار 3.1 من استوديو Android أو إصدار أحدث، عليك استخدام أداة فحص التنسيق بدلاً من ذلك لفحص هيكلية طرق عرض تطبيقك في وقت التشغيل. لتحديد سرعة عرض تنسيق تطبيقك، استخدِم Window.OnFrameMetricsAvailableListener كما هو موضح في مشاركة المدونة هذه.
"عارض التسلسل الهرمي" هو أداة مدمَجة في Android Device Monitor تسمح لك بقياس سرعة التنسيق لكل طريقة عرض في التسلسل الهرمي للتخطيط. يمكن أن يساعدك في العثور على المؤثِّرات السلبية في الأداء الناتجة عن هيكل التسلسل الهرمي لطريقة العرض.
ملاحظة: لم يعد "عارض التسلسل الهرمي" قيد التطوير. ولفحص الخصائص في التسلسل الهرمي لطريقة العرض في وقت التشغيل، عليك بدلاً من ذلك استخدام أداة فحص التنسيق في "استوديو Android". ومع ذلك، لا توفر أداة Layout Inspector (أداة فحص التخطيط) حاليًا تفاصيل ملفات تعريفية حول أداء التخطيط.
توفر هذه الصفحة مقدمة عن "عارض التسلسل الهرمي" وجولة تفصيلية حول تحديد ملامح التخطيط لديك.
الإعداد
إذا كنت تستخدم محاكي Android، فيمكنك تخطي هذا القسم. بخلاف ذلك، ستحتاج إلى إعداد جهازك على النحو التالي.
ملاحظة: يجب أن يعمل جهازك بنظام التشغيل Android 4.1 أو بإصدار أحدث.
- فعِّل خيارات المطوّرين على جهازك.
- اضبط متغيّر البيئة
ANDROID_HVPROTO=ddm
على جهاز التطوير.يطلب هذا المتغيّر من "عارض التسلسل الهرمي" الاتصال بالجهاز باستخدام بروتوكول
ddm
، وهو بروتوكول DDMS نفسه. ونذكّرك بأنّه لا يمكن أن يكون هناك أكثر من عملية واحدة على المضيف تتصل بالجهاز، لذا يجب إنهاء أي جلسة DDMS أخرى لتشغيل "عارض التسلسل الهرمي".
بدء عارض التسلسل الهرمي
![](https://developer.android.google.cn/static/images/tools/performance/hierarchy-viewer/gettingstarted_image005.png?authuser=7&hl=ar)
الشكل 1. شاشة جهاز Android
- ربط جهازك بجهاز الكمبيوتر. إذا ظهر لك مربّع حوار على الجهاز يعرض الرسالة هل تريد السماح بتصحيح أخطاء الجهاز عبر USB؟، انقر على حسنًا.
- افتح مشروعك في "استوديو Android" وأنشئه وشغِّله على جهازك.
- شغِّل Android Device Monitor.
قد يعرض "استوديو Android" مربّع الحوار إيقاف دمج Adb لأنّه يمكن لعملية واحدة فقط
الاتصال بالجهاز من خلال Adb في الوقت نفسه، وعندما تطلب أداة Android Device Monitor الاتصال.
انقر على نعم.
يوضّح الشكل 1 ما يظهر مبدئيًا في شاشة جهاز Android.
- في شريط القوائم، اختَر نافذة > فتح منظور، ثم انقر على العرض الهرمي.
من المفترض أن ترى ترتيبًا مشابهًا لما هو موضح في الشكل 2. وإذا لم يكن الأمر كذلك، اختَر نافذة > إعادة ضبط المنظور للعودة إلى التنسيق التلقائي.
- انقر مرّتين على اسم حزمة التطبيق في علامة التبويب Windows على يمين الصفحة. يؤدي ذلك إلى تعبئة الأجزاء بالتسلسل الهرمي لعرض تطبيقك.
التعرف على الأدوات
![](https://developer.android.google.cn/static/images/tools/performance/hierarchy-viewer/gettingstarted_image008.png?authuser=7&hl=ar)
الشكل 2. لوحات عرض التسلسل الهرمي.
يوفر عارض التسلسل الهرمي الأجزاء التالية (كما هو موضح في الشكل 2):
- العرض التدرّجي للحساب (في الوسط): يؤدي إلى هذا الخيار من العرض التدرّجي للحساب.
يمكنك سحب الشجرة وتكبيرها أو تصغيرها باستخدام الماوس وعناصر التحكم في التكبير أو التصغير في الأسفل.
تشير كل عقدة إلى أنها اسم فئة
View
ورقم تعريف. - نظرة عامة على الشجرة (في أعلى يسار الصفحة): تمنحك نظرة شاملة على التسلسل الهرمي الكامل لعرض تطبيقك. حرِّك المستطيل الرمادي لتغيير إطار العرض الذي يظهر في العرض التدرّجي للحساب.
- عرض التنسيق (أسفل يسار الصفحة): يؤدي إلى إظهار عرض الإطار الشبكي للتنسيق.
يكون مخطط العرض المحدد حاليًا باللون الأحمر، والعرض الرئيسي باللون الأحمر الفاتح.
يؤدي النقر على عرض هنا إلى اختياره أيضًا في العرض التدرّجي للحساب، والعكس صحيح.
العرض الهرمي لطريقة العرض هو لقطة من التخطيط، لذا لا يتم تحديثه تلقائيًا.
لتعديل العرض الهرمي، انقر على إعادة تحميل التدرّج الهرمي لطريقة العرض
.
لإلغاء صلاحية طريقة عرض (اطلب من النظام استدعاء onDraw()
أثناء تحديث التنسيق التالي)، اختَر طريقة عرض في التدرج الهرمي، ثم انقر على إلغاء صلاحية التنسيق
(يعادل ذلك طلب
invalidate()
على طريقة العرض).
ولطلب تخطيط المحتوى (وأي إطارات فرعية منه)، انقر على طلب تنسيق
.
إذا انتقلت إلى تطبيق مختلف، يجب عليك تحديد هذا التطبيق من علامة التبويب Windows في الجزء الأيمن لعرض التسلسل الهرمي لطريقة العرض.
للاطّلاع على تفاصيل حول العرض، بما في ذلك أوقات القياس والتخطيط والرسم (كما هو موضّح في الشكل 3)، انقر على العرض في العرض التدرّجي للحساب. انقر مرّتين على العرض للاطلاع على صورة مكبرة له.
![](https://developer.android.google.cn/static/images/developing/hv_treeview_screenshot.png?authuser=7&hl=ar)
الشكل 3. أجزاء من عرض عقدة العرض.
للاطّلاع على خصائص الملف الشخصي، انقر على علامة التبويب خصائص الملف الشخصي في اللوحة اليمنى، كما هو موضّح في الشكل 4.
![](https://developer.android.google.cn/static/images/tools/performance/hierarchy-viewer/gettingstarted_image010.png?authuser=7&hl=ar)
الشكل 4. موقع علامة التبويب عرض الخصائص.
لحفظ لقطة شاشة ذات طبقات لتنسيق موقعك في ملف Adobe Photoshop (PSD)، انقر على رمز
التقاط طبقات النافذة في شريط الأدوات. يتم حفظ كل طريقة عرض كطبقتها الخاصة حتى تتمكن بسهولة
من إنشاء نموذج تجريبي جديد عن طريق إخفاء وضبط كل طريقة عرض.
تصنيف التخطيط الخاص بك
![](https://developer.android.google.cn/static/images/tools/performance/hierarchy-viewer/gettingstarted_image014.png?authuser=7&hl=ar)
الشكل 5. يمكنك الاطّلاع على التدرّج الهرمي بعد إنشاء المواصفات الشخصية.
الآن بعد أن عرفت طريقك في الأداة، يمكنك استخدامها لتحليل التسلسل الهرمي للعرض وتفسير النتائج.
- في العرض التدرّجي للحساب أو عرض التنسيق، انقر على عقدة العرض التي تريد تخصيص عناصرها الثانوية.
- لبدء التحليل، انقر على الحصول على أوقات التنسيق
في أعلى العرض التدرّجي للحساب.
بالنسبة إلى هيكلية طرق العرض الكبيرة، قد يستغرق إنشاء المواصفات بضع ثوانٍ.
يحصل كل عرض ثانوي للعُقدة المحددة على ثلاث نقاط، والتي يمكن أن تكون خضراء أو صفراء أو حمراء.
- وتمثِّل النقطة اليسرى عملية الرسم لمسار العرض.
- تمثل النقطة الوسطى مرحلة التنسيق.
- تمثِّل النقطة اليمنى مرحلة التنفيذ.
![](https://developer.android.google.cn/static/images/tools/performance/hierarchy-viewer/gettingstarted_image015.png?authuser=7&hl=ar)
الشكل 6. طريقة ارتباط النقاط الملوّنة
بمسار العرض
تتوافق هذه النقاط تقريبًا مع مراحل القياس والتخطيط والرسم في مسار المعالجة. يشير لون النقاط إلى الأداء النسبي لهذه العقدة في ما يتعلق بجميع العُقد الأخرى ذات التفاصيل في العائلة المحلية.
- يشير اللون الأخضر إلى أنّه يتم عرض المحتوى بشكل أسرع من نصف المشاهدات الأخرى على الأقل.
- يشير اللون الأصفر إلى أنّه يتم عرض المحتوى بشكل أسرع من النصف الأسفل من الملفات الشخصية الأخرى.
- يشير اللون الأحمر إلى أنّ المشاهدة تكون من بين أبطأ نصف المشاهدات.
تفسير النتائج
يقيس عارض التسلسل الهرمي أداء كل عقدة مقارنةً بالملفات الشخصية التابعة، لذلك تكون هناك دائمًا عُقد حمراء في الملف الشخصي، ما لم يكن أداء جميع المشاهدات متطابقًا، ولا يعني ذلك بالضرورة أنّ أداء الحلقة الحمراء (فقط طريقة العرض الأبطأ في مجموعة الملفات الشخصية المحلية).
يُجري "عارض التسلسل الهرمي" صورة نقطية للتنسيق للحصول على معلومات التوقيت. التحويل النقطي هو عملية تحويل عنصر أساسي عالي المستوى، مثل دائرة أو خط متّجه، إلى وحدات بكسل على الشاشة. يتم إجراء المسح النقطي عادةً بواسطة وحدة معالجة الرسومات على جهازك، ولكن في حال تنقيط البرامج، يتم العرض على وحدة المعالجة المركزية (CPU) باستخدام برامج عادية. وهذا يعني أنّ التوقيتات المطلقة التي يتم الإبلاغ عنها صحيحة بالنسبة إلى بعضها البعض، ولكنها متضخمة وتختلف حسب عبء عمل وحدة المعالجة المركزية (CPU) الإجمالي والمتغير على جهازك وجهاز التطوير. لذا، فإنّه لا يعكس سرعات الأداء الفعلية على الجهاز، وعليك شرح هذه الوتيرة عدة مرات لفهم متوسط القياسات.
العُقدة الحمراء هي مشكلة محتملة في أي موقف يكون فيه أداء تطبيقك بطيئًا بشكل غير متوقع. في الإعداد النسبي، توجد دائمًا عقدة أبطأ، ولكن تأكد من أنها العقدة التي تتوقعها. توضّح الأمثلة التالية كيفية تفسير النقاط الحمراء.
- ابحث عن النقاط الحمراء في العقدة الطرفية أو ابحث عن المجموعات التي لديها عدد قليل من الأطفال. قد يشير ذلك إلى مشكلة. قد لا يكون تطبيقك بطيئًا أو قد لا يكون بطيئًا على جهازك، ولكن عليك معرفة سبب ظهور هذه النقطة باللون الأحمر. ويمكن أن تقدّم لك Systrace أو Traceview معلومات إضافية.
- إذا كانت لديك مجموعة مشاهدة تضم العديد من الأطفال ومرحلة إجراء قياس حمراء، ألقِ نظرة على الأطفال لمعرفة مستوى أدائهم.
- قد لا يعمل العرض الذي يحتوي على نقاط صفراء أو حتى حمراء ببطء على الجهاز. هذا هو المكان الذي تكون فيه الأرقام الفعلية مفيدة. ويمكن أن تقدّم لك Systrace أو Traceview معلومات إضافية.
- إذا كان العرض الجذري للتدرّج الهرمي يتضمّن مرحلة قياس حمراء ومرحلة تصميم باللون الأحمر ومرحلة رسم باللون الأصفر، هذا الأمر معتاد إلى حدّ ما لأنّه الحساب الرئيسي لجميع طرق العرض الأخرى ولا يكتمل تنسيقه إلا بعد انتهاء العناصر الثانوية.
- إذا كانت عقدة ورقة شجر في شجرة لها أكثر من 20 مشاهدة، تتضمن مرحلة رسم باللون الأحمر، يشكّل ذلك مشكلة. تحقَّق من طريقة
onDraw()
للحصول على رمز غير مضمَّن.
للمزيد من النصائح حول التنسيق، يُرجى الاطّلاع على القسم تحسين أداء التنسيق.