تحسين خلفيات شاشة الساعة

تعمل خلفية شاشة ساعة Wear OS بشكل مستمر، لذا يجب استخدام الطاقة بكفاءة.

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

التحسين الأساسي

يتضمّن هذا القسم أفضل الممارسات لتحسين فعالية خلفية شاشة الساعة بشكل عام.

لون خلفية شاشة الساعة ومستوى سطوعها

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

  • اللون: استخدِم خلفية سوداء كلما أمكن ذلك.
  • السطوع: عندما لا تتوفّر خلفية سوداء، يجب ضبط سطوع لون الخلفية على% 25 أو أقل على مقياس تدرج اللون أو التشبع أو القيمة (HSV) أو تدرج اللون أو التشبع أو السطوع (HSB). على سبيل المثال، إذا كنت تستخدم الفئة Color لضبط لون خلفية محدّد بمقياس HSV، استخدِم 25 أو أقل لإعداد القيمة الذي يتحكّم في مستوى السطوع.

استخدام الإمكانات الديناميكية للتفاعل مع الهاتف

عندما تتطلب خلفية شاشة الساعة عملية لتشغيلها على الهاتف، ينبغي تنفيذ الرمز فقط عندما تكون خلفية شاشة الساعة نشطة. الطريقة الموصى بها للسماح للتطبيق على الهاتف بمعرفة أن خلفية شاشة الساعة المقابلة نشطة هي CapabilityClient API.

مراقبة استهلاك الطاقة

يتيح التطبيق المصاحب لنظام التشغيل Wear OS للمطورين والمستخدمين معرفة مقدار طاقة البطارية التي تستهلكها عمليات مختلفة على الجهاز القابل للارتداء. لعرض بطارية الساعة، يُرجى الانتقال إلى الإعدادات > بطارية الساعة.

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

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

لتفعيل تمهيد أسرع، أضِف android:directBootAware="true" إلى بيان خلفية شاشة الساعة.

ملاحظة: يمكنك استخدام هذه الميزة مع خلفيات شاشة الساعة التي لا تستخدم مساحة تخزين مشفّرة باستخدام بيانات الاعتماد.

أفضل الممارسات المتعلّقة بالصور المتحركة

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

خفض عدد اللقطات في الثانية للصور المتحركة

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

السماح لوحدة المعالجة المركزية (CPU) بالسكون بين الصور المتحركة

لإطالة عمر البطارية، استخدِم الصور المتحركة باعتدال. حتى النقطتين الوامضتين تستخدم طاقة البطارية مع كل وميض.

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

أفضل الممارسات المتعلّقة بالصور

تساعد أفضل الممارسات الواردة في هذا القسم على تقليل استهلاك الطاقة المرتبط بالصور.

تقليل حجم أصول الصور النقطية

تتألّف العديد من خلفيات شاشة الساعة من صورة خلفية بالإضافة إلى أصول رسومية أخرى يتم تحويلها وتركيبها على صورة الخلفية، مثل عقارب الساعة والعناصر الأخرى التي تتحرك بمرور الوقت. وكلما زاد حجم أصول الرسومات هذه، ارتفعت تكلفة تحويلها من الناحية الحسابية. ويتم عادةً تدوير هذه العناصر الرسومية وقياسها أحيانًا باستخدام طريقة Render.CanvasRenderer.render() في كل مرة يعيد فيها النظام رسم خلفية شاشة الساعة، كما هو موضّح في القسم رسم خلفية شاشة ساعة.

الشكل 1. اقتصاص عقارب الساعة لإزالة وحدات البكسل الزائدة

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

  • لا تستخدم عناصر رسومية أكبر مما تحتاج.
  • أزِل وحدات البكسل الشفافة الإضافية حول الحواف.

على سبيل المثال، يمكن تقليل حجم عقرب الساعة على اليسار في الشكل 1 بنسبة 97٪ عن طريق إزالة وحدات البكسل الشفافة الإضافية، كما هو موضح على الجانب الأيمن من الشكل.

دمج أصول الصور النقطية

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

إيقاف تعديل التشويش عند رسم صور نقطية تم تحديد حجمها

عند رسم صورة نقطية على الكائن Canvas باستخدام طريقة Canvas.drawBitmap()، يمكنك توفير مثيل Paint لإعداد عدة خيارات. لتحسين الأداء، يجب إيقاف مقاومة التشويش باستخدام الطريقة setAntiAlias() لأنّ هذا الخيار ليس له أيّ تأثير في الصور النقطية.

الشكل 2. مثال على إيقاف تصفية الصور النقطية (لليسار) وتفعيلها (لليمين).

استخدام فلترة الصور النقطية

في مواد عرض الصور النقطية التي ترسمها فوق عناصر أخرى، فعِّل فلترة الصور النقطية على مثيل Paint نفسه باستخدام الإجراء setFilterBitmap(). يوضح الشكل 2 عرضًا مكبرًا لعقرب ساعة مع تصفية للصور النقطية وبدونها.

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

نقل العمليات المكلفة خارج طريقة الرسم

يستدعي النظام الطريقة Render.CanvasRenderer.render() في كل مرة يعيد فيها رسم خلفية شاشة الساعة. لتحسين الأداء، لا تضمِّن سوى العمليات المطلوبة للغاية لتحديث خلفية شاشة الساعة داخل هذه الطريقة.

تجنَّب قدر الإمكان تنفيذ العمليات التالية داخل طريقة Render.CanvasRenderer.render():

  • جارٍ تحميل الصور والموارد الأخرى
  • جارٍ تغيير حجم الصور
  • تخصيص الكائنات
  • العمليات الحاسوبية التي لا تتغير نتائجها بين الإطارات

لتحليل أداء خلفية شاشة الساعة، استخدِم أداة تحليل وحدة المعالجة المركزية (CPU). على وجه الخصوص، احرص على أن يكون وقت تنفيذ Render.CanvasRenderer.render() قصيرًا ومنتظمًا في مختلف الاستدعاءات. ولمزيد من المعلومات، يمكنك الاطّلاع على فحص نشاط وحدة المعالجة المركزية (CPU) باستخدام أداة تحليل وحدة المعالجة المركزية (CPU).

يعرض نموذج تطبيق خلفية شاشة الساعة أفضل الممارسات لضبط خلفية شاشة الساعة.