אופטימיזציה של צריכת החשמל לאפליקציה

במסמך הזה מתוארות שיטות מומלצות לאופטימיזציה של צריכת החשמל באפליקציית ניווט לנייד שאתם מפתחים באמצעות Navigation SDK. בנוסף, מוסבר במאמר מהם היתרונות והחסרונות של השימוש בשיטות האלה. במסמך הזה מפורטים במיוחד הנושאים הבאים:

  • מקורות של צריכת חשמל גבוהה, מדורגים מהגבוה לנמוך.
  • אסטרטגיות לאופטימיזציה של צריכת החשמל, לפי סדר החשיבות, החל מרזולוציית המסגרת.
  • שיטות למשתמשי קצה שיעזרו לכם ללמד את משתמשי האפליקציה איך לנהל את השימוש במכשיר בזמן הניווט.

למה כדאי לבצע אופטימיזציה של אפליקציית הניווט?

בהתאם למצב שלהם, משתמשי האפליקציה עשויים להפעיל הנחיות ניווט למשך פרקי זמן ארוכים. לדוגמה, נהגים וקוריירים יכולים לעבוד שעות ארוכות ולבצע משימות באזורים לא מוכרים. במקרים כאלה, הם מסתמכים במידה רבה על הנחיות מפורטות מפנייה לפנייה באפליקציה. כתוצאה מכך, נוצרות כמה בעיות טיפוסיות:

  • דליפת אנרגיה מהסוללה וזמינות של מטענים. שימוש מוגזם בניווט עלול לגרום לכך שהסוללות של המכשירים יתדללו מהר יותר מהצפוי. משתמשים רבים יכולים לפתור את הבעיה הזו על ידי טעינה של המכשיר ברכב, אבל רוכבי כלי רכב דו-גלגליים לא יכולים לעשות זאת.
  • האטת המכשיר בגלל התחממות. גם משתמשים שמטעינים את המכשיר באופן קבוע עלולים להיתקל בבעיות. צריכת חשמל גבוהה במשך פרקי זמן ארוכים עלולה לגרום להתחממות המכשיר, וכתוצאה מכך לוויסות תרמי ולירידה בביצועים.

אפליקציות ניווט עם מסלול מפורט מסתמכות על תכונות שצורכות הרבה חשמל, כמו מסך, GPS ותקשורת רדיו עם מגדלי סלולר. לכן מומלץ לבצע אופטימיזציה של צריכת החשמל באפליקציה לנייד. בנוסף, כדאי להביא בחשבון את הצרכים של קהל היעד לגבי צריכת חשמל, כדי שתוכלו למצוא את האיזון המתאים בין ביצועים לאופטימיזציה של צריכת החשמל.

מה צורך הכי הרבה חשמל?

בקטע הזה הפעילויות באפליקציה שמשויכות לצריכת חשמל גבוהה מחולקות לשתי קטגוריות:

  • עיבוד המסך
  • עדכוני מיקום

עיבוד המסך

בדרך כלל, עיבוד המסך גורם לצריכת האנרגיה הגבוהה ביותר באפליקציות ניווט לנייד. בכל פעם שהמכשיר מצייר מפה ורכיבים אחרים בממשק המשתמש במסך, הוא מסתמך על עיבוד של GPU ו-CPU. באופן דומה, כשהמשתמש משאיר את המסך הזה פועל למשך זמן רב, גם הצריכה של האנרגיה עולה.

במידה מסוימת, אפשר לצפות לצריכת חשמל גבוהה אצל נהגים או נוסעים שמסתמכים על מפה גלויה כדי לנווט, במיוחד אם הם משתמשים באפליקציה ברציפות במשך שעות רבות. בתרחיש הזה, האפליקציה גם מבצעת קצב רינדור גבוה יותר במסך כי המפה מתעדכנת בזמן אמת. במקרים מסוימים, המסך יכול להציג מחדש את התמונה כמעט באופן רציף, במיוחד כשהמשתמש נוסע ממיקום אחד למיקום אחר בלי לעצור.

עדכוני מיקום

בנוסף לעיבוד המסך, שתי פעילויות ניווט אחרות צורכות אנרגיה במכשיר:

  • שימוש באנטנה סלולרית וב-GPS
  • עדכונים של מיקום ושיתוף מיקום, למשל כדי לספק זמן הגעה משוער או לדווח על המיקומים של כלי רכב בצי.

גם ה-GPS וגם התקשורת ברדיו הסלולרי מסתמכים על פעולות הפעלה צורכות-אנרגיה: ה-GPS צריך למצוא לוויינים, ורדיו הסלולר צריך לנהל משא ומתן עם מגדלים ולבצע חיבור. לכן, הם פועלים באופן רציף במהלך הניווט, למרות שהרדיו הסלולרי נשאר פעיל למשך 20-30 שניות בניסיון לצמצם את עלויות ההפעלה. מערכת ההפעלה קובעת את ההגדרות האלה, ואי אפשר להגדיר אותן בקלות באפליקציה.

בעדכוני מיקום, צריכת החשמל משתנה בהתאם לגורמים בלתי צפויים. לדוגמה, המרחק בין המכשיר לתחנת הבסיס הסלולרית קובע את צריכת החשמל, כי המכשיר ישתמש באות המינימלי הנדרש כדי להמשיך את הניווט כדי להימנע מחילופי מגדלים. לכן, מכשיר שמנווט באזור עם קישוריות חלשה ישתמש באנרגיה יותר מאשר מכשיר שנמצא קרוב לתחנת בסיס. בנוסף, אפליקציות מסוימות עשויות לשתף עדכוני מיקום עם שירות מרכזי לניהול צי כלי רכב, ולכן הן יצטרכו לתקשר עם שרת כדי לעשות זאת.

אופטימיזציה של צריכת האנרגיה של האפליקציה

האתגר של אופטימיזציה של צריכת החשמל באפליקציות ניווט הוא שהאפליקציות האלה תלויות במידה רבה במשאבים שצורכים הרבה חשמל, מה שמגביל את האפשרויות שלכם לצמצם את ההשפעה בלי להתפשר, למשל על ידי הגבלת השימוש במסך. בקטע הזה מפורטת רשימה של שיטות שאפשר להשתמש בהן כשמבצעים אופטימיזציה לאפליקציה, לפי רמת ההשפעה שלהן (מהגבוהה ביותר ועד הנמוכה ביותר).

שינוי קצב הפריימים

המסך מעדכן את התצוגה בתדירות שנקראת קצב פריימים. קצב הפריימים נמדד בדרך כלל בפריימים לשנייה (FPS). עיבוד המסך צורך הרבה מעבד או מעבד גרפי, ולכן אפשר להקטין את קצב הפריימים כדי לחסוך בצריכת חשמל.

החיסרון של הפחתת קצב הפריימים הוא שהעיבוד של המסך עשוי להיראות פחות חלק, במיוחד אם המפה מתעדכנת בתדירות גבוהה. המצב הזה עשוי להיות בולט במיוחד כשהמפה מוגדרת להגדלה גבוהה כדי להציג פרטים מפורטים, כשהמשתמש נוסע במהירות גבוהה או כשיש שינוי משמעותי במהירות או בכיוון.

מידע נוסף על שינוי קצב הפריימים זמין בקטע Frame rate במסמכי העזרה למפתחים בAndroid Media Dev Center.

אתם לא יכולים לקבוע איך משתמש הקצה מגדיר את בהירות המסך של המכשיר או למשך כמה זמן הוא משאיר את המסך דלוק, אבל אתם יכולים לספק אפשרות לקבל הנחיות ניווט בלי מפה. כך משתמש הקצה יוכל לבחור באפשרות הזו כדי לחסוך בחשמל. לדוגמה, אם הנהגים עובדים באופן קבוע באותו שכונה, יכול להיות שהם לא יצטרכו הנחיות מבוססות-מפה בתדירות גבוהה. כדי להפעיל ניווט בלי מפה, צריך להגדיר יעד ולהתחיל הנחיה ב-Navigation SDK, בלי להציג מפה.

כדי להסתיר את ממשק המשתמש של הניווט, לא מוסיפים NavigationView או SupportNavigationFragment. אם כבר עשיתם זאת, מסירים את הקוד שמוסיף אותם. הקוד הבא הוא שינוי של אפליקציית הדגמה ל-Android של Navigation SDK, והוא מראה את השימוש בהערות כדי להסיר את הקוד שמוסיף את ממשק המשתמש של הניווט:

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

Navigation SDK ימשיך לעדכן את המיקומים של צילומי הכביש, את זמן ההגעה המשוער ואת המרחק שנותר לנסיעה, והאפליקציה עדיין תוכל להירשם לכל האירועים שה-SDK יוצר בזמן שהנהג ממשיך בנסיעה. האפשרות הזו לא מתאימה לכל תרחיש לדוגמה, וכמובן לא מומלצת במקרים שבהם הנהג צריך לראות את המפה ולפעול לפי הנחיות חזותיות. צילומי המסך הבאים ממחישים השוואה בין מצב התצוגה של המפה במהלך ניווט פעיל.

אפליקציית הדגמה שפועלת עם תצוגת המפה גלויה.
איור 1.Navigation SDK אפליקציית הדגמה ל-iOS שמוצג בה הדגמה של Data Back
אפליקציית הדגמה פועלת בלי תצוגת מפה גלויה.
איור 2.אפליקציית הדגמה שפועלת בלי תצוגת מפה גלויה. שימו לב שהזמן והמרחק שנותרו, וגם המיקום שצולם בדרך, עדיין מתעדכנים.

שימוש בסגנון כהה של מפה

כדאי להשתמש בעיצוב של מפה עם נושא כהה כדי לצמצם את כמות האנרגיה שנדרשת לעיבוד המפה במסך.

ה-Navigation SDK מעבד את המפות שלו באמצעות ה-SDK של מפות Google ל-Android, שמכיל אפשרויות לעיצוב תצוגות מפה באפליקציה שלא קשורות לניווט. תצוגת הניווט תומכת גם בהחלת מצב כהה באופן אוטומטי. יכול להיות שההגדרה הזו לא תשפיע על כל המכשירים באותה דרך בגלל הבדלים בסוג המסך, אבל היא מאפשרת לחסוך בחשמל במקרים מסוימים. מחקר שנערך לאחרונה מצא שסכום החיסכון באנרגיה במצב כהה במסכים מסוימים תלוי במידת הבהירות של המסך מלכתחילה. לדוגמה, מצב כהה חוסך יותר חשמל במסכים שמוגדרים לבהירות מלאה מאשר במסכים שהבהירות שלהם כבר מותאמת ל-30-50% מהבהירות המקסימלית. חשוב להביא את הנתון הזה בחשבון כשמשתמשים במצב כהה באפליקציות, כי חיסכון האנרגיה יהיה יחסי להגדרת הבהירות של המסך של משתמש הקצה.

מידע נוסף על שינוי ממשק המשתמש של הניווט זמין במאמר שינוי ממשק המשתמש של הניווט.

צילום מסך של Navigation SDK שפועל ב-iPhone 15 Pro עם סגנון מפה כהה.
איור 3.Navigation SDK שהוגדר עם סגנון מפה כהה

כדי ליצור סגנון כהה למפה, משתמשים באובייקט MapStyleOptions עם סגנון JSON שמייצג את סגנון המפה הכהה שבחרתם. אפשר ליצור סגנונות JSON מדור קודם באמצעות עורך הסגנונות הקודם בכתובת https://mapstyle.withgoogle.com/.

שינוי תדירות העדכון של מיקום ה-GPS

כשבודקים את צריכת האנרגיה של עדכוני המיקום שנשלחים מהמכשיר, כדאי להתמקד יותר בתדירות של עדכוני המיקום ולא בכמות הנתונים שנשלחים בהעברה.

אי אפשר לשלוט בכך ישירות ב-Navigation SDK, אבל אם האפליקציה ל-Android מבקשת מיקום באופן עצמאי, כדאי להיעזר בטיפים שמפורטים במאמר אופטימיזציה של המיקום לשימוש יעיל יותר בסוללה במסמכי העזרה למפתחים של Android. אותה עצה רלוונטית גם לשימוש במקורות מיקום שאינם GPS (סלולר ו-Wi-Fi).

שליחת עדכונים שוטפים למשתמשים

יכול להיות שהמשתמשים באפליקציה שלכם ירצו לדעת איך לבצע אופטימיזציה של צריכת החשמל. כדי לעזור למשתמשים לצמצם את צריכת החשמל באפליקציות שלהם, מומלץ להמליץ להם לבצע את הפעולות הבאות:

  • נעילת הטלפון
  • העברת אפליקציית הניווט לרקע
  • אם אפשר, להשתמש בניווט בלי מפה
  • להפחית את הבהירות של המסך באמצעות מצב כהה במסכים מסוג OLED ו-AMOLED, או באמצעות הפעלת התאמה אוטומטית של הבהירות
  • שמירה על טמפרטורה קרירה במכשיר
  • מתחברים לרשת ה-Wi-Fi ברכב, אם יש כזו.
במאמר איך להאריך את חיי הסוללה ככל האפשר במכשיר Android תוכלו לקרוא טיפים למשתמשי קצה בנושא הארכת חיי הסוללה ב-Android. חשוב לזכור שהעצות האלה כוללות פעולות שעלולות לפגוע ביעילות של אפליקציית הניווט, כפי שמתואר בקטע אופטימיזציה של צריכת החשמל של האפליקציה במדריך הזה.

מדידת צריכת החשמל

אפשר להשתמש בכלים ברמה מקצועית כדי למדוד את צריכת החשמל, אבל לרוב קשה להשיג אותם או שהם יקרים. אפליקציות וכלים ליצירת פרופילים של סביבת הפיתוח המשולבת (IDE), כמו Power Profiler ב-Android Studio והחלונית Battery Usage ב-XCode Organizer, מודדים את צריכת החשמל, אבל יכול להיות שיהיה קשה להסיר את ההשפעה של תהליכים ברקע או להגדיר בסיס ביצועים להשוואה. במקרים מסוימים, הגבלות במכשיר עשויות למנוע גישה לנתונים הנדרשים.

אפשר להשתמש בחומרה ייעודית למעקב אחר צריכת החשמל ולשנות את הגדרות החיבור של הסוללה. יש גם מוצרים ושירותים מסחריים שיעזרו לכם לעשות זאת. חשוב לזכור ששינוי המכשירים באופן הזה עלול לבטל את האחריות עליהם.