اعتبارات الأداء

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

تأكّد من أنّ تطبيقك:

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

أفضل الممارسات المتعلقة بالأداء

لإنشاء تجارب الواقع المعزّز أكثر إقناعًا، عليك التصميم مع مراعاة أفضل الممارسات التالية:

استخدام الإعلانات الثابتة لتحسين أداء التتبع

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

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

مراعاة خصائص الأداء الخاصة بالجهاز

تغطي أجهزة ARCore المتوافقة مجموعة كبيرة من خصائص الأجهزة والأداء. يمكن أن يختلف أداء الجهاز للأسباب التالية:

  • وحدة المعالجة المركزية (CPU)/وحدة معالجة الرسومات (GPU) للجهاز، سرعة الساعة
  • الذاكرة ومعدل نقل البيانات المتاحان
  • جودة الكاميرا/جهاز استشعار وحدة القياس "IMU" (IMU)
  • الاختلافات الأخرى في الأجهزة
  • برامج تشغيل الأجهزة وأنظمة التشغيل

نقترح اختبار تطبيقك على فئات مختلفة من الأجهزة التي تمثل الأجهزة التي سيستخدمها المستخدمون لديك.

إيقاف الميزات التي تستخدم وحدة المعالجة المركزية (CPU) عند عدم استخدامها

تؤدي بعض ميزات ARCore إلى زيادة استخدام وحدة المعالجة المركزية (CPU) عندما تكون مفعَّلة. ننصحك بإيقاف هذه الميزات عندما لا تحتاج إليها تجربة الواقع المعزّز. وسيؤدي ذلك إلى إتاحة دورات وحدة المعالجة المركزية (CPU) إضافية لتطبيقك، وتحسين الأداء الحراري وعمر البطارية.

في الوقت الحالي، يزداد استخدام وحدة المعالجة المركزية ARCore عندما تكون اللغة Instant Placement و/أو Augmented Images مفعّلة للجلسة الحالية. يمكنك اتّباع هذه الإرشادات لزيادة كفاءة استخدام وحدة المعالجة المركزية (CPU):

  • يجب إيقاف Instant Placement بعد إنشاء التتبّع الكامل. ويمكن إيقاف هذه الميزة في ضبط الجلسة.

  • يجب إيقاف "Augmented Images" عندما لا تكون هذه الميزة مطلوبة لتجربة الواقع المعزّز. لإيقاف هذه الميزة، يجب إعداد null أو قاعدة بيانات فارغة للصور المعزّزة في إعدادات الجلسة.

مراقبة الحرارة الحرارية للأجهزة

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

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

التعرّف على تجوُّل وحدة المعالجة المركزية ARCore

عندما تكون جلسة ARCore نشطة، يجب أن يشارك تطبيقك موارد وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) للأجهزة الجوّالة بشكل محدود مع ARCore. يمكن للتطبيقات المرتبطة بوحدة المعالجة المركزية (CPU) التنافس مع موارد وحدة المعالجة المركزية اللازمة لتتبُّع الحركة.

للتحقق من إمكانية تشغيل الأقلمة والتعيين المتزامن في ARCore بشكل طبيعي، تحقق من أن رسالة "معدل تكرار VIO منخفض" لا تظهر في سجلات جهاز Android:

adb logcat | grep 'VIO frequency low'

تجنُّب تضخيم وحدة المعالجة المركزية ARCore

عندما تكون جلسة ARCore نشطة، يجب أن يشارك تطبيقك موارد وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) المحدودة للأجهزة الجوّالة مع ARCore. يمكن للتطبيقات المرتبطة بوحدة المعالجة المركزية (CPU) التنافس مع موارد وحدة المعالجة المركزية اللازمة لتتبُّع الحركة.

إنشاء قواعد بيانات الصور المحسَّنة مسبقًا

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

وضع حد أقصى لعدد عمليات البث المطلوبة للكاميرا

عند استخدام الكاميرا المشتركة في Java، يمكن للتطبيقات أن تطلب عمليات بث إضافية لصور وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU).