Game Mode API به شما اجازه می دهد تا زمانی که کاربر حالت بازی مربوطه را انتخاب می کند، بازی خود را برای بهترین عملکرد یا طولانی ترین عمر باتری بهینه کنید.
از طرف دیگر، میتوانید برای بهبود عملکرد بازیهایی که دیگر توسط توسعهدهندگان بهروزرسانی نمیشوند، درخواستهایی برای مداخلات حالت بازی ارسال کنید.
Game Mode API و مداخلات در دسترس هستند:
- دستگاه های Android 12 را انتخاب کنید
- دستگاههایی که اندروید 13 یا بالاتر دارند
هر بازی ممکن است رفتار Game Mode API را اجرا کند، تنظیمات مداخلات Game Mode را به OEMها پیشنهاد دهد، یا از مداخلات Game Mode انصراف دهد .
راه اندازی
برای استفاده از Game Mode API در بازی خود، موارد زیر را انجام دهید:
Android 13 SDK را دانلود و نصب کنید.
در فایل
AndroidManifest.xml
، با تنظیم ویژگیappCategory
در عنصر<application>
، برنامه خود را به عنوان یک بازی اعلام کنید:
android:appCategory="game"
- حالت فعلی بازی را با اضافه کردن این مورد به فعالیت اصلی خود جستجو کنید:
جاوا
// 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 پشتیبانی نمی کند. |
استاندارد | کاربر حالت بازی یا حالت استاندارد را انتخاب نکرده است. |
عملکرد | کمترین نرخ فریم تاخیر را در ازای کاهش عمر باتری و وفاداری ارائه می دهد. |
باتری | طولانی ترین عمر باتری ممکن را در ازای کاهش وفاداری یا نرخ فریم ارائه می دهد. |
برای درخواست وضعیت حالت بازی در تابع
onResume
کد اضافه کنید:
بهترین شیوه ها
اگر بازی شما از قبل از چندین هدف وفاداری و نرخ فریم پشتیبانی میکند، باید تنظیمات مناسب برای حالتهای عملکرد و صرفهجویی باتری را مشخص کنید:
برای دستیابی مداوم به حداکثر نرخ فریم دستگاه: کاهش جزئی در وفاداری را برای دستیابی به نرخ فریم بالاتر در نظر بگیرید.
برای بهبود عمر باتری: نرخ تازهسازی نمایشگر پایینتری را انتخاب کنید (مثلاً 30 هرتز یا 60 هرتز) و از ریتم فریم برای هدفگیری نرخ کاهشیافته استفاده کنید .
برای بازیهای با کیفیت بالا مانند تیراندازی اول شخص، عرصههای نبرد آنلاین چندنفره (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 مراجعه کنید.
شکل 1. داشبورد بازی با پوشش بازی در حال اجرا در دستگاه Pixel نشان داده شده است.
در شکل 1، حالت بازی بازی در حال اجرا را می توان از ویجت بهینه سازی تغییر داد. همانطور که در ویجت نشان داده شده است، بازی در حال حاضر در حالت PERFORMANCE
اجرا می شود.
در طول توسعه، اگر از دستگاهی بدون داشبورد بازی استفاده می کنید و سازنده هیچ راهی برای تنظیم حالت بازی برای هر برنامه ارائه نمی دهد، می توانید وضعیت حالت بازی را از طریق adb تغییر دهید:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
نمونه برنامه
نمونه Game Mode API نشان میدهد که چگونه میتوانید FPS را بهینه کنید و درپوشهای وضوح را برای صرفهجویی 25 درصدی انرژی در برنامههای خود بهینه کنید.
بعدی
وقتی امکان ارائه بهروزرسانیهای بازی وجود ندارد ، مداخلات حالت بازی را بخوانید تا عملکرد بازی را بهبود ببخشید.