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

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

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

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

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

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

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

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

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

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

عرض الشاشة

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

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

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

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

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

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

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

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

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

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

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

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

على أجهزة iOS، تعرض حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS السمة preferredFrameRate في GMSMapView للتحكّم في عدد اللقطات في الثانية. يعرض الجدول التالي قيم GMSFrameRate التي يمكنك تعديلها:

قيمة Swift قيمة Objective-C الوصف
.powerSave kGMSFrameRatePowerSave استخدِم الحد الأدنى لعدد اللقطات في الثانية للحفاظ على استخدام البطارية.
.conservative kGMSFrameRateConservative استخدِم معدّل لقطات في الثانية متوسطًا لتوفير عرض أكثر سلاسة والحفاظ على دورات المعالجة.
.maximum kGMSFrameRateMaximum استخدِم الحد الأقصى لمعدّل عرض اللقطات على الجهاز (30 لقطة في الثانية للأجهزة المنخفضة المستوى و60 لقطة في الثانية للأجهزة العالية المستوى).

للحصول على مرجع، اطّلِع على GMSFrameRate في مستندات حزمة تطوير البرامج للتنقّل على أجهزة iOS.

لضبط عدد اللقطات في الثانية المفضّل مباشرةً، عليك إسناد قيمة إلى mapView.preferredFrameRate:

Swift

// Reduce the frame rate to conserve battery:
mapView.preferredFrameRate = .powerSave

Objective-C

// Reduce the frame rate to conserve battery:
mapView.preferredFrameRate = kGMSFrameRatePowerSave;

ضبط عدد اللقطات في الثانية ديناميكيًا أثناء استخدام الإيماءات

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

لإجراء ذلك، استخدِم بروتوكول GMSMapViewDelegate ونفِّذ الطرق التالية:

  1. في mapView:willMove:، تحقَّق مما إذا كان المستخدم قد بدأ تحريك الكاميرا من خلال إيماءة. إذا كانت قيمة gesture هي true، اضبط قيمة preferredFrameRate على الحد الأقصى.
  2. في mapView:idleAtCameraPosition:، أعِد preferredFrameRate إلى وضع توفير الطاقة عندما تصبح الكاميرا غير نشطة.

يوضّح مثال الرمز التالي كيفية تعديل عدد اللقطات في الثانية ديناميكيًا أثناء إجراءات تفاعلية من المستخدم:

Swift

class YourViewController: UIViewController {

  @IBOutlet weak var mapView: GMSMapView!

  override func viewDidLoad() {
    super.viewDidLoad()
    mapView.delegate = self

    // Set a baseline low frame rate to conserve power:
    mapView.preferredFrameRate = .powerSave
  }
}

// MARK: - GMSMapViewDelegate
extension YourViewController: GMSMapViewDelegate {
  func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
    // Increase frame rate during user gestures for smooth interaction:
    if gesture {
      mapView.preferredFrameRate = .maximum
    }
  }

  func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {
    // Restore the power-saving frame rate when gestures finish:
    mapView.preferredFrameRate = .powerSave
  }
}

Objective-C

@interface YourViewController : UIViewController <GMSMapViewDelegate>
@end

@implementation YourViewController {
  GMSMapView *_mapView;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  _mapView.delegate = self;

  // Set a baseline low frame rate to conserve power:
  _mapView.preferredFrameRate = kGMSFrameRatePowerSave;
}

#pragma mark - GMSMapViewDelegate

- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture {
  // Increase frame rate during user gestures for smooth interaction:
  if (gesture) {
    mapView.preferredFrameRate = kGMSFrameRateMaximum;
  }
}

- (void)mapView:(GMSMapView *)mapView
    idleAtCameraPosition:(GMSCameraPosition *)position {
  // Restore the power-saving frame rate when gestures finish:
  mapView.preferredFrameRate = kGMSFrameRatePowerSave;
}

@end

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

أضِف سطرًا من الرمز البرمجي لإخفاء GMSMapView:

mapView.isHidden = true

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

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

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

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

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

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

حزمة تطوير البرامج للتنقّل تعمل على هاتف iPhone 15 Pro مع نمط خريطة داكن.
الشكل 3.حزمة تطوير البرامج (SDK) للتنقّل تم ضبطها باستخدام نمط خريطة داكن
اضبط GMSMapView باستخدام mapID يمثّل نمط خريطة مستند إلى السحابة الإلكترونية محدّد في مشروعك.

يتطلّب تصميم الخرائط المستند إلى السحابة الإلكترونية معرّف خريطة يمثّل إعدادات خريطة من جهة الخادم تم إنشاؤها في مشروع Google Console. لمزيد من المعلومات حول إنشاء معرّف خريطة، يُرجى الاطّلاع على مستندات المطوّرين الخاصة بمعرّف الخريطة. للحصول على مزيد من التفاصيل حول تصميم ونشر نمط خريطة مستند إلى السحابة الإلكترونية، راجِع مستندات المطوّرين حول إنشاء أنماط خرائط مستندة إلى السحابة الإلكترونية وإدارتها.

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

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

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

تعريف المستخدمين بالمنتج

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

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

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

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

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