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

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

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

ما أهمية تحسين تطبيق التنقّل؟

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

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

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

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

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

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

عرض الشاشة

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

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

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

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

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

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

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

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

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

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

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

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

يمكنك الاطّلاع على قسم عدد اللقطات في الثانية في مستندات مطوّري برامج Android Media Dev Center لمعرفة مزيد من المعلومات حول تعديل عدد اللقطات في الثانية.

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

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

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

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

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

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

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

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

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

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

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

تغيير تردد تحديث الموقع في نظام تحديد المواقع العالمي (GPS)

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

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

توعية المستخدمين

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

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

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

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

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