این سند بهترین روشها را برای بهینهسازی مصرف انرژی در برنامه ناوبری تلفن همراهی که با استفاده از Navigation SDK میسازید، توصیف میکند. در عین حال، مبادلاتی را که باید در هنگام به کارگیری این شیوه ها در نظر گرفته شود، تشریح می کند. به طور خاص، این سند شامل موارد زیر است:
- منابع پر مصرف، از بالاترین تا پایین ترین رتبه بندی شده اند.
- استراتژیهای بهینهسازی مصرف انرژی، به ترتیب اهمیت، با نرخ فریم شروع میشود.
- استراتژیهای کاربر نهایی برای آموزش کاربران برنامهتان برای مدیریت استفاده از دستگاه خود در حین پیمایش.
چرا برنامه ناوبری خود را بهینه کنید؟
بسته به موقعیت خود، کاربران برنامه شما ممکن است راهنمای ناوبری را برای مدت طولانی اجرا کنند. برای مثال، پیکهای راننده و تحویلدهنده میتوانند ساعتهای طولانی کار کنند و وظایف خود را در منطقهای ناآشنا انجام دهند. در این موارد، آنها به شدت به راهنمایی های گام به گام درون برنامه ای متکی هستند. این منجر به برخی مشکلات معمولی می شود:
- تخلیه باتری و در دسترس بودن شارژرها . استفاده زیاد از ناوبری می تواند باعث شود باتری دستگاه سریعتر از حد انتظار تخلیه شود. در حالی که بسیاری از کاربران می توانند با شارژ کردن دستگاه خود در وسیله نقلیه این مشکل را برطرف کنند، رانندگان دو چرخ نمی توانند.
- گاز گرفتگی دستگاه در اثر گرما . حتی کاربرانی که به طور مداوم دستگاه خود را شارژ می کنند نیز ممکن است با مشکلاتی مواجه شوند. مصرف برق زیاد در مدت زمان طولانی می تواند باعث گرم شدن دستگاه و در نتیجه کاهش حرارت و در نتیجه کاهش عملکرد شود.
برنامههای ناوبری گام به گام به ویژگیهای پرقدرت مانند صفحه نمایش، GPS و ارتباط رادیویی با برجهای سلولی متکی هستند، بنابراین بهترین تمرین برای بهینهسازی مصرف انرژی برنامه تلفن همراه شماست. علاوه بر این، شما باید نیازهای مصرف انرژی مخاطبان هدف خود را در نظر بگیرید تا بتوانید بین عملکرد و بهینه سازی مصرف برق، معاوضه های مناسب را انجام دهید.
چه چیزی بیشترین مصرف برق را دارد؟
این بخش فعالیت های درون برنامه ای مرتبط با مصرف انرژی بالا را به دو دسته تقسیم می کند:
- رندر صفحه نمایش
- به روز رسانی مکان
رندر صفحه نمایش
رندر صفحه نمایش معمولاً بیشترین مصرف انرژی را در برنامه های ناوبری تلفن همراه ایجاد می کند. هر بار که دستگاه نقشه و سایر عناصر رابط کاربری را روی صفحه میکشد، به پردازش GPU و CPU متکی است. به طور مشابه، هنگامی که کاربر آن صفحه را برای مدت طولانی روشن می گذارد، انرژی بیشتری نیز مصرف می کند.
تا حدودی، می توانید از رانندگان یا سوارانی که برای پیمایش به نقشه قابل مشاهده متکی هستند، انتظار مصرف انرژی بالایی داشته باشید، به خصوص اگر ساعت ها به طور مداوم از برنامه استفاده کنند. در این سناریو، برنامه همچنین نرخ بالاتری از رندر روی صفحه را انجام می دهد زیرا نقشه در زمان واقعی به روز می شود. در برخی موارد، صفحه نمایش می تواند تقریباً به طور مداوم دوباره ترسیم کند، به خصوص زمانی که کاربر بدون توقف از مکانی به مکان دیگر رانندگی می کند.
به روز رسانی مکان
علاوه بر رندر صفحه، دو فعالیت ناوبری دیگر انرژی دستگاه را مصرف می کند:
- برج سلولی رادیویی و استفاده از GPS
- به روز رسانی و اشتراک گذاری مکان، مانند ارائه ETA یا گزارش موقعیت یک وسیله نقلیه در یک ناوگان.
GPS و ارتباطات رادیویی سلولی هر دو به عملیات راه اندازی تشنه انرژی متکی هستند: GPS باید ماهواره ها را پیدا کند و رادیوهای سلولی باید با برج ها مذاکره کنند و ارتباط برقرار کنند. به این دلایل، آنها اساساً در طول مسیریابی به طور مداوم کار می کنند، حتی اگر رادیوهای سلولی برای 20-30 ثانیه فعال می مانند تا هزینه های راه اندازی را به حداقل برسانند. سیستم عامل این تنظیمات را کنترل می کند که نمی توانید به راحتی در برنامه خود پیکربندی کنید.
برای بهروزرسانی موقعیت مکانی، مصرف انرژی بر اساس عوامل غیرقابل پیشبینی متفاوت است. به عنوان مثال، فاصله بین دستگاه و ایستگاه پایه سلولی میزان مصرف برق را تعیین می کند، زیرا دستگاه از حداقل سیگنال لازم برای ادامه مسیریابی برای جلوگیری از تغییر دکل ها استفاده می کند. بنابراین، دستگاهی که در منطقه ای با اتصال ضعیف ناوبری می کند، نسبت به دستگاهی که نزدیک به ایستگاه پایه است، انرژی بیشتری مصرف می کند. علاوه بر این، برخی از برنامهها ممکن است بهروزرسانیهای مکان را با یک سرویس مدیریت ناوگان مرکزی به اشتراک بگذارند و بنابراین برای انجام این کار باید با یک سرور ارتباط برقرار کنند.
مصرف انرژی برنامه خود را بهینه کنید
چالش بهینهسازی مصرف انرژی در برنامههای ناوبری این است که این برنامهها به شدت به منابع پر انرژی وابسته هستند، که گزینههای شما را برای کاهش تأثیر بدون ایجاد معاوضههایی مانند محدود کردن استفاده از صفحه، محدود میکند. این بخش فهرستی از رویکردهایی را ارائه میکند که میتوانید هنگام بهینهسازی برنامه خود به ترتیب از بیشترین تا کمترین تأثیرگذاری داشته باشید.
نرخ فریم را تغییر دهید
صفحه نمایش آنچه را که نشان می دهد با فرکانس معروف به نرخ فریم به روز می کند. نرخ فریم معمولا با فریم در ثانیه (FPS) اندازه گیری می شود. از آنجایی که رندر صفحه نمایش از CPU یا GPU زیادی استفاده می کند، می توانید برای صرفه جویی در مصرف انرژی، نرخ فریم را کاهش دهید.
موازنه کاهش نرخ فریم این است که رندر صفحه می تواند کمتر روان به نظر برسد، به خصوص اگر نقشه به طور مکرر به روز شود. این ممکن است زمانی که نقشه بزرگنمایی میشود تا جزئیات بالایی را نشان دهد، زمانی که کاربر با سرعت بالا سفر میکند، یا زمانی که سرعت یا جهت را به میزان زیادی تغییر میدهد، آشکارتر باشد.
در دستگاههای iOS، Maps SDK برای iOS ویژگی preferredFrameRate را برای کنترل نرخ فریم نمایش میدهد. جدول زیر مقادیر شمارشگرGMSFrameRate
را نشان می دهد که می توانید تنظیم کنید: | از حداقل نرخ فریم برای صرفه جویی در مصرف باتری استفاده کنید. |
| از نرخ فریم متوسط برای ارائه رندر نرمتر و حفظ چرخههای پردازش استفاده کنید. |
| از حداکثر نرخ فریم برای یک دستگاه استفاده کنید. برای دستگاه های ارزان قیمت این 30 FPS است. یا دستگاه های پیشرفته 60 FPS است. |
برای مرجع، به GMSFrameRate در Google Navigation SDK برای اسناد iOS مراجعه کنید.
بدون نقشه پیمایش کنید
در حالی که نمیتوانید نحوه تنظیم روشنایی صفحه دستگاه توسط کاربر نهایی یا مدت روشن نگه داشتن صفحه نمایش خود را کنترل کنید، میتوانید گزینهای برای هدایت ناوبری بدون نقشه ارائه کنید. این به کاربر نهایی اجازه می دهد تا آن گزینه را برای صرفه جویی در مصرف برق انتخاب کند. به عنوان مثال، اگر رانندگان به طور منظم در یک محله کار می کنند، ممکن است اغلب به راهنمایی مبتنی بر نقشه نیاز نداشته باشند. پیمایش بدون نقشه را می توان با تنظیم مقصد و شروع راهنمایی در Navigation SDK اما عدم نمایش نقشه فعال کرد.
برای مخفی کردن GMSMapView یک خط کد اضافه کنید:
mapView.isHidden = true
Navigation SDK به بهروزرسانی مکانهای شناسایی شده در جاده، ETA و مسافت باقیمانده از سفر ادامه میدهد، و برنامه شما همچنان میتواند در تمام رویدادهایی که توسط SDK مطرح میشود ، مشترک شود. این برای هر موردی مناسب نیست و البته در مواردی که راننده نیاز به دیدن نقشه و پیروی از راهنمایی های بصری دارد، توصیه خوبی نیست. اسکرین شات های زیر مقایسه ای کنار هم از تغییر نماهای نقشه در حین پیمایش فعال را نشان می دهد.
از سبک نقشه تاریک استفاده کنید
طراحی نقشه را طوری در نظر بگیرید که از یک تم تیره استفاده کنید تا میزان انرژی مورد نیاز برای ارائه نقشه روی صفحه را کاهش دهید.
Navigation SDK نقشههای خود را با استفاده از Google Maps SDK برای iOS ارائه میکند، که شامل گزینههایی برای استایل دادن به نماهای نقشه غیر ناوبری در برنامه شما است. نمای ناوبری از حالت تاریک اجباری نیز پشتیبانی می کند. این ممکن است به دلیل تفاوت در نوع صفحه نمایش، همه دستگاه ها را به یک شکل تحت تأثیر قرار ندهد، اما در برخی موارد باعث صرفه جویی در مصرف انرژی می شود. یک مطالعه اخیر نشان داد که میزان انرژی ذخیره شده توسط حالت تاریک در برخی از صفحهها به روشنایی صفحه نمایش برای شروع بستگی دارد. برای مثال، حالت تاریک در صفحههایی که روی روشنایی کامل تنظیم شدهاند، انرژی بیشتری نسبت به صفحههایی که روشنایی آنها از قبل روی 30 تا 50 درصد حداکثر تنظیم شده است، صرفهجویی میکند. این مهم است که هنگام استفاده از حالت تاریک برای برنامه های خود در نظر بگیرید، زیرا صرفه جویی در مصرف انرژی نسبت به نحوه تنظیم روشنایی صفحه توسط کاربر نهایی خواهد بود.
برای کسب اطلاعات بیشتر در مورد تغییر رابط کاربری ناوبری، به اصلاح رابط کاربری ناوبری مراجعه کنید. GMSMapView خود را با یک mapID که نشان دهنده سبک نقشه مبتنی بر Cloud است که در پروژه شما تعریف شده است، پیکربندی کنید .
طراحی نقشه مبتنی بر ابر به شناسه نقشه نیاز دارد که نشان دهنده پیکربندی نقشه سمت سرور است که در پروژه کنسول Google شما ایجاد شده است. برای اطلاعات بیشتر در مورد ایجاد شناسه نقشه، به مستندات توسعه دهنده Map ID مراجعه کنید. برای جزئیات بیشتر در مورد طراحی و استقرار سبک نقشه مبتنی بر Cloud به مستندات توسعه دهنده در مورد ایجاد و مدیریت سبک های نقشه مبتنی بر ابر مراجعه کنید.
فرکانس بهروزرسانی موقعیت مکانی GPS را تغییر دهید
هنگام در نظر گرفتن مصرف انرژی از بهروزرسانیهای موقعیت مکانی ارسال شده از دستگاه، بیشتر بر تعداد بهروزرسانیهای مکان تمرکز کنید تا میزان دادههای ارسال شده در انتقال.
این چیزی نیست که بتوانید مستقیماً در Navigation SDK کنترل کنید. همین توصیه برای استفاده از منابع موقعیت مکانی غیر GPS (Cell و WiFi) نیز صدق می کند.
به کاربران خود آموزش دهید
کاربران برنامه شما ممکن است بخواهند بدانند چگونه مصرف انرژی خود را بهینه کنند. برای کمک به کاهش مصرف انرژی در برنامه های خود، به کاربران خود توصیه کنید موارد زیر را انجام دهند:
- گوشی رو قفل کن
- برنامه ناوبری را در پس زمینه قرار دهید
- در صورت امکان از مسیریابی بدون نقشه استفاده کنید
- کاهش روشنایی صفحه، یا با استفاده از حالت تاریک برای صفحه نمایش های OLED و AMOLED، یا با فعال کردن روشنایی تطبیقی
- دستگاه را خنک نگه دارید
- در صورت وجود به Wi-Fi داخل خودرو متصل شوید
مصرف برق را اندازه گیری کنید
می توانید از ابزارهای حرفه ای برای اندازه گیری مصرف برق استفاده کنید، اما اغلب به دست آوردن آنها دشوار یا پرهزینه است. برنامهها و ابزارهای نمایهسازی IDE مانند Power Profiler در Android Studio و صفحه استفاده از باتری در XCode Organizer مصرف انرژی را اندازهگیری میکنند، اما حذف اثر فرآیندهای پسزمینه یا تنظیم یک مبنای عملکرد برای اندازهگیری ممکن است دشوار باشد. در برخی موارد محدودیتهای دستگاه ممکن است از دسترسی به دادههای ضروری جلوگیری کند.
میتوانید از سختافزار نظارت بر توان ویژه استفاده کنید و پیکربندی اتصال باتری را تغییر دهید، و محصولات و خدمات تجاری برای انجام این کار به شما کمک میکنند. توجه داشته باشید که اصلاح دستگاه ها به این روش ممکن است گارانتی دستگاه را باطل کند.