أفضل الممارسات لتحسين التطبيقات

تساعد أفضل الممارسات التالية في تحسين تطبيقك بدون التأثير في الجودة.

استخدام الملفات الشخصية المرجعية

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

استخدام ملف شخصي لبدء التشغيل

يتشابه الملف الشخصي لبدء التشغيل مع "الملف الشخصي الأساسي"، ولكن يتم تشغيله في وقت التجميع لتحسين تخطيط DEX لبدء تشغيل أسرع للتطبيق.

استخدام مكتبة App Startup

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

التحميل الكسول للمكتبات أو إيقاف التهيئة التلقائية

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

استخدام ViewStubs

ViewStub هي أداة غير مرئية بحجم صفري View ويمكنك استخدامها لتضخيم موارد التصميم ببطء في وقت التشغيل. ويتيح لك ذلك تأخير تضخيم عدد المشاهدات التي ليست ضرورية عند بدء التشغيل حتى وقت لاحق.

إذا كنت تستخدم Jetpack Compose، يمكنك اتّباع سلوك مشابه لـ ViewStub باستخدام الحالة لتأجيل تحميل بعض المكونات:

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

تحميل العناصر القابلة للتعديل داخل الكتلة الشرطية عن طريق تعديل shouldLoad:

LaunchedEffect(Unit) {
   shouldLoad = true
}

يؤدي هذا إلى تشغيل إعادة تركيب تتضمن التعليمة البرمجية داخل الكتلة الشرطية في المقتطف الأول.

تحسين شاشة البداية

شاشات البداية هي جزء رئيسي من بدء تشغيل التطبيق، ويمكن أن يساعد استخدام شاشة بداية مصممة جيدًا في تحسين تجربة بدء تشغيل التطبيق بشكل عام. يتضمّن Android 12 (المستوى 31 من واجهة برمجة التطبيقات) والإصدارات الأحدث شاشة بداية مصمَّمة لتحسين الأداء. لمزيد من المعلومات، راجع شاشة البداية.

استخدام أنواع صور قابلة للتطور

ونقترح استخدام أدوات رسم المتّجهات للصور. استخدِم صور WebP عندما لا يكون ذلك ممكنًا. تنسيق WebP هو تنسيق صور يوفّر ضغطًا فائقًا بدون فقدان البيانات للصور على الويب. يمكنك تحويل صور BMP أو JPG أو PNG أو GIF ثابتة حالية إلى تنسيق WebP باستخدام "استوديو Android". ولمزيد من المعلومات، يُرجى الاطّلاع على إنشاء صور WebP.

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

استخدام واجهة برمجة تطبيقات الأداء

تتوفّر واجهة برمجة التطبيقات Performance API لتشغيل الوسائط على نظام التشغيل Android 12 (المستوى 31 من واجهة برمجة التطبيقات) والإصدارات الأحدث. يمكنك استخدام واجهة برمجة التطبيقات هذه لفهم إمكانات الجهاز وتنفيذ العمليات وفقًا لذلك.

منح الأولوية لتتبُّع بدء التشغيل على البارد

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