حسِّن أداء خلفية شاشة الساعة من خلال ميزة "تسريع الأجهزة"

تستفيد تطبيقات Wear OS التي تستخدم طرق العرض العادية من العرض التلقائي للرسومات التي تسرّعها الأجهزة. عادةً ما يتم تنفيذ خلفيات شاشة الساعة باستخدام اللوحات اللوحات، حتى لا تحصل على تسريع الأجهزة تلقائيًا.

لماذا يجب استخدام تقنية تسريع الأجهزة لخلفية شاشة الساعة؟

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

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

هل خلفية شاشة الساعة تستخدم ميزة "تسريع الأجهزة"؟

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

التحقق باستخدام ميزة "خيارات المطورين"

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

  1. على جهاز Wear OS، انتقِل إلى الإعدادات > خيارات المطوّرين.
  2. فعِّل تصحيح أخطاء تحليل وحدة معالجة الرسومات.

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

  3. انتقِل إلى خلفية شاشة الساعة على الجهاز.

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

التحقّق باستخدام adb

لاستخدام adb للتحقق مما إذا كانت خلفية شاشة الساعة تستخدم ميزة "تسريع الأجهزة"، اتّبِع الخطوات التالية:

  1. على جهاز Wear OS، يمكنك تغيير خلفية شاشة الساعة إلى خلفية شاشة الساعة المطلوب اختبارها.
  2. شغِّل خلفية شاشة الساعة لبضع ثوانٍ في وضع التفاعل.
  3. شغِّل الأمر adb التالي للتحقّق مما إذا كانت خلفية شاشة الساعة تستخدم ميزة "تسريع الأجهزة":

    adb shell dumpsys gfxinfo [package-name]

بعد تشغيل الأمر، ستظهر لك مخرجات مشابهة للمثال التالي:

Applications Graphics Acceleration Info:
Uptime: 2239933 Realtime: 13568751

** Graphics info for pid 1100 [package-name] **

Stats since: 59875589194ns
Total frames rendered: 1213
Janky frames: 0 (0.00%)
50th percentile: 7ms
90th percentile: 18ms
95th percentile: 25ms
99th percentile: 150ms
Number Missed Vsync: 0
Number High input latency: 0
Number Slow UI thread: 0
Number Slow bitmap uploads: 0
Number Slow issue draw commands: 0
Number Frame deadline missed: 0

...

في نموذج الإخراج هذا، لاحظ قراءة السطر Total frames rendered. وبشكل عام، إذا كان الناتج يعرض إجمالي عدد الإطارات أكبر من 0، ستستخدم خلفية شاشة الساعة لوحة مسرَّعة. وبخلاف ذلك، يكون إجمالي اللقطات المعروضة وبيانات الإطارات الأخرى في التقرير عادةً 0.

ومع ذلك، ولأنّ gfxinfo يتم إخراجه لحزمة تطبيقك الكاملة، قد تظهر لك بعض معلومات وقت عرض اللقطة من عنصر آخر غير لوحة الرسم التي تم تسريعها بالأجهزة، مثل لوحة Activity يستخدمها تطبيقك لشاشة الضبط. لمعرفة الفرق، يجب التأكّد من أنّ خلفية شاشة الساعة هي السطح الوحيد المرئي، ثم إعادة تنفيذ الأمر adb shell dumpsys gfxinfo للتحقّق مما إذا كانت قيمة Total frames rendered قد زادت.

أفضل الممارسات

اتبع أفضل الممارسات التالية لضمان تقديم أفضل تجربة ممكنة للمستخدمين.

إطالة عمر البطارية إلى أقصى حد

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

استخدام عمليات الرسم المتوافقة

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

الحفاظ على التوافق عند استخدام ميزة "تسريع الأجهزة"

تتوفّر ميزة "تسريع الأجهزة" على أجهزة Wear OS التي تعمل بنظام التشغيل Android 9 (المستوى 28 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. إذا كنت تريد تجنب عملية رسم محددة على الأجهزة القديمة، أو التي لا يتوفر فيها تسريع الأجهزة، أو عملية رسم غير متوافقة على لوحة رسم مسرَّعة على الأجهزة، يمكنك التحقق من Canvas.isHardwareAccelerated()، ثم تقديم الوظائف البديلة.