يمكن أن يؤثر استخدام رصد الموقع الجغرافي في الخلفية بشكل كبير في عمر البطارية. يدعم Android القيود المفروضة على رصد الموقع الجغرافي في الخلفية، ما يدفع المطوّرين إلى تحسين تطبيقاتهم لزيادة كفاءة البطارية. وتُعدّ هذه التحسينات مفيدة لجميع الأجهزة، بغض النظر عن إصدار Android الذي تعمل به.
باستخدام حدود رصد الموقع الجغرافي في الخلفية:
- يتم تقييد رصد الموقع الجغرافي في الخلفية ويتم احتساب الموقع الجغرافي وإرساله بضع مرات فقط في الساعة.
- تكون عمليات البحث عن شبكات Wi-Fi أكثر تحفّظًا، ولا يتم احتساب الإشعارات بشأن الموقع الجغرافي عندما يظل الجهاز متصلاً بنقطة الوصول الثابتة نفسها.
- تتغيّر استجابة الحدود الجغرافية من عشرات الثواني إلى دقيقتين تقريبًا. يؤدي هذا التغيير إلى تحسين أداء البطارية بما يصل إلى 10 مرات على بعض الأجهزة.
المعرفة المطلوبة
يفترض هذا المستند الإلمام بواجهات برمجة التطبيقات التالية:
- خدمات الموقع الجغرافي من Google توفّر واجهات برمجة التطبيقات هذه دقة أعلى وتفرض عبئًا أقل على البطارية مقارنةً بواجهات برمجة التطبيقات للموقع الجغرافي لإطار العمل.
- موفِّر الموقع المدمج: تجمع واجهة برمجة التطبيقات هذه بين إشارات من نظام تحديد المواقع العالمي (GPS) وشبكة Wi-Fi وشبكات الجوّال، بالإضافة إلى مقياس التسارع والجيروسكوب ومقياس المغناطيسية وأدوات الاستشعار الأخرى.
- الحدود الجغرافية: تم إنشاء واجهة برمجة التطبيقات هذه استنادًا إلى واجهة برمجة التطبيقات "موفِّر الموقع المدمج"، وتم تحسينها لتعزيز أداء البطارية.
التعرّف على استنزاف البطارية
يرتبط جمع بيانات الموقع الجغرافي واستنزاف البطارية على النحو التالي:
- الدقة: دقة بيانات الموقع الجغرافي بشكل عام، كلما زادت الدقة، زاد استنزاف البطارية.
- معدّل التكرار: معدّل تكرار احتساب الموقع الجغرافي كلما زاد معدل تكرار احتساب الموقع الجغرافي، زاد استهلاك طاقة البطارية.
- وقت الاستجابة: مدى سرعة تسليم بيانات الموقع الجغرافي يتطلّب تقليل وقت الاستجابة عادةً استهلاك المزيد من طاقة البطارية.
الدقة
يمكنك تحديد دقة الموقع الجغرافي باستخدام طريقة setPriority()، مع تمرير إحدى القيم التالية كوسيطة:
PRIORITY_HIGH_ACCURACYيوفّر الموقع الجغرافي الأكثر دقة، والذي يتم حسابه باستخدام أكبر عدد ممكن من المدخلات (يتم تفعيل نظام تحديد المواقع العالمي (GPS) وشبكة Wi-Fi وشبكة الجوّال، ويتم استخدام مجموعة متنوعة من أدوات الاستشعار)، وقد يؤدي ذلك إلى استنزاف كبير لطاقة البطارية.- يوفّر
PRIORITY_BALANCED_POWER_ACCURACYموقعًا جغرافيًا دقيقًا مع تحسين استهلاك الطاقة. نادرًا ما يستخدم نظام تحديد المواقع العالمي (GPS). يستخدم عادةً مزيجًا من معلومات شبكة Wi-Fi وشبكة الجوّال لاحتساب الموقع الجغرافي للجهاز. - تعتمد ميزة
PRIORITY_LOW_POWERبشكل كبير على أبراج الاتصالات وتتجنّب إدخالات نظام تحديد المواقع العالمي (GPS) وشبكة Wi-Fi، ما يوفّر دقة تقريبية (على مستوى المدينة) مع الحدّ من استنزاف البطارية. - يتلقّى
PRIORITY_PASSIVEالمواقع الجغرافية بشكل سلبي من التطبيقات الأخرى التي تم احتساب الموقع الجغرافي لها مسبقًا.
استخدِم خيارات الطاقة المتوازنة أو الطاقة المنخفضة لتلبية احتياجات الموقع الجغرافي لمعظم التطبيقات. احتفِظ بالدقة العالية للتطبيقات التي تعمل في المقدّمة وتتطلّب تعديلات على الموقع الجغرافي في الوقت الفعلي (مثل تطبيق الخرائط).
التكرار
يمكنك تحديد معدّل تكرار الموقع الجغرافي باستخدام طريقتَين:
- استخدِم طريقة
setIntervalMillis()لتحديد الفترة الزمنية لحساب الموقع الجغرافي لتطبيقك. - استخدِم طريقة
setMinUpdateIntervalMillis()لتحديد الفاصل الزمني لتلقّي المواقع الجغرافية للتطبيقات الأخرى.
يجب تمرير أكبر قيمة ممكنة عند استخدام setIntervalMillis(). وينطبق ذلك بشكل خاص على رصد الموقع الجغرافي في الخلفية، والذي غالبًا ما يؤدي إلى استنزاف البطارية. يجب حجز فواصل زمنية لبضع ثوانٍ لحالات الاستخدام في المقدّمة.
تفرض قيود رصد الموقع الجغرافي في الخلفية التي تم تقديمها في Android 8.0 (مستوى واجهة برمجة التطبيقات 26) هذه الاستراتيجيات، ولكن يجب أن يسعى تطبيقك إلى فرضها على الأجهزة التي تعمل بنظام التشغيل Android 7.0 (مستوى واجهة برمجة التطبيقات 24) والإصدارات الأقدم.
وقت الاستجابة
يمكنك تحديد وقت الاستجابة باستخدام طريقة setMaxUpdateDelayMillis()،
وعادةً ما يتم تمرير قيمة أكبر بعدة مرات من الفاصل الزمني
المحدّد في طريقة setIntervalMillis(). يؤدي هذا الإعداد إلى تأخير إرسال الموقع الجغرافي، وقد يتم إرسال عدة إشعارات بشأن الموقع الجغرافي على دفعات.
يساعد هذان التغييران في تقليل استهلاك البطارية.
إذا لم يكن تطبيقك بحاجة إلى إشعار بشأن الموقع الجغرافي على الفور، عليك تمرير أكبر قيمة ممكنة إلى طريقة setMaxUpdateDelayMillis()، ما يؤدي إلى زيادة وقت الاستجابة بشكل فعّال للحصول على المزيد من البيانات وكفاءة البطارية.
عند استخدام الحدود الجغرافية، يجب أن تمرّر التطبيقات قيمة كبيرة إلى طريقة
setNotificationResponsiveness() للحفاظ على الطاقة. ننصح باستخدام قيمة تبلغ خمس دقائق أو أكثر.
محتوى إضافي للقراءة
لمزيد من المعلومات، يمكنك الاطّلاع على المستندات التالية:
- الاقتراحات: يوضّح هذا الدليل بعض الإجراءات المحدّدة المقترَحة التي يمكنك اتّخاذها لتحسين تأثير تطبيقك في عمر البطارية.
- حالات الاستخدام: يقدّم هذا الدليل العديد من حالات الاستخدام الشائعة التي قد تستخدم فيها الخدمات المستندة إلى الموقع الجغرافي وكيفية تحسين تأثيرها في عمر البطارية في هذه الحالات.