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

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

שימוש בקצב רענון אופטימלי של המסך

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

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

שילוב או הפעלה של ספריית Swappy frame pacing

ערכת הכלים לפיתוח משחקים ל-Android‏ (AGDK) כוללת ספרייה לניהול קצב הפריימים שנקראת Swappy. Swappy מבצע אופטימיזציה של קצב הרענון של המסך במכשיר כך שיתאים ככל האפשר לקצב הפריימים של המשחק. אם אתם משתמשים במנוע גיימינג בהתאמה אישית, תוכלו לעיין במדריך Frame Pacing Library כדי ללמוד איך לשלב את הספרייה במנוע.

Swappy כבר משולב במנוע Unreal‏ (Frame Pacing for Mobile Devices) ובמנוע Unity‏ (PlayerSettings.Android.optimizedFramePacing), ומבצע אופטימיזציה של קצב הרענון של המסך אם הוא מופעל בפרויקט המשחק.

קריאה ל-API של קצב הפריימים ב-Android

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

שימוש ב-Vulkan API לצורכי גרפיקה

Android תומך בשני ממשקי API של גרפיקה: OpenGL ES API הישן ו-Vulkan API החדש. Vulkan הוא עכשיו ממשק ה-API הראשי של הגרפיקה ב-Android, והוא יעיל יותר מ-OpenGL ES. למידע נוסף על היתרונות של Vulkan ועל אופן השימוש בו, ראו שימוש ב-Vulkan לצורכי גרפיקה.

תגובה לתנאים התרמו-פיזיים של המכשיר

ניצול גבוה של המעבד המרכזי (CPU) והמעבד הגרפי (GPU) של המכשיר יוצר חום. יעילות האנרגיה יורדת ככל שהמכשיר מתחמם. אם המכשיר מתחמם יותר מדי, הוא מפחית את מהירות המעבד (CPU) והמעבד הגרפי (GPU) כדי לצמצם את צריכת החשמל ולאפשר למכשיר להתקרר. ההתנהגות הזו, שנקראת 'בקרת קצב (throttle) תרמית', משפיעה על הביצועים של המשחק ועל קצב שחיקה הסוללה. אתם יכולים להשתמש ב-Android Thermal API כדי לעקוב אחרי המצב התרמי של המכשיר, ולשנות את עומס העבודה של המשחק כדי למנוע הגבלת עוצמת המשחק עקב בעיות חום.

שליחת שאילתה לגבי מצב המשחק במכשיר

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

מקורות מידע נוספים

כלי לניתוחי צריכת אנרגיה ב-Android Studio

דוגמה להדגמה של יעילות צריכת האנרגיה ב-Unity (GitHub)