החל מ-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 כדי לציין את מצב הטעינה:
איור 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 במצב ביצועים.