API حالت بازی

Game Mode API به شما اجازه می دهد تا زمانی که کاربر حالت بازی مربوطه را انتخاب می کند، بازی خود را برای بهترین عملکرد یا طولانی ترین عمر باتری بهینه کنید.

از طرف دیگر، می‌توانید برای بهبود عملکرد بازی‌هایی که دیگر توسط توسعه‌دهندگان به‌روزرسانی نمی‌شوند، درخواست‌هایی برای مداخلات حالت بازی ارسال کنید.

Game Mode API و مداخلات در دسترس هستند:

هر بازی ممکن است رفتار Game Mode API را اجرا کند، تنظیمات مداخلات Game Mode را به OEMها پیشنهاد دهد، یا از مداخلات Game Mode انصراف دهد .

راه اندازی

برای استفاده از Game Mode API در بازی خود، موارد زیر را انجام دهید:

  1. Android 13 SDK را دانلود و نصب کنید.

  2. در فایل AndroidManifest.xml ، با تنظیم ویژگی appCategory در عنصر <application> ، برنامه خود را به عنوان یک بازی اعلام کنید:

android:appCategory="game"
  1. حالت فعلی بازی را با اضافه کردن این مورد به فعالیت اصلی خود جستجو کنید:

جاوا

// 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();
}

کاتلین

// 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 پشتیبانی نمی کند.
استاندارد کاربر حالت بازی یا حالت استاندارد را انتخاب نکرده است.
عملکرد کمترین نرخ فریم تاخیر را در ازای کاهش عمر باتری و وفاداری ارائه می دهد.
باتری طولانی ترین عمر باتری ممکن را در ازای کاهش وفاداری یا نرخ فریم ارائه می دهد.
  1. برای درخواست وضعیت حالت بازی در تابع onResume کد اضافه کنید:

    مثال با تنظیم حالت باتری توسط کاربر

بهترین شیوه ها

اگر بازی شما از قبل از چندین هدف وفاداری و نرخ فریم پشتیبانی می‌کند، باید تنظیمات مناسب برای حالت‌های عملکرد و صرفه‌جویی باتری را مشخص کنید:

برای بازی‌های با کیفیت بالا مانند تیراندازی اول شخص، عرصه‌های نبرد آنلاین چندنفره (MOBA) و بازی‌های نقش‌آفرینی (RPG)، باید روی دستیابی به نرخ فریم ثابت بالا تمرکز کنید تا غوطه‌وری کاربر را به حداکثر برسانید.

هم برای بازی‌های با کیفیت بالا و هم برای بازی‌های معمولی، باید از حالت صرفه‌جویی در باتری پشتیبانی کنید تا با کاهش حداکثر نرخ فریم، زمان پخش را افزایش دهید.

پشتیبانی از حالت های بازی را اعلام کنید

برای اعلام پشتیبانی از حالت‌های بازی و لغو هرگونه مداخله در حالت بازی توسط 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 در حین توسعه استفاده کنید.

اگر از داشبورد بازی استفاده می‌کنید و نماد بهینه‌سازی هنگام راه‌اندازی بازی شما نمایش داده نمی‌شود، ممکن است لازم باشد برنامه خود را در کنسول Google Play آپلود کرده و از طریق فروشگاه Play نصب کنید. برای کسب اطلاعات درباره آزمایش برنامه در فروشگاه Play، به اشتراک گذاری داخلی بسته‌های برنامه و فایل‌های APK مراجعه کنید.

Game Dashboard Activity! شکل 1. داشبورد بازی با پوشش بازی در حال اجرا در دستگاه Pixel نشان داده شده است.

در شکل 1، حالت بازی بازی در حال اجرا را می توان از ویجت بهینه سازی تغییر داد. همانطور که در ویجت نشان داده شده است، بازی در حال حاضر در حالت PERFORMANCE اجرا می شود.

در طول توسعه، اگر از دستگاهی بدون داشبورد بازی استفاده می کنید و سازنده هیچ راهی برای تنظیم حالت بازی برای هر برنامه ارائه نمی دهد، می توانید وضعیت حالت بازی را از طریق adb تغییر دهید:

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

نمونه برنامه

نمونه Game Mode API نشان می‌دهد که چگونه می‌توانید FPS را بهینه کنید و درپوش‌های وضوح را برای صرفه‌جویی 25 درصدی انرژی در برنامه‌های خود بهینه کنید.

بعدی

وقتی امکان ارائه به‌روزرسانی‌های بازی وجود ندارد ، مداخلات حالت بازی را بخوانید تا عملکرد بازی را بهبود ببخشید.