يُعدّ الأداء على Wear OS من الاعتبارات الأساسية عند تصميم التطبيقات، لأنّ العديد من أجهزة Wear OS تتضمّن موارد محدودة لوحدة المعالجة المركزية ووحدة معالجة الرسومات مقارنةً بالأجهزة الجوّالة الأكبر حجمًا. مع طرح رسومات متحركة أكثر ثراءً وتأثيرات ديناميكية في Material 3 Expressive، عليك التحقّق من صحة سير العمل الرئيسية في تطبيقك وتحسين أدائها.
استخدِم دليل الأداء في Jetpack Compose لإعداد تطبيقك وتطويره لتحقيق الأداء الأمثل باستخدام Jetpack Compose. يسلّط هذا المستند الضوء على بعض الأساليب الموضّحة هناك.
عليك أيضًا إنشاء استراتيجيات لقياس الأداء واتّباعها للتأكّد من أنّ التقنيات الواردة في هذا المستند تعمل على النحو المتوقّع في تطبيقك.
تقنيات أساسية لتحسين الأداء
ابدأ بأنواع أدوات الأداء الأكثر تأثيرًا، وهي: ملفات تعريف خط الأساس (بما في ذلك ملفات تعريف بدء التشغيل) وأداة تحسين الرموز البرمجية R8.
قبل البدء، ننصحك بتحديث تبعية Compose إلى الإصدار 1.8 على الأقل، الذي قدّم العديد من الميزات الجديدة المهمة وحسّن الثبات العام للمكتبة. اطّلِع على التعليمات في تعريف التبعيات لمعرفة كيفية التحديث، ولمزيد من المعلومات، يمكنك الاطّلاع على المدوّنة حول الإصدار 1.8 وميزات Compose الجديدة في فعالية I/O.
ملفات التعريف الأساسية
استخدِم ملفات تعريف أساسية لتحسين أداء تطبيقك. جمِّع الفئات والطُرق التي تمثّل أهم إجراءات سير العمل في تطبيقك، والتي يمكن للنظام تجميعها مسبقًا باستخدام ملف تعريف أساسي. يمكن أن يؤدي ذلك إلى تقليل أوقات بدء التشغيل، والحدّ من اللقطات غير المتسقة، وتقديم تحسينات إضافية في الأداء.
تتضمّن كل مكتبة من مكتبات Jetpack Compose قواعد الملف الشخصي الخاصة بها. عندما يعتمد تطبيقك على مكتبة، يتم تلقائيًا دمج قواعد الملف الشخصي للمكتبة وتوزيعها مع حزمة APK الخاصة بتطبيقك لإجراء عملية الترجمة المسبقة.
يمكنك التحقّق من صحة ملفاتك الأساسية باستخدام الطرق التالية:
- استخدام اختبارات macrobenchmark
- استخدِم أوامر ADB معيّنة للتحقّق من صحة إعدادات ملفك الشخصي على التطبيق.
يتم توضيح خطوات كلتا الطريقتَين في دليل قياس الأداء والتحقّق من صحته.
ملفات تعريف الشركات الناشئة
تُعد ملفات بدء التشغيل مجموعة فرعية من ملفات التعريف الأساسية، وهي تعمل على تحسين الفئات والطُرق التي تحتوي عليها لتقليل وقت استجابة بدء تشغيل التطبيق.
ستؤدي إضافة ملف إعداد إلى زيادة حجم حزمة APK الخاصة بتطبيقك، لذا قبل إضافة ملف إلى إصدارك العلني، احرص على تقييم المفاضلة بين حجم حزمة APK ووقت استجابة بدء التشغيل.
بعد أن تشعر بالارتياح بشكل عام بشأن إعداد ملفاتك الأساسية، يمكنك قراءة مقالة إنشاء ملف بدء التشغيل للبدء.
R8
استخدِم المحوّل البرمجي R8 لتقليل حجم التطبيقات وتحسينها. تزيل أداة R8 الرموز والموارد غير المستخدَمة، وتعيد كتابة الرموز لتحسين أداء وقت التشغيل، وغير ذلك.
في الأدلة حول كيفية تحسين "النظرة العامة على الأداء"، راجِع الاعتبارات الخاصة بـ R8، بما في ذلك الخطوات الرئيسية لإزالة الموارد غير المستخدَمة.
قياس الأداء والتحقّق من صحته
للتعرّف على استراتيجيات قياس الأداء العامة على Android، اطّلِع على نظرة عامة على قياس أداء التطبيق. يتضمّن هذا القسم بعض الأساليب التي تمت مناقشتها في تلك المستندات.
اختيار صيغة إصدار للقياسات
على الرغم من أنّ وضع تصحيح الأخطاء مفيد في رصد العديد من المشاكل، إلا أنّه يفرض تكلفة كبيرة على الأداء، ولا يستخدم ملفات تعريف أساسية، ويمكن أن يصعّب رصد مشاكل الرموز البرمجية التي قد تؤثّر سلبًا في الأداء.
لفهم أداء تطبيقك بدقة، شغِّل تطبيقك في وضع الإصدار.
يجب ألا تستخلص استنتاجات نهائية بشأن الأداء إلا باستخدام الاختبارات التي يتم إجراؤها على التطبيقات التي تعمل بخيارات الإصدار، وعلى أجهزة حقيقية.
ومع ذلك، عند إجراء اختبار الأداء، استخدِم صيغة الإصدار الخاصة باختبار الأداء، والتي تتضمّن بعض الاختلافات الرئيسية عن تصحيح الأخطاء في الإصدار. راجِع دليل إعداد Macrobenchmark للاطّلاع على التفاصيل.
التحقّق من صحة ملفات تعريف خط الأساس لتطبيقك
ابدأ بالاطّلاع على حالة ملفك التجاري:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
إذا لم تكن الحالة status=speed-profile
، يعني ذلك أنّه لم يتم تطبيق قواعد الملف الشخصي بعد لتحسين التطبيق.
يتم تطبيق القواعد باستخدام مهمة تعمل في الخلفية عند شحن الجهاز وعدم استخدامه. يمكنك تشغيل ذلك يدويًا من خلال تنفيذ الأمر التالي بعد تشغيل التطبيق وانقضاء وقت كافٍ للسماح لأداة تثبيت الملف الشخصي ببدء تشغيل الملف الشخصي في الخلفية. يستغرق ذلك عادةً حوالي 40 ثانية.
adb shell cmd package bg-dexopt-job
يمكنك بعد ذلك إعادة تنفيذ الأمر السابق للتأكّد من أنّ الحالة أصبحت
speed-profile
.
في الحالات التي يتم فيها إجراء التحسين عند التثبيت، راجِع التحميل الجانبي لملف التعريف الأساسي.
UI Automator API
استخدِم UI Automator API لقياس أداء أجزاء منفصلة من واجهة المستخدم عند فحص مسارات المستخدمين بحثًا عن تحسينات محتملة.
تعمل هذه الأداة من خلال برمجة التفاعلات مع واجهة المستخدم.
اختبارات Macrobenchmark
تختبر مقاييس الأداء الكلية حالات الاستخدام الأكبر لتطبيقك، خاصةً بدء تشغيل التطبيق وعمليات معالجة واجهة المستخدم المعقّدة. اطّلِع على دليل التنفيذ للبدء.
للاطّلاع على مثال حول استخدام مقاييس الأداء الشاملة للتحقّق من أداء ملفات Baseline، يُرجى الاطّلاع على نماذج الأداء على GitHub.
JankStats Library
استخدِم مكتبة JankStats لتتبُّع مشاكل الأداء وتحليلها في التطبيقات.
للاطّلاع على مثال، راجِع نموذج JankStats على GitHub.
تتبُّع النظام
باستخدام أنواع الرسوم المتحركة الجديدة التي توفّرها حزمة Material 3 Expressive، يمكنك استخدام ميزة تتبُّع النظام في Android Studio لفحص وتحديد أسباب التأخير في رحلات المستخدمين التي قد تتضمّن مشاكل. وباستخدام هذه المعلومات، يمكنك التحقّق من محتوى ملفاتك الأساسية وفحص منطق الرمز البرمجي للبحث عن مواضع قد تكون غير فعّالة.
أدوات إضافية
بالإضافة إلى أدوات تحسين الأداء، تتوفّر أدوات أخرى يمكن للمطوّرين استخدامها لتحسين إنتاجيتهم وسير عملهم.
أدوات الإنتاجية في "استوديو Android"
يوفّر Android Studio العديد من الأدوات التي يمكن أن تقلّل الوقت الذي تستغرقه في البحث عن طرق لتحسين الأداء.
على سبيل المثال، باستخدام أدوات مثل التعديل المباشر والمعاينات القابلة للإنشاء، يمكنك تحديد واجهة المستخدم غير السلسة، بالإضافة إلى المناطق المرتبطة بها في رمز تطبيقك، لتحسين الأداء.
أجرِ جميع اختبارات الأداء النهائية على مجموعة من أجهزة Wear OS الفعلية التي تمثّل قاعدة المستخدمين المستهدَفة بدقة.
ويكون ذلك مهمًا بشكل خاص عند الانتقال إلى Material 3 Expressive، التي توفّر ميزات مثل الخطوط المرنة وتغيير الأشكال في تطبيقك.
إذا كنت بصدد نقل البيانات من طرق العرض، اطّلِع على دليل نقل البيانات وأفضل الممارسات لتحسين أداء Jetpack Compose للتأكّد من أنّ واجهات المستخدم في تطبيقك تعمل بكفاءة عند استخدام Jetpack Compose.
مراجع أخرى
للاطّلاع على آخر الأخبار المتعلقة بأداء تطبيقات Android، يمكنك مراجعة آخر الأخبار والفيديوهات في دليل أداء التطبيقات.