میانای برنامه‌سازی کاربردی «حالت بازی»

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

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

«میانای برنامه‌سازی کاربردی حالت بازی» و اقدامات مداخله‌ای در موارد زیر دردسترس است:

  • دستگاه‌های Android 12 را انتخاب کنید
  • دستگاه‌های دارای Android 13 یا بالاتر

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

راه‌اندازی

برای استفاده از «میانای برنامه‌سازی کاربردی حالت بازی» در بازی‌تان، این کارها را انجام دهید:

  1. کیت توسعه نرم‌افزار Android 13 را بارگیری و نصب کنید.

  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
}
حالت بازی پشتیبانی‌شده شرح
پشتیبانی‌نشده بازی از «میانای برنامه‌سازی کاربردی حالت بازی» پشتیبانی نمی‌کند و از اقدامات مداخله‌ای «حالت بازی» پشتیبانی نمی‌کند.
استاندارد کاربر حالت بازی را انتخاب نکرده است یا حالت استاندارد را انتخاب کرده است.
عملکرد نرخ فریم با کمترین تأخیر را در ازای کاهش عمر باتری و دقت ارائه می‌دهد.
باتری در ازای کاهش وفاداری یا نرخ فریم، طولانی‌ترین عمر باتری ممکن را ارائه می‌دهد.
  1. کدی را برای پُرسمان وضعیت حالت بازی در تابع onResume اضافه کنید:

    مثال با تنظیم کاربر «حالت باتری»

روال‌های مطلوب

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

  • برای دستیابی مداوم به حداکثر نرخ فریم دستگاه: برای دستیابی به نرخ فریم بالاتر، کاهش جزئی در وفاداری را درنظر بگیرید.

  • برای بهبود عمر باتری: نرخ بازآوری پایین‌تری برای نمایشگر انتخاب کنید (برای نمونه، ۳۰ هرتز یا ۶۰ هرتز) و از استفاده از گام‌بندی قاب برای هدف‌یابی نرخ کاهش‌یافته استفاده کنید.

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

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

اعلام پشتیبانی از «حالت‌های بازی»

برای اعلام پشتیبانی از «حالت‌های بازی» و ملغی کردن هرگونه مداخله «حالت بازی» توسط تولیدکنندگان تجهیزات اصلی، ابتدا پیکربندی «حالت بازی» را به عنصر <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» بارگذاری کنید و آن را ازطریق «فروشگاه Play» نصب کنید. برای کسب اطلاعات درباره آزمایش برنامه در «فروشگاه Play»، به هم‌رسانی داخلی دسته‌های برنامه و فایل‌های APK مراجعه کنید.

فعالیت «داشبورد بازی‌ها»! شکل ۱. «داشبورد بازی‌ها» به‌صورت رونهاد روی بازی درحال اجرا در دستگاه Pixel نشان داده می‌شود.

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

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

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

برنامه نمونه

نمونه Game Mode API نشان می‌دهد چگونه می‌توانید سقف‌های وضوح پردازش و نرخ فریم را بهینه کنید تا تقریباً ‎٪۲۵ در مصرف باتری برنامه‌هایتان صرفه‌جویی کنید.

بعدی

برای بهبود عملکرد بازی در مواقعی که ارائه به‌روزرسانی بازی امکان‌پذیر نیست، اقدامات مداخله‌ای «حالت بازی» را بخوانید.