يُعدّ وقت استجابة بدء التشغيل مقياسًا مهمًا للاحتفاظ بالمستخدمين النشطين يوميًا وضمان تجربة سلسة للمستخدم من التفاعل الأول. وهذا صحيح بشكل خاص في بيئات ذاكرة الوصول العشوائي المنخفضة حيث يمكن مراعاة المفاضلات في الأداء. ومع ذلك، قبل البدء في تحسين بدء تشغيل التطبيق، من المهم فهم الجوانب الأساسية التي تساهم في بدء تشغيل التطبيق نفسه.
أفضل الممارسات
الشحن باستخدام ملف شخصي للمرجع
تعمل الملفات الشخصية الأساسية على تحسين سرعة تنفيذ الرموز بنسبة% 30 تقريبًا منذ عملية الإطلاق الأولى، وذلك من خلال تجنُّب التفسير وخطوات التجميع في الوقت المناسب للمسارات المضمَّنة في الرموز. من خلال إضافة ملف شخصي أساسي إلى أحد التطبيقات، يمكن لتطبيق Android Runtime (ART) تحسين مسارات الرموز المضمّنة من خلال تجميع البيانات المجمّعة مسبقًا (AOT)، ما يؤدي إلى تحسين الأداء لكل مستخدم جديد ومع كل تحديث للتطبيق.
تجنُّب الإعداد المتحرِّك
تجنَّب القيام بعمل حريص قد لا يكون ضروريًا في تسلسل بدء تشغيل التطبيق.
السيناريو الأكثر ترجيحًا لبدء تطبيقك هو إطلاق التطبيق، إلا أنّ
WorkManager
وJobScheduler
وBroadcastRewardr والخدمات
المرتبطة ومكتبة بدء التشغيل في AndroidX
يمكنهم أيضًا بدء عمليات التطبيق في الخلفية. وإذا أمكن، تجنَّب إعداد أي طلب غير ضروري
في صف Application
. تقدم الكثير من المكتبات تهيئة عند الطلب، مما يتيح لك استدعائها عند الضرورة فقط.
نقل المهام من سلسلة محادثات واجهة المستخدم إلى سلسلة محادثات في الخلفية
إذا كانت هناك مهام تستغرق وقتًا أطول وتحظر سلسلة التعليمات الرئيسية، يمكنك نقلها إلى سلسلة محادثات في الخلفية أو استخدام WorkManager لضمان كفاءة سلسلة التعليمات الرئيسية. تحديد العمليات التي تستغرق أطرًا زمنية كبيرة أو تستهلك وقتًا أكثر من المتوقع. يمكن أن يساعد تحسين هذه المهام في تحسين وقت الاستجابة عند بدء التشغيل بشكل كبير.
تحليل التنافس الشديد على قراءة القرص وإصلاحه
StrictMode هو أداة لمطوّري البرامج يمكنها المساعدة في اكتشاف الاستخدام غير المقصود للوصول إلى القرص أو الشبكة على سلسلة التعليمات الرئيسية للتطبيق، حيث يتم استلام عمليات واجهة المستخدم وحدوث صور متحركة. وبمجرد أن تكتشف الأداة مجالاً محتملاً للتحسين، يمكنك إنهاء التطبيق تلقائيًا أو تسجيل الانتهاك لمزيد من الفحص في وقت لاحق.
تجنب عناوين IPC المتزامنة
غالبًا ما تحدث فترات الإيقاف المؤقت الطويلة لتنفيذ تطبيقك بسبب طلبات الصنف Binder، وهي آلية الاتصال بين العمليات (IPC) في Android. في الإصدارات الحديثة من نظام التشغيل Android، يُعد أحد الأسباب الأكثر شيوعًا لتوقف تشغيل سلسلة واجهة المستخدم. بشكل عام، يكمن الحل في تجنب استدعاء الدوال التي تجري استدعاءات المجلَّد؛ وإذا كان لا يمكن تجنبه، ينبغي لك تخزين القيمة مؤقتًا، أو نقل العمل إلى سلاسل الترابط في الخلفية. لمزيد من المعلومات، يُرجى الاطّلاع على التأخيرات في جدولة سلسلة المحادثات.