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

تشكّل كفاءة استهلاك الطاقة أهمية خاصة على نظام التشغيل 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).
الحفاظ على ارتفاع معدّل استخدام وحدة المعالجة المركزية (CPU) عالٍ استهلاك المسارات باستخدام Jetpack Compose
الوصول إلى أداة استشعار معدّل نبضات القلب الوسيط استخدِم وقت استيقاظ معالج البيانات عند تلقّي معاودة الاتصال من واجهة برمجة تطبيقات أداة الاستشعار، على سبيل المثال عند استخدام الخدمات الصحية على Wear OS.
الدخول إلى جهاز آخر عبر البلوتوث الوسيط اجعل الجلسات قصيرة.
تثبيت قفل التنشيط الوسيط قلِّل من الإنشاء اليدوي لعمليات قفل التنشيط واستخدِم WorkManager.

تقليل وقت النظر إلى الشاشة

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

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

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

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

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

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

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

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

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

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

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

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

فحص حالة عدم نشاط تطبيقك

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

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

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

محلّل الطاقة

يمكن الوصول إلى Energy Profiler في قائمة "استوديو Android" من خلال اختيار View > Tool Windows > Profiler:

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

بيرفيتو

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

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

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

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

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

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

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

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

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

تحتوي أجهزة 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) أو المهام المُجدوَلة بشكل مناسب لإرسال تعديلات البيانات احرص على منع التحديث السريع للتحديثات، مما قد يجعل النظام يجدول العمل المتكرر بمعدل أسرع من وصول المستخدم أو النظام الأساسي إلى البيانات اللازمة لتنفيذ هذا العمل.
  • يجب عدم جدولة العمل للبلاط أو الإضافة عندما لا يتفاعل المستخدم معه.
  • استخدِم أساليب التسويق بلا إنترنت أولاً.
  • شارِك قاعدة بيانات واحدة لكل من تطبيقك الرئيسي والفئات والإضافات. يساعد ذلك في الحفاظ على اتساق البيانات عبر أسطح واجهة المستخدم أيضًا.