שיפור הביצועים במשחקים

החל מ-Android 14, מצב צריכת חשמל חדש בשם GAME ב-Android Dynamic Performance Framework ‏ (ADPF) מאפשר התאמה אישית של ביצועי הטלפון במהלך השימוש במשחק. ‫GAME מציין ל-Power HAL שאפליקציית משחק נמצאת בחזית. הסימן הזה מאפשר ל-Power HAL לאמץ שיטות לניהול צריכת החשמל בזמן משחק, כדי שהמשתמש ייהנה מביצועים יציבים ומשופרים.

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

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

זיהוי מצב צריכת החשמל והתראות

בקטע הזה מוסבר איך כלי ניהול צריכת החשמל מטפל במצבים GAME ו-GAME_LOADING.

מצב צריכת חשמל GAME

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

באיור הבא מוסבר זרימת המידע אל Power HAL כדי לציין את מצב ההפעלה GAME:

מצב משחק

איור 1. זרימת מידע שמציינת שמשחקים במשחק.

מצב ההפעלה GAME מוגדר תמיד לאפליקציות עם appCategory של GAME ב-AndroidManifest.xml.

מצב צריכת חשמל GAME_LOADING

מצב שיפור הטעינה פועל על ידי זיהוי של אפליקציית משחק במצב טעינה ושליחת התראה ל-Power HAL. ב-Android 13 הוסף מצב משחק חדש בשם isLoading ב-API שפונה למפתחים. מצב המשחק הזה משתמש במצב ההפעלה החדש GAME_LOADING בשירות Power Manager כדי להודיע ל-Power HAL על מצב המשחק ברמה העליונה. אחרי שהשכבה Power HAL מקבלת הודעה על מצב הטעינה של המשחק, היא יכולה לשנות את הגדרות הביצועים של הפלטפורמה ואת קצב השעון של המעבד, וכך לשפר את זמני הטעינה.

כדי לציין שמשחק נטען, אפליקציית המשחק משתמשת במרכז בקרת המשחקים כדי להגדיר מצב isLoading במנהל המשחקים. מנהל המשחקים מעביר את הסטטוס הזה אל Game Manager Service, שמשתמש ב-setPowerMode עם מצב החיסכון החדש GAME_LOADING כדי להפעיל את Power Manager Service. מצב ההפעלה GAME_LOADING מציין ל-Power HAL שהמשחק נמצא במצב טעינה, כדי ש-Power HAL יוכל לספק דחיפה לטעינה.

האיור הבא מסביר את זרימת המידע מהאפליקציה אל PowerHAL כדי לציין את מצב הטעינה:

loading-boost

איור 2. זרימת מידע שמציינת שמשחק נמצא במצב טעינה.

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

התאמה אישית של Power HAL באמצעות GAME ו-GAME_LOADING

כדי להשתמש במצבים GAME ו-GAME_LOADING, יצרני ציוד מקורי צריכים להתאים אישית את ההטמעה של Power HAL. ניהול צריכת החשמל ושיפור הביצועים הם תכונות שספציפיות לחומרה, ולכן לא נספק יישומי הפניה למצבים GAME או GAME_LOADING עד שנפרסם יישום הפניה למכשיר Google Pixel.

כדי לשפר את הביצועים במצב GAME ובמצב GAME_LOADING, יצרני ציוד מקורי יכולים לבחור ליישם שילוב של האמצעים הבאים:

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

בדיקת ההטמעה של מצב GAME

כדי לבדוק את ההטמעה של מצב GAME, משתמשים בבדיקות עם הקידומת testGamePowerMode_ ב-GameManagerServiceTests.java.

בדיקת ההטמעה של GAME_LOADING

כדי לבדוק את ההטמעה של מצב GAME_LOADING, אפשר להשתמש ב-android.gamemanager.cts.GameManagerTest#testSetGameContext. בבדיקה הזו המערכת מוודאת שאם GameManager::setGameContext() עם הקשר isLoading מפעיל את מצב טעינת המשחק ב-Power HAL במצב ביצועים.