الحفاظ على الطاقة والبطارية

وتشكّل كفاءة استهلاك الطاقة أهمية خاصة على نظام التشغيل Wear OS. تركّز مبادئ تصميم Wear OS بشكل كبير على استخدام طاقة الجهاز لأنّ الساعة صغيرة الحجم ومخصّصة للتفاعلات القصيرة.

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

لتحسين كفاءة استهلاك الطاقة في تطبيقك، اتّبِع أفضل ممارسات التصميم التالية:

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

    إذا كان الجهاز قيد الشحن ومتصلاً بشبكة Wi-Fi، يمكنك جدولة المهام لجلب البيانات والصور والتحديثات مسبقًا التي يُحتمل أن يريد المستخدم رؤيتها في تطبيقك.

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

مراقبة استخدام البطارية بمرور الوقت

لتحليل إحصاءات البطارية لجهاز Wear OS يشغّل تطبيقك، أدخِل الأمر التالي في نافذة طرفية في جهاز التطوير:

adb shell dumpsys batterystats

تحتوي إحدى المكتبات على GitHub على محلل إحصاءات البطارية الذي قد يكون مفيدًا في التعامل مع هذا الأمر.

الأحداث التي تؤثر في عمر البطارية

قبل التفكير في تطبيقك على وجه التحديد، ننصحك بالتفكير بشكل عام في الأحداث التي تستهلك الطاقة على جهاز Wear OS.

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

حدث تأثير التغيير على عمر البطارية كيفية التخفيف
الوصول إلى الشبكة، بما في ذلك LTE وWi-Fi جمهور كبير جدًا يمكنك تأجيل عملية الوصول غير الأساسي إلى الشبكة إلى أن يتم شحن الجهاز.
شغِّل الشاشة وابدأ وضع التفاعل. عالٍ عدم تشجيع المستخدم على إبقاء الشاشة مشغَّلة لفترة أطول من اللازم. قدِّم تجربة تستخدم وضع التشغيل دائمًا، الذي يُعرَف أيضًا باسم "وضع الإضاءة السينمائية".
الوصول إلى أداة استشعار نظام تحديد المواقع العالمي (GPS) عالٍ انتظر حتى يطلب المستخدم الوصول إلى نظام تحديد المواقع العالمي (GPS)، إن أمكن.
الحفاظ على ارتفاع استخدام وحدة المعالجة المركزية عالٍ استخدام عمليات التدفق باستخدام Jetpack Compose
الوصول إلى أداة استشعار معدّل نبضات القلب الوسيط يمكنك استخدام وقت نشاط معالج البيانات عند تلقّي معاودة الاتصال من واجهة برمجة تطبيقات أداة الاستشعار، كما هو الحال عند استخدام الخدمات الصحية على Wear OS.
الوصول إلى جهاز آخر عبر البلوتوث الوسيط اجعل الجلسات قصيرة.
إيقاف قفل التنشيط الوسيط عليك تقليل الإنشاء اليدوي لعمليات قفل التنشيط واستخدام WorkManager.

تقليل مدّة النظر إلى الشاشة

في تطبيق Wear OS، اتّبِع المبادئ التالية لاستخدام الشاشة:

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

    • تقلِّل هذه الميزة النسبة المئوية المُضاءة على شاشة الجهاز.
    • لا يعرض رسومًا متحركة.
    • لا يعدّل محتوى الشاشة إلا أثناء معاودة الاتصال بخدمة onAmbientUpdate().

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

عند استخدام تطبيق Wear OS، اتّبِع المبادئ التالية لاستخدام وحدة المعالجة المركزية (CPU):

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

تقليل عمليات قفل التنشيط

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

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

  • تشغيل الوسائط في الخلفية
  • تستخدم السمة WorkManager أو JobScheduler. (يضبط النظام تنشيطًا بالنيابة عنك عند تشغيل المهمة في الخلفية).

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

  • تحقَّق من حالات قفل التنشيط غير المتوقعة.
  • إذا كانت المدة أطول من المتوقع، ضع في اعتبارك ما إذا كان العمل محظورًا على بعض التبعية، مثل مدى توفر الشبكة.

فحص الطريقة التي يصبح بها تطبيقك غير نشط

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

  • تتوقّف الشاشة ويدخل الجهاز في "وضع الإضاءة السينمائية".
  • تم إغلاق التطبيق.

لتحليل النشاط على التطبيقات، استخدِم الأدوات الموضَّحة في الأقسام التالية.

محلّل الطاقة

يمكن الوصول إلى أداة تحليل الطاقة من قائمة "استوديو Android" من خلال النقر على عرض > نوافذ الأدوات > المحدِّد:

  1. افحص تتبُّع أداء النظام عندما تنطفئ الشاشة ويدخل الجهاز في "وضع الإضاءة السينمائية".
  2. ابحث عن أي عمل مستمر وعن مستوى استخدام وحدة المعالجة المركزية (CPU) للجهاز.

بيرفيتو

يتيح لك Perfetto تسجيل آثار الأنشطة ثم فحص تطبيقك لمعرفة ما إذا كانت هناك أي سلاسل محادثات تؤدي أي عمل عند إطفاء الشاشة أو دخول الجهاز في "وضع الإضاءة السينمائية" أو إغلاق المستخدم لنشاط تطبيقك.

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

تحليل المهام المُجدوَلة في تطبيقك

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

يمكنك استخدام ميزة البطارية Historian لفحص تنفيذ "المهام المُجدوَلة" بشكل عام (إحصاءات النظام > إحصاءات أداة جدولة المهام) وحسب التطبيق (إحصاءات التطبيق > المهمة المُجدوَلة). تحقّق من العدد الإجمالي والمدة الإجمالية:

  • وإذا كانت المهمة تعمل بشكل متكرر جدًا، فكّر في تقليل هذا التكرار.
  • تأكَّد من أنّ إجمالي وقت التنفيذ يتطابق مع ما تتوقّعه، وأنّه ليس أطول بكثير.

افحص أيضًا الرسم البياني لـ Thermostat Historian، مع الاطّلاع على كل إدخال في Job Scheduler. عند الإمساك بالمؤشر فوق إدخال معين، يُظهر قسم "مؤرّخ البطارية" مالك المهمة التي يتم تنفيذها. فكِّر في النقاط التالية:

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

أدوات الاستشعار

تشتمل أجهزة Wear OS على العديد من أدوات الاستشعار المختلفة، مثل نظام تحديد المواقع العالمي (GPS). في معظم الحالات، يمكنك استخدام "الخدمات الصحية" على نظام التشغيل Wear OS بدلاً من التفاعل مباشرةً مع "SensorManager". في كثير من الحالات، تعمل "الخدمات الصحية" على تجميع البيانات بشكل ذكي لتحسين أداء البطارية.

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

adb shell dumpsys sensorservice

تظهر نتائج هذا الأمر ما يلي:

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

اختبار إلغاء التسجيل من أجهزة الاستشعار

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

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

استخدم أمر ADB من القسم السابق للتحقق مما إذا كان المستشعر يظهر بشكل صحيح على أنه غير مسجَّل.

طبقة بيانات

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

تتضمن بعض أفضل الممارسات الإضافية لاستخدام واجهة برمجة التطبيقات Data Layer API ما يلي:

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

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

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

adb shell dumpsys activity service WearableService

وتشمل نتائج هذا الأمر ما يلي:

  • RpcService: تتيح لك معرفة عدد مرات طلب البيانات والمسارات التي يتم استدعاؤها باستخدام MessageClient.
  • DataService: تتيح لك معرفة عدد مرات ضبط عناصر البيانات باستخدام DataClient.

تطبيقات الصحة واللياقة البدنية

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

  • بالنسبة إلى ExerciseClient، يمكنك استخدام مسجلّ البطارية للتحقّق من السلوك الصحيح في "وضع الإضاءة السينمائية". يُرجى التأكد من أنّ تطبيقك لا يستيقظ بوتيرة أعلى من كل دقيقة أو دقيقتين لتلقّي بيانات ExerciseUpdate.
  • لمراقبة الصحة العامة طوال اليوم، يمكنك استخدام PassiveMonitoringClient، كما هو موضّح في الدليل حول كيفية مراقبة بيانات الصحة واللياقة البدنية في الخلفية.

المربّعات والإضافات

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

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