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

الكلمات الرئيسية: WearOS، الطاقة، البطارية، الأداء

إنّ كفاءة استخدام الطاقة مهمّة بشكل خاص على نظام التشغيل 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().

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

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

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

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

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

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

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

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

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

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

راقِب ما يفعله التطبيق النشط عند حدوث أحداث رئيسية على الجهاز، مثل ما يلي:

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

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

محلّل الطاقة

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

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

Perfetto

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

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

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

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

استخدِم Battery Historian لفحص تنفيذ المهام المُجدوَلة، سواءً بشكلٍ عام (إحصاءات النظام > إحصاءات Jobscheduler) أو حسب التطبيق (إحصاءات التطبيق > المهمة المُجدوَلة). اطّلِع على إجمالي عدد الرسائل وإجمالي المدة:

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

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

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

أجهزة الاستشعار

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

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

adb shell dumpsys sensorservice

تعرِض نتائج هذا الأمر ما يلي:

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

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

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

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

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

طبقة البيانات

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

تشمل بعض أفضل الممارسات الإضافية لاستخدام Data Layer API ما يلي:

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

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

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

adb shell dumpsys activity service WearableService

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

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

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

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

  • بالنسبة إلى ExerciseClient، استخدِم Battery Historian للتحقّق من السلوك الصحيح في وضع الإضاءة السينمائية. تأكَّد من أنّ تطبيقك لا يستيقظ أكثر من كل دقيقة أو دقيقتين لتلقّي بيانات ExerciseUpdate.
  • لمراقبة الصحة العامة على مدار اليوم، استخدِم PassiveMonitoringClient كما هو описан في الدليل حول كيفية مراقبة بيانات الصحة واللياقة البدنية في الخلفية.

شاشات المعلومات والإضافات

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

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