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

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

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

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

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

این سند فرض می‌کند که با میاناهای برنامه‌سازی کاربردی زیر آشنایی دارید:

آشنایی با خالی شدن شارژ باتری

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

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

درستی

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

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

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

بسامد

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

  • از روش setIntervalMillis() برای مشخص کردن فاصله زمانی محاسبه مکان برنامه‌تان استفاده کنید.
  • از روش setMinUpdateIntervalMillis() برای مشخص کردن فاصله زمانی دریافت مکان برنامه‌های دیگر استفاده کنید.

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

محدودیت‌های مکان پس‌زمینه‌ای که در Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) معرفی شده است این استراتژی‌ها را اعمال می‌کند، اما برنامه‌تان باید تلاش کند آن‌ها را در دستگاه‌های دارای Android نسخه ۷.۰ (سطح میانای برنامه‌سازی کاربردی ۲۴) و پایین‌تر اعمال کند.

تأخیر

می‌توانید تأخیر را بااستفاده از روش setMaxUpdateDelayMillis() مشخص کنید، معمولاً با ارسال مقداری که چندین برابر بزرگ‌تر از فاصله زمانی مشخص‌شده در روش setIntervalMillis() است. این تنظیم ارسال مکان را به‌تأخیر می‌اندازد و ممکن است به‌روزرسانی‌های مکان به‌صورت دسته‌ای ارسال شود. این دو تغییر به کاهش مصرف باتری کمک می‌کند.

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

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

مطالعه بیشتر

برای اطلاعات بیشتر، اسناد زیر را ببینید:

  • توصیه‌ها: این راهنما برخی‌از اقدامات توصیه‌شده واقعی را که می‌توانید برای بهبود تأثیر برنامه‌تان بر عمر باتری استفاده کنید، ارائه می‌دهد.
  • موارد استفاده: این راهنما چندین مورد استفاده رایج را ارائه می‌دهد که ممکن است در آن‌ها از خدمات مکان استفاده کنید و نحوه بهینه‌سازی تأثیر بر عمر باتری برای آن موارد را توضیح می‌دهد.