Game Mode API מאפשר לכם לבצע אופטימיזציה של המשחק כדי להשיג את הביצועים הטובים ביותר או את חיי הסוללה הארוכים ביותר, כשהמשתמש בוחר את מצב המשחק המתאים.
לחלופין, אפשר לשלוח בקשות להתערבויות במצב משחק כדי לשפר את הביצועים של משחקים שהמפתחים כבר לא מעדכנים.
ממשק ה-API של מצב המשחק וההתערבויות זמינים ב:
- מכשירי Android 12
- מכשירים עם Android מגרסה 13 ואילך
כל משחק יכול להטמיע את ההתנהגות של Game Mode API, להציע הגדרות של התערבויות במצב משחק ליצרני ציוד מקורי (OEM) או לבטל את ההסכמה להתערבויות במצב משחק.
הגדרה
כדי להשתמש ב-Game Mode API במשחק שלכם, אתם צריכים:
מורידים ומתקינים את Android 13 SDK.
בקובץ
AndroidManifest.xml, מגדירים את האפליקציה כמשחק באמצעות המאפייןappCategoryברכיב<application>:
android:appCategory="game"
- כדי לשאול על מצב המשחק הנוכחי, מוסיפים את השאלה הבאה לפעילות הראשית:
Java
// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
// Get GameManager from SystemService
GameManager gameManager = Context.getSystemService(GameManager.class);
// Returns the selected GameMode
int gameMode = gameManager.getGameMode();
}
Kotlin
// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Get GameManager from SystemService
val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?
// Returns the selected GameMode
val gameMode = gameManager?.gameMode
}
| מצב משחק נתמך | תיאור |
|---|---|
| לא נתמך | המשחק לא מצהיר על תמיכה ב-Game Mode API ולא תומך בהתערבויות של Game Mode. |
| רגילות | המשתמש לא בחר מצב משחק או שהוא בחר במצב רגיל. |
| ביצועים | מספק את קצב הפריימים עם ההשהיה הכי נמוכה, בתמורה לחיי סוללה ודיוק מופחתים. |
| סוללה | ההגדרה הזו מאפשרת להאריך את חיי הסוללה ככל האפשר, אבל איכות התמונה או קצב הפריימים יהיו נמוכים יותר. |
מוסיפים קוד לשאילתת מצב מצב המשחק בפונקציה
onResume:
שיטות מומלצות
אם המשחק שלכם כבר תומך בכמה רמות נאמנות וקצבי פריימים, כדאי לזהות את ההגדרות המתאימות למצבי ביצועים וחיסכון בסוללה:
כדי להשיג באופן עקבי את קצב הפריימים המקסימלי במכשיר, כדאי לשקול הפחתות קלות באיכות כדי להשיג קצב פריימים גבוה יותר.
כדי לשפר את חיי הסוללה, כדאי לבחור קצב רענון נמוך יותר של המסך (למשל, 30Hz או 60Hz) ולהשתמש בטכניקה של קצב פריימים קבוע כדי לטרגט את הקצב המופחת.
במשחקים באיכות גבוהה כמו משחקי יריות בגוף ראשון, זירות קרב מרובות משתתפים באינטרנט (MOBAs) ומשחקי תפקידים (RPGs), כדאי להתמקד בהשגת קצב פריימים גבוה ועקבי כדי למקסם את חוויית המשתמש.
גם במשחקים באיכות גבוהה וגם במשחקים קלילים, כדאי לתמוך במצב חיסכון בסוללה כדי להאריך את זמן המשחק על ידי הפחתת קצב הפריימים המקסימלי.
הצהרה על תמיכה במצבי משחק
כדי להצהיר על תמיכה במצבי משחק ולבטל התערבויות של יצרני ציוד מקורי (OEM) במצבי משחק, קודם צריך להוסיף את הגדרת מצב המשחק לרכיב <application> בקובץ AndroidManifest.xml:
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
לאחר מכן יוצרים קובץ game_mode_config.xml בספרייה res/xml/ של הפרויקט עם התוכן הבא:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="true"
android:supportsPerformanceGameMode="true"
/>
החלפת מצבי משחק
כדי לעבור בין מצבי המשחק, אפשר להשתמש במרכז בקרת המשחקים (שזמין במכשירי Pixel) או באפליקציות דומות שסופקו על ידי יצרני ציוד מקורי (OEM). אפשר גם להשתמש בפקודת Game Mode shell במהלך הפיתוח.
אם אתם משתמשים בלוח הבקרה למשחקים וסמל האופטימיזציה לא מוצג כשמפעילים את המשחק, יכול להיות שתצטרכו להעלות את האפליקציה ל-Google Play Console ולהתקין אותה דרך חנות Play. מידע על בדיקת אפליקציות בחנות Play זמין במאמר בנושא שיתוף פנימי של חבילות App Bundle ו-APK.
איור 1. מרכז בקרת המשחקים מוצג כשכבת-על מעל המשחק שפועל במכשיר Pixel.
באיור 1, אפשר לשנות את מצב המשחק של המשחק הפועל באמצעות הווידג'ט 'אופטימיזציה'. כפי שמוצג בווידג'ט, המשחק פועל כרגע במצב PERFORMANCE.
במהלך הפיתוח, אם אתם משתמשים במכשיר בלי מרכז בקרת המשחקים והיצרן לא מספק דרך להגדיר את מצב המשחק לכל אפליקציה, אתם יכולים לשנות את הסטטוס של מצב המשחק באמצעות adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>אפליקציה לדוגמה
בדוגמה לשימוש ב-Game Mode API מודגש איך אפשר לבצע אופטימיזציה של מכסות התדירות (FPS) ורזולוציית הרינדור כדי לחסוך כ-25% מהסוללה באפליקציות.
הבא
כדי לשפר את הביצועים של משחק כשאי אפשר לספק עדכונים למשחק, אפשר לקרוא על התערבויות במצב משחק.