התערבות במצב משחק

התערבות במצב משחק הן אופטימיזציות ספציפיות למשחקים שהוגדרו על ידי יצרני ציוד מקורי (OEM) כדי לשפר את הביצועים של משחקים שכבר לא מתעדכנים למפתחים. לדוגמה:

  • שימוש בשינוי הגודל של מאגר הנתונים הזמני של windowManager.
  • שימוש ב-ANGLE במקום במנהלי התקנים של GLES מקוריים.

אתם יכולים לקבל תמיכה במשחקים ולנהל את Game Mode API, כדי לשנות אותו התערבויות במצב משחק שמסופקות על ידי ה-OEM.

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

בכל משחק יש אפשרות:

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

רקע

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

שינוי הגודל של מאגר הנתונים הזמני של windowManager

שינוי הגודל של מאגר הנתונים הזמני של WindowManager התערבות יכולה להפחית את עומס ה-GPU של המכשיר. הוא יכול גם להפחית צריכת הסוללה כשקצב הפריימים במשחק הוא יעד קצב הפריימים.

הפעלה של שינוי הגודל יכולה להוביל להפחתה של עד 30% מיחידת ה-GPU ו-10% מהסך הכולל צריכת החשמל של המערכת. התוצאות עשויות להשתנות בהתאם המכשיר שבו נעשה שימוש, התנאים הסביבתיים וגורמים אחרים, כמו בו-זמנית בעיבוד.

משחק לא קצבי שקשור ל-GPU צפוי להניב קצבי פריימים גבוהים יותר במהלך טעינות מופחתות של ה-GPU.

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

ויסות נתונים (throttle) של FPS

ויסות נתונים (throttle) של Android FPS הוא התערבות במצב משחק שעוזרת למשחקים לפעול קצב פריימים יציב יותר כדי להפחית את צריכת הסוללה. ההתערבות היא זמינה ב-Android 13 ואילך. לקבלת מידע נוסף אפשר לקרוא מידע נוסף במאמר סקירה כללית על ויסות נתונים (throttle).

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

בקטעים האלה נעשה שימוש בפקודה adb.

הגדרת המצבים

צריך לבטל את ההצטרפות למצבי משחק באפליקציה קובץ תצורה של מצב משחק לפני בדיקת ההתערבות במצב המשחק. אחרת הפלטפורמה תעקוף את ולכבד אותם רק כאופטימיזציה בתוך המשחק.

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(אופציונלי) גיבוי הגדרות המכשיר הקיימות

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

adb shell device_config get game_overlay <PACKAGE_NAME>

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

הערכת התערבות

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

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

בדוגמה שלמעלה, mode=2 הוא 'ביצועים' ו-mode=3 היא 'חיסכון בסוללה'. הערך downscaleFactor מצוין כאחוז חלה על הגדרת הגודל (לדוגמה, 0.7 הוא 70% ו-0.8 הוא 80%). 90% (0.9) שינוי גודל כמעט זניח, ואילו 50% (0.5) הוא משמעותי.

אזהרה: יכול להיות ששינוי הגודל של תהליכי צאצא לא ישתנה ב-Android 12. לחשבון במיוחד, עליכם לוודא שהודעות קופצות וחלונות קופצים עוברים עיבוד כראוי. רביעי מומלץ להגביל את הגדרת הגודל ל-70% לפחות.

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

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

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

הפסקת השימוש בהתערבות

אתם יכולים לקבוע אם התערבות תחול על המשחק שלכם על ידי ביטול ההסכמה. לכל התערבות יש הגדרה משלה לביטול ההסכמה.

  1. אותו קובץ XML config שמשמש לשליטה בהבעת הסכמה ובביטול ההצטרפות למשחק המצבים משמשים גם להגדרות ההתערבות:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. יוצרים מחדש את המשחק ושולחים אותו מחדש כדי לבטל את ההסכמה.

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

משאבים

מידע נוסף על מדידה ואופטימיזציה של ביצועי משחקים: