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

החל מגרסה 14 של Android, מצב צריכת אנרגיה חדש בשם GAME במסגרת הביצועים הדינמיים של Android‏ (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 ב-Android 14 מציין לשירות ניהול האנרגיה שהמשתמש משחק במשחק. כש-HAL של החשמל מקבל הודעה על המצב GAME, הוא יכול לשנות את רמת החשמל כדי לשפר את הביצועים, להוריד את הטמפרטורה ולהאריך את חיי הסוללה בזמן המשחק.

בתרשים הבא מוסבר תהליך העברת המידע ל-Power HAL כדי לציין את מצב האנרגיה GAME:

game-mode

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

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

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

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

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

באיור הבא מוסבר תהליך העברת המידע מהאפליקציה ל-HAL של Power כדי לציין את סטטוס הטעינה:

loading-boost

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

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

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

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

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

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

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

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

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

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