החל מ-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 ב-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 יוכל לספק חיזוק לטעינה.
באיור הבא מוסבר תהליך העברת המידע מהאפליקציה אל Power HAL כדי לציין את מצב הטעינה:
איור 2. זרימת מידע שמציינת שמשחק נמצא במצב טעינה.
לוח הבקרה של המשחק מאפשר למשתמשים להפעיל או להשבית את התכונה 'האצת הטעינה' באמצעות הגדרת הביצועים. הגדרת הביצועים תמיד מושבתת כברירת מחדל.
התאמה אישית של Power HAL באמצעות GAME ו-GAME_LOADING
כדי להשתמש במצבים GAME ו-GAME_LOADING, יצרני ציוד מקורי (OEM) צריכים להתאים אישית את ההטמעה של Power HAL.
ניהול צריכת החשמל ושיפור הביצועים הם תכונות שספציפיות לחומרה, ולכן לא נספק יישומי הפניה למצבים GAME או GAME_LOADING עד שנפרסם יישום הפניה למכשיר Google Pixel.
כדי לשפר את הביצועים במצב GAME ובמצב GAME_LOADING, יצרני ציוד מקורי יכולים לבחור ליישם שילוב של האמצעים הבאים:
- ייצוב קצב הפריימים
- הגברת מהירות השעון של המעבד
- הפחתה זמנית של הגבלת הטמפרטורה
- הקצאת עדיפות גבוהה יותר ל-CPU לאפליקציית המשחק שפועלת בחזית
- הפחתת ההגברה של המעבד (CPU) שמותאמת לאפליקציות רגילות ולא לאפליקציות של משחקים
- אופטימיזציה של אסטרטגיית חלוקת ההספק שקשורה לטמפרטורה
בדיקת ההטמעה של מצב GAME
כדי לבדוק את ההטמעה של מצב GAME, משתמשים בבדיקות עם הקידומת testGamePowerMode_ ב-GameManagerServiceTests.java.
בדיקת ההטמעה של GAME_LOADING
כדי לבדוק את ההטמעה של מצב GAME_LOADING, משתמשים ב-android.gamemanager.cts.GameManagerTest#testSetGameContext.
בבדיקה הזו מוודאים ש-GameManager::setGameContext() עם הקשר isLoading מפעיל את מצב טעינת המשחק ב-Power HAL באופטימיזציית ביצועים.