درباره مکان پس‌زمینه و عمر باتری

استفاده از موقعیت مکانی پس‌زمینه می‌تواند به طور قابل توجهی بر عمر باتری تأثیر بگذارد. اندروید از محدودیت‌هایی برای جمع‌آوری موقعیت مکانی پس‌زمینه پشتیبانی می‌کند و توسعه‌دهندگان را ترغیب می‌کند تا برنامه‌های خود را برای کارایی بهتر باتری بهینه کنند. این بهینه سازی ها برای همه دستگاه ها، صرف نظر از نسخه اندرویدی که در حال اجرا هستند، مفید است.

با محدودیت های موقعیت مکانی پس زمینه :

  • جمع‌آوری مکان پس‌زمینه کاهش می‌یابد و مکان محاسبه می‌شود و تنها چند بار در ساعت تحویل داده می‌شود.
  • اسکن‌های Wi-Fi محافظه‌کارانه‌تر هستند و زمانی که دستگاه به همان نقطه دسترسی ثابت متصل می‌ماند، به‌روزرسانی‌های مکان محاسبه نمی‌شوند.
  • پاسخگویی Geofencing از ده ها ثانیه به تقریباً دو دقیقه تغییر می کند. این تغییر عملکرد باتری را بهبود می‌بخشد—تا 10 برابر در برخی دستگاه‌ها.

دانش مورد نیاز

این سند مستلزم آشنایی با APIهای زیر است:

تخلیه باتری را درک کنید

جمع آوری مکان و تخلیه باتری به شرح زیر مرتبط است:

  • دقت: دقت داده های مکان. به طور کلی، هرچه دقت بالاتر باشد، تخلیه باتری بیشتر است.
  • فرکانس: هر چند وقت یکبار مکان محاسبه می شود. هر چه مکان مکرر محاسبه شود، باتری بیشتری مصرف می شود.
  • تأخیر: اطلاعات مکان با چه سرعتی تحویل داده می شود. تأخیر کمتر معمولاً به باتری بیشتری نیاز دارد.

دقت

می توانید دقت مکان را با استفاده از متد setPriority() مشخص کنید و یکی از مقادیر زیر را به عنوان آرگومان ارسال کنید:

  • PRIORITY_HIGH_ACCURACY دقیق ترین مکان ممکن را ارائه می دهد که با استفاده از ورودی های مورد نیاز محاسبه می شود (GPS، Wi-Fi و سلول را فعال می کند و از انواع سنسورها استفاده می کند) و ممکن است باعث تخلیه قابل توجه باتری شود.
  • PRIORITY_BALANCED_POWER_ACCURACY موقعیت مکانی دقیق را در عین بهینه سازی برای قدرت فراهم می کند. به ندرت از GPS استفاده می کند. معمولاً از ترکیبی از Wi-Fi و اطلاعات سلولی برای محاسبه مکان دستگاه استفاده می کند.
  • PRIORITY_LOW_POWER تا حد زیادی به دکل‌های سلولی متکی است و از ورودی‌های GPS و Wi-Fi اجتناب می‌کند و دقت درشت (در سطح شهر) را با حداقل تخلیه باتری ارائه می‌کند.
  • PRIORITY_NO_POWER مکان ها را به صورت غیرفعال از برنامه های دیگر دریافت می کند که مکان قبلاً برای آنها محاسبه شده است.

برای برآوردن نیازهای مکان اکثر برنامه ها از گزینه های قدرت متعادل یا کم مصرف استفاده کنید. دقت بالایی را برای برنامه‌هایی که در پیش‌زمینه اجرا می‌شوند و به به‌روزرسانی‌های لحظه‌ای مکان نیاز دارند (مثلاً یک برنامه نقشه‌برداری) در نظر بگیرید.

فرکانس

می توانید فرکانس مکان را با استفاده از دو روش مشخص کنید:

  • از متد setinterval() برای تعیین فاصله زمانی برای محاسبه مکان برنامه خود استفاده کنید.
  • از متد setFastestInterval() برای تعیین فاصله زمانی دریافت مکان برنامه های دیگر استفاده کنید.

هنگام استفاده از setInterval() بزرگترین مقدار ممکن را ارسال کنید. این امر به ویژه برای جمع آوری مکان در پس زمینه، که اغلب باتری را تخلیه می کند، صادق است. فواصل چند ثانیه ای را برای موارد استفاده پیش زمینه رزرو کنید.

محدودیت‌های موقعیت مکانی پس‌زمینه معرفی‌شده در Android 8.0 (سطح API 26) این استراتژی‌ها را اعمال می‌کنند، اما برنامه شما باید تلاش کند تا آن‌ها را در دستگاه‌های دارای Android 7.0 (سطح API 24) و پایین‌تر اعمال کند.

تأخیر

شما می توانید تاخیر را با استفاده از متد setMaxWaitTime() تعیین کنید، معمولا مقداری را ارسال می کند که چندین برابر بیشتر از فاصله مشخص شده در متد setInterval() است. این تنظیم تحویل مکان را به تأخیر می‌اندازد و ممکن است چندین به‌روزرسانی مکان به صورت دسته‌ای ارائه شود. این دو تغییر به کاهش مصرف باتری کمک می کند.

اگر برنامه شما فوراً به به‌روزرسانی موقعیت مکانی نیاز ندارد، باید بیشترین مقدار ممکن را به متد setMaxWaitTime() منتقل کنید و به طور مؤثر تاخیر را برای داده‌ها و کارایی باتری بیشتر معامله کنید.

هنگام استفاده از geofences، برنامه ها باید مقدار زیادی را به متد setNotificationResponsiveness() ارسال کنند تا قدرت حفظ شود. مقدار پنج دقیقه یا بیشتر توصیه می شود.

در ادامه مطلب

برای اطلاعات بیشتر به اسناد زیر مراجعه کنید:

  • توصیه ها : این راهنما برخی از اقدامات توصیه شده مشخص را ارائه می دهد که می توانید از آنها برای بهبود تأثیر برنامه خود بر عمر باتری استفاده کنید.
  • موارد استفاده : این راهنما چندین مورد استفاده متداول را ارائه می دهد که ممکن است از خدمات مکان استفاده کنید و چگونه می توانید تأثیر آن بر عمر باتری را برای آن موارد بهینه کنید.