ממשק API של מצב משחק

Game Mode API מאפשר לבצע אופטימיזציה של המשחק להשגת הביצועים הטובים ביותר חיי הסוללה הארוכים ביותר כשהמשתמש בוחר במצב המשחק המתאים.

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

ה-Game Mode API וההתמצאות זמינים ב:

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

הגדרה

כדי להשתמש ב-Game Mode API במשחק:

  1. מורידים ומתקינים את Android 13 SDK.

  2. בקובץ AndroidManifest.xml, להצהיר על האפליקציה כמשחק על ידי הגדרה של appCategory ב רכיב <application>:

android:appCategory="game"
  1. כדי לשלוח שאילתות למצב המשחק הנוכחי, מוסיפים את הקוד הבא לפעילות הראשית:

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 והוא לא תומך בהתערבויות במצב משחק.
רגילות המשתמש לא בחר מצב משחק או שהמשתמש בחר מצב רגיל.
ביצועים קצב הפריימים הנמוך ביותר של זמן אחזור קצר בתמורה לחיי סוללה ארוכים ולאיכות נמוכה.
סוללה חיי הסוללה ארוכים ככל האפשר בתמורה לאיכות נמוכה או לקצב פריימים נמוך יותר.
  1. צריך להוסיף קוד כדי לשלוח שאילתה על מצב מצב המשחק הפונקציה onResume:

    דוגמה עם הגדרת משתמש במצב סוללה

שיטות מומלצות

אם המשחק כבר תומך במגוון של איכות וקצב פריימים עליך לזהות את ההגדרות המתאימות לביצועים מצבי חיסכון בסוללה:

  • כדי להשיג את קצב הפריימים המקסימלי במכשיר באופן עקבי: ירידות דיוק כדי להשיג קצבי פריימים גבוהים יותר.

  • כדי לשפר את חיי הסוללה: מומלץ לבחור קצב רענון נמוך יותר של המסך (למשל, 30Hz או 60Hz) ושימוש בקצב פריימים כדי לטרגט בשיעור מופחת.

במשחקים באיכות גבוהה, כמו משחקי יריות בגוף ראשון, משחקים מרובי-משתתפים באינטרנט זירות קרב (MOBAs) ומשחקי תפקידים (משחקי תפקידים), צריך להתמקד השגת קצב פריימים עקבי וגבוה כדי למקסם את מעורבות המשתמשים.

צריך לתמוך במצב חיסכון בסוללה גם במשחקים באיכות גבוהה וגם במשחקים לקהל הרחב כדי להאריך את זמן המשחק על ידי הפחתת קצבי הפריימים המקסימליים.

הצהרה על תמיכה במצבי משחק

כדי להצהיר על תמיכה במצבי משחק ולבטל התערבות במצב משחק עד ליצרני ציוד מקורי, קודם צריך להוסיף את ההגדרה של מצב המשחק רכיב <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) או אפליקציות דומות שסופקו על ידי יצרני ציוד מקורי. לחלופין אפשר להשתמש בפקודת המעטפת של מצב משחק במהלך הפיתוח.

אם משתמשים במרכז בקרת המשחקים וסמל האופטימיזציה לא מופיע כשהמשחק יושק, יכול להיות שיהיה צורך להעלות את האפליקציה ל-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% מהחשמל באפליקציות.

הבא

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