Improving Layout Performance - تحسين اداء الواجهات
layout هي مفتاح تطبيقات الاندرويد التي لها تأثير مباشر على تجربة المستخدم UX اذا كانت سيئة التنفيذ يمكن ان تؤدي الى استهلاك الذاكرة
وهنا سوف نتكلم عن كيف تكون الواجهات سلسة وتاخذ مساحة قليلة من الذاكرة
وهنا سوف نتكلم عن كيف تكون الواجهات سلسة وتاخذ مساحة قليلة من الذاكرة
الدرس الاول
1. تحسين التسلسل الهرمي للواجهات - Optimizing Layout Hierarchies
هو نفس فكره صفاح الويب المعقدة تأخذ وقت في التحميل , فأن التسلسل الهرمي اذا كان معقد جدا يمكن ا يسبب مشاكل في الاداء
من المفاهيم الخاطئه الشائعة الن استخدام layout بسيطة يؤدي الى كفاءه اكثر
على كل حال عند layout او widget تظيفها الى التطبيق الخاص بك تتطلب تهيئه و تخطيط و رسم مثلا
عند انشاء linearLayout متداخلة هذا يودي الى تسلسل هرمي عميق للغاية وعلاوة على ذلك عند استخدام مثلا layout_weight يمكن ان يكون مكلف جدا حيث يحتاج كل layout ابن لقياس مرتين وخاصتا عند استخدام layoutInflater مرارا وتكرارا
1. فحص الواجهات
يحتوي android SDK على اداة hierarvhy view تساعد على تحليل layout عند تشغيل التطبيق تستخدم لاكتشاف الاخطاء واختناقات الاداء
تعمل هذه الاداة على تحديد عمليات التشغيل على الجهاز الحقيقي او المحاكي ثم عرض شجرة layout
على سبيل المثال :
اذا كن لدينا هذه layout تحتوي علي ImageView و TextVliew على هذا الشكل
hierarchy Viewer tool توجد في Android Device Monitor
اختار منها windows واضغط على herarchy viewer
سوف يظهر هذا المخطط
2.مراجعة layout الخاص بك
بلنظر الى الصوره السابقه يمكن ملاحظه التداخل في layout هنا يمكن تحسين ذلك من خلال تسطيح المخطط وهذا بستعمال RelativeLayout التي تمكن من انشاء مخطط مستوى 2 بدل 3 حسب الصوره التاليه :
فائده قليلة كما تبدو ولكن هذا قد يتم ضربة عده مرات عند استخدام listView
في بعض layout المعقده قد يحتاج النظام قياس عنصر في واجهة المستخدم لاكثر من مره وهذا يسمى double taxation لمزيد من المعلومات راجع Performance and View Hierarchies
3 . استخدام lint
من الافضل دائما تشغيل الاداة للبحث عن تحسينات على التسلسل الهرمي
اضافه الاداة
File>Settings>Project Settings
File>Settings>Project Settings
بعض الأمثلة على قواعد lint
- layout عديمة الفائدة : اذا كانت layout لاتحتوي على ابناء تكون غير مرئية اي عديمة الفائدة
- اب عديم الفائدة : اذا كان الابن ليس لدية اخوان يكون الاب عديم الفائدة
- عمق layout : العمق الزائد عن المعقول سيء للاداء ( العمق الافتراضي هو 10 )
تعليقات
إرسال تعليق