الفعاليات والبرامج

التحسين الكامل: اختتام "أسبوع تسليط الضوء على الأداء"

يستغرق الاطِّلاع على المقال 3 دقائق
عرض الملف الشخصي لـ "بن فايس" عرض الملف الشخصي لـ "تشارلز مونغر"
Ben Weiss & Sara Hamilton

لقد أمضينا الأسبوع الماضي في التعرّف على أفضل الممارسات والإرشادات التي تساعد في جعل تطبيقات Android أسرع وأصغر حجمًا وأكثر استقرارًا. بدءًا من الإمكانات الأساسية لأداة التحسين R8 والتحسينات المستندة إلى الملف الشخصي، ووصولاً إلى تحسينات الأداء باستخدام Jetpack Compose، وإلى دليل جديد حول تحسين أداء تطبيقك، وفّرنا لك الأدوات التي تحتاج إليها بجهد أقل وتأثير أكبر لإنشاء تطبيق فعّال.

تعمل هذه المشاركة كفهرس وخارطة طريق لإعادة الاطّلاع على هذه المراجع متى احتجت إلى تحسين الأداء. في ما يلي خمس نقاط رئيسية يمكن استخلاصها من رحلتنا معًا.

استخدام أداة التحسين R8 لتسريع تطبيقك

إنّ التغيير الوحيد الذي يمكنك إجراؤه والذي يحقّق أكبر تأثير بأقل جهد هو تفعيل أداة التحسين R8 بالكامل. ولا يقتصر دورها على تقليل حجم التطبيق، بل تعمل أيضًا على إجراء تحسينات شاملة على البرنامج لإعادة كتابة الرمز البرمجي بشكل أساسي بهدف تحسين الكفاءة. راجِع "قواعد Keep" واستعِد R8 في مهامك الهندسية.

تتوفّر مستندات معدَّلة وموسّعة حول أداة التحسين R8 لمساعدتك في ذلك.

لاحظت منصة Reddit سرعة أكبر بنسبة% 40 في عمليات التشغيل على البارد وانخفاضًا بنسبة% 30 في أخطاء ANR بعد تفعيل الوضع الكامل في R8.

يمكنك الاطّلاع على دراسة الحالة الكاملة في مدوّنتنا.

image.png

يستثمر المهندسون في Disney+ في أداء التطبيق ويعملون على تحسين تجربة المستخدم. في بعض الأحيان، يمكن أن تحدث تغييرات كبيرة حتى عند إجراء تعديلات بسيطة. أثناء فحص إعدادات R8، تبيّن للفريق أنّه يتم استخدام العلامة -dontoptimize. بعد تفعيل التحسينات من خلال إزالة هذا الخيار، لاحظ فريق Disney+ تحسّنات كبيرة في أداء التطبيق.

image.png

لذا، في المرة القادمة التي يسألك فيها أحد الأشخاص عن الإجراءات التي يمكنك اتّخاذها لتحسين أداء التطبيق، ما عليك سوى إرسال رابط هذه المشاركة إليه.

مزيد من المعلومات في مدوّنة اليوم الأول: استخدام أداة R8 لتقليل حجم تطبيقك وتحسينه وتسريع عملية إنشائه

توجيهك لتحقيق أداء أفضل

تزيل ملفات Baseline Profiles بشكل فعّال الحاجة إلى تجميع Just-in-Time، ما يؤدي إلى تحسين سرعة بدء التشغيل والتمرير والرسوم المتحركة وأداء العرض العام. تساهم ملفات تعريف بدء التشغيل في جعل عملية بدء تشغيل التطبيق أكثر سلاسة من خلال ترتيب ملفات classes.dex في تطبيقك ترتيبًا ذكيًا.

ولمعرفة المزيد عن أهمية "ملفات Baseline" في أداء التطبيقات، يمكنك الاطّلاع على مدونة الهندسة في Meta التي شاركت فيها كيف ساهمت "ملفات Baseline" في تحسين العديد من مقاييس الأداء المهمة بنسبة تصل إلى%40 في جميع تطبيقاتها.

نواصل تحسين أداء Jetpack Compose في الإصدار 1.10. تُعدّ الميزات، مثل التركيب القابل للإيقاف المؤقت ونافذة ذاكرة التخزين المؤقت القابلة للتخصيص، ضرورية للحفاظ على عدم حدوث أي إيقاف مؤقت لعرض واجهة المستخدم عند التمرير عند التعامل مع عناصر القوائم المعقّدة.يمكنك الاطّلاع على أحدث حلقة من برنامج #TheAndroidShow حيث نوضّح ذلك بتفصيل أكبر.

مزيد من المعلومات في مدوّنتنا المنشورة يوم الأربعاء: اعتبارات أعمق بشأن الأداء

قياس الأداء في 3 خطوات بسيطة

لا يمكنك إدارة ما لا تقيسه. يقدّم دليل تسوية الأداء شرحًا تفصيليًا لرحلة القياس في خمس خطوات، بدءًا من البيانات المتاحة بسهولة وصولاً إلى الأدوات المحلية المتقدّمة.

سنعلّمك في المستوى 1 كيفية استخدام البيانات المتاحة بسهولة من مؤشرات Android الحيوية التي توفّر لك بيانات ميدانية عن أخطاء ANR والأعطال والاستخدام المفرط للبطارية.

سنعلّمك أيضًا كيفية تحسين مستوى حسابك. على سبيل المثال، سنشرح كيفية الوصول إلى المستوى 3 من خلال اختبار الأداء المحلي باستخدام Jetpack Macrobenchmark وUiAutomator 2.4 API الجديدين لقياس أي تغيير في أداء تطبيقك والتحقّق منه بدقة.

مزيد من المعلومات في مدونتنا المنشورة يوم الخميس: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

تحسينات على تصحيح أخطاء الأداء

لا يجب أن يؤدي التحسين المتقدّم إلى عدم إمكانية قراءة تقارير الأعطال. تم تصميم ميزات جديدة لمساعدتك في تصحيح أخطاء R8 والعمل في الخلفية بثقة:

إعادة تتبُّع Logcat تلقائيًا

بدءًا من استوديو Android Narwhal، يمكن إزالة التشويش عن عمليات تتبُّع تسلسل استدعاء الدوال البرمجية تلقائيًا في نافذة "أداة Logcat". بهذه الطريقة، يمكنك الاطّلاع على أي أعطال وتصحيح أخطائها على الفور في إصدار جاهز للإنتاج.

قواعد الاحتفاظ بالبيانات بشكل محدود

في يوم الثلاثاء، أزلنا الغموض عن قواعد Keep اللازمة لإصلاح الأعطال أثناء وقت التشغيل، مع التركيز على كتابة قواعد محدّدة على مستوى الأعضاء بدلاً من أحرف البدل الواسعة النطاق. وبما أنّ هذا الموضوع مهم، أعددنا لك فيديو أيضًا.

وبفضل عملية التحقّق الجديدة المستندة إلى أداة Lint لقواعد Keep الواسعة النطاق، يوفّر لك الإصدار 3 من Otter في "استوديو Android" كل ما تحتاجه أيضًا.

image.png

لقد طرحنا أيضًا إرشادات جديدة حول الاختبار وتحديد المشاكل وحلّها في إعدادات R8 لمساعدتك في ضبط الإعدادات بشكل صحيح وبثقة.

مزيد من المعلومات في منشور المدوّنة الذي نشرناه يوم الثلاثاء: إعداد قواعد الاحتفاظ ببيانات R8 وحلّ المشاكل المتعلّقة بها

العمل في الخلفية

شاركنا إرشادات حول تصحيح الأخطاء في السيناريوهات الشائعة التي قد تواجهها عند جدولة المهام باستخدام WorkManager.

تمنحك أداة فحص المهام في الخلفية تمثيلاً مرئيًا وعرضًا بيانيًا لمهام WorkManager، ما يساعد في تصحيح الأخطاء المتعلقة بتأخُّر أو تعذُّر تنفيذ المهام المُجدوَلة. وتسلّط الصفحة المقصودة الجديدة لمستندات "العمل في الخلفية" الضوء على واجهات برمجة التطبيقات الخاصة بمهام معيّنة والمحسَّنة لحالات استخدام محدّدة، ما يساعدك في تنفيذ المهام بشكل أكثر موثوقية.
 

مزيد من المعلومات في منشور المدوّنة الذي نشرناه يوم الأربعاء: اعتبارات أداء العمل في الخلفية

تحسين الأداء هو رحلة مستمرة

إذا نجحت في إكمال التحدي الذي أطلقناه هذا الأسبوع لتفعيل الوضع الكامل من R8، ستكون خطوتك التالية هي دمج الأداء في خطة تحقيق أهداف منتجك باستخدام نتيجة أداء التطبيق. يساعدك هذا الإطار الموحّد في العثور على أهمّ إجراءات التحسين المستمر.

اختتمنا الأسبوع بجلسة #AskAndroid Live للإجابة عن الأسئلة، حيث أجاب المهندسون عن أصعب أسئلتكم حول R8 و"تحسينات مستندة إلى الملف الشخصي" وغير ذلك. إذا فاتك البث، يمكنك مشاهدة إعادة البث.

نشكرك على انضمامك إلينا. حان الوقت الآن للبدء في الإنشاء والحفاظ على هذا الزخم.

من تأليف:
متابعة القراءة