تحسين استهلاك تطبيقك للطاقة

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

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

لماذا يجب تحسين تطبيق الملاحة؟

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

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

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

ما الذي يستهلك أكبر قدر من الطاقة؟

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

  • عرض الشاشة
  • تحديثات الموقع

عرض الشاشة

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

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

تحديثات الموقع

بالإضافة إلى عرض الشاشة، هناك نشاطان آخران للتنقّل يستهلكان طاقة الجهاز، وهما:

  • استخدام برج البث اللاسلكي ونظام تحديد المواقع العالمي (GPS)
  • تعديلات الموقع الجغرافي ومشاركته، مثلاً لتقديم وقت وصول تقديري أو الإبلاغ عن مواقع المركبات في أسطول

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

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

تحسين استخدام تطبيقك للطاقة

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

تغيير عدد اللقطات في الثانية

تحدّث الشاشة ما تعرضه بمعدّل يُعرف باسم معدّل عرض اللقطات. ويُقاس عدد اللقطات في الثانية عادةً بوحدة "لقطات في الثانية" (FPS). بما أنّ عرض الشاشة يستهلك الكثير من وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU)، يمكنك خفض معدّل عرض اللقطات لتوفير استهلاك الطاقة.

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

راجِع قسم عدد اللقطات في الثانية في مستندات المطوّرين ضمن مركز تطوير الوسائط على Android لمعرفة المزيد حول تعديل عدد اللقطات في الثانية.

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

لإخفاء واجهة مستخدم التنقّل، لا تُضِف NavigationView أو SupportNavigationFragment، أو إذا سبق لك إجراء ذلك، أزِل الرمز الذي يضيفهما. تم تعديل الرمز التالي من تطبيق العرض التوضيحي لنظام التشغيل Android الخاص بحزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation، وهو يوضّح كيفية استخدام التعليقات لإزالة الرمز الذي يضيف واجهة مستخدم التنقّل:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

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

تشغيل التطبيق التجريبي مع إظهار "وضع الخريطة"
الشكل 1:تطبيق تجريبي لحزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation API على أجهزة iOS يعرض العرض التوضيحي Data Back
تشغيل التطبيق التجريبي بدون عرض الخريطة
الشكل 2:تطبيق تجريبي يعمل بدون عرض خريطة. يُرجى العِلم أنّ الوقت والمسافة المتبقّيَين، بالإضافة إلى الموقع الجغرافي المحاذي للطريق، لا يزالان قيد التحديث.

استخدام نمط خريطة داكن

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

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

لمزيد من المعلومات حول تعديل واجهة مستخدم التنقّل، يُرجى الاطّلاع على تعديل واجهة مستخدم التنقّل.

لقطة شاشة لحزمة تطوير البرامج للتنقّل تعمل على هاتف iPhone 15 Pro مع نمط خريطة داكن
الشكل 3:حزمة تطوير البرامج للتنقّل تم ضبطها باستخدام نمط خريطة داكن

لإنشاء نمط داكن للخريطة، استخدِم عنصر MapStyleOptions مع نمط JSON يمثّل اختيارك لنمط الخريطة الداكن. يمكن إنشاء أنماط JSON القديمة باستخدام أداة تعديل الأنماط القديمة على الرابط https://mapstyle.withgoogle.com/.

تغيير معدّل تعديل موقع GPS

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

لا يمكنك التحكّم في ذلك مباشرةً في Navigation SDK ، ولكن إذا كان تطبيق Android يطلب الموقع الجغرافي بشكل مستقل، ننصحك بالاطّلاع على النصائح الواردة في مقالة "تحسين الموقع الجغرافي للحفاظ على البطارية" في مستندات مطوّري تطبيقات Android. تنطبق النصيحة نفسها على استخدام مصادر الموقع الجغرافي غير المستندة إلى نظام تحديد المواقع العالمي (GPS) (الشبكة الخلوية وشبكة Wi-Fi).

تثقيف المستخدمين

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

  • إقفال الهاتف
  • وضع تطبيق الملاحة في الخلفية
  • استخدام ميزة التنقّل بدون خريطة إذا أمكن
  • تقليل سطوع الشاشة، إما باستخدام الوضع الداكن لشاشات OLED وAMOLED، أو من خلال تفعيل ميزة "السطوع التكيّفي"
  • الحفاظ على برودة الجهاز
  • الاتصال بشبكة Wi-Fi داخل المركبة إذا كانت متاحة
يمكنك الاطّلاع على مقالة إطالة عمر بطارية جهاز Android لأقصى حد ممكن للحصول على نصائح للمستخدمين النهائيين حول إطالة عمر البطارية على Android. يُرجى العِلم أنّ هذه النصيحة تتضمّن إجراءات قد تقلّل من فعالية تطبيق الملاحة، كما هو موضّح في مقالة تحسين استخدام تطبيقك للطاقة في هذا الدليل.

قياس استهلاك الطاقة

يمكنك استخدام أدوات احترافية لقياس استهلاك الطاقة، ولكن غالبًا ما يكون من الصعب أو المكلف الحصول عليها. تقيس التطبيقات وأدوات تحليل الأداء في بيئات التطوير المتكاملة، مثل Power Profiler في "استوديو Android" ولوحة "استخدام البطارية" في XCode Organizer، معدّل استهلاك الطاقة، ولكن قد يكون من الصعب إزالة تأثير العمليات التي تعمل في الخلفية أو تحديد مستوى أداء أساسي للقياس استنادًا إليه. في بعض الحالات، قد تمنع قيود الجهاز الوصول إلى البيانات اللازمة.

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