API โหมดเกม

API โหมดเกมช่วยให้คุณเพิ่มประสิทธิภาพเกม เพื่อประสิทธิภาพที่ดีที่สุด หรือ อายุการใช้งานแบตเตอรี่ยาวนานที่สุดเมื่อผู้ใช้เลือกโหมดเกมที่เกี่ยวข้อง

อีกทางเลือกหนึ่งคือ คุณสามารถส่งคำขอ การฝึกฝนในโหมดเกมเพื่อปรับปรุง ประสิทธิภาพของเกมที่นักพัฒนาแอปไม่ได้อัปเดตอีกต่อไป

Game Mode API และการฝึกฝนพร้อมใช้งานในอุปกรณ์ต่อไปนี้

  • เลือกอุปกรณ์ Android 12
  • อุปกรณ์ที่ใช้ Android 13 ขึ้นไป

แต่ละเกมอาจใช้ลักษณะการทำงานของ API โหมดเกม เสนอโหมดเกม การตั้งค่าการแทรกแซงของ OEM หรือ เลือกไม่เข้าการฝึกฝนในโหมดเกม

ตั้งค่า

หากต้องการใช้ 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
}
โหมดเกมที่รองรับ คำอธิบาย
ไม่รองรับ เกมไม่ได้ประกาศการรองรับ API โหมดเกม และไม่รองรับการแทรกแซงโหมดเกม
มาตรฐาน ผู้ใช้ไม่ได้เลือกโหมดเกมหรือผู้ใช้เลือกโหมดมาตรฐาน
ประสิทธิภาพ ให้อัตราเฟรมที่มีเวลาในการตอบสนองต่ำที่สุดเพื่อแลกกับอายุการใช้งานแบตเตอรี่และความแม่นยำที่ลดลง
แบตเตอรี่ ให้อายุการใช้งานแบตเตอรี่ที่ยาวที่สุดเพื่อแลกกับความแม่นยำหรืออัตราเฟรมที่ลดลง
  1. เพิ่มโค้ดเพื่อค้นหาสถานะโหมดเกมใน ฟังก์ชัน onResume:

    ตัวอย่างการตั้งค่าโหมดแบตเตอรี่ของผู้ใช้

แนวทางปฏิบัติแนะนำ

หากเกมของคุณรองรับความละเอียดและอัตราเฟรมหลายรายการอยู่แล้ว คุณควรระบุการตั้งค่าที่เหมาะสมสำหรับประสิทธิภาพและ โหมดประหยัดแบตเตอรี่

  • เพื่อให้ได้อัตราเฟรมสูงสุดของอุปกรณ์อย่างสม่ำเสมอ คุณควรลอง ความละเอียดลดลงเพื่อให้ได้อัตราเฟรมที่สูงขึ้น

  • หากต้องการยืดอายุการใช้งานแบตเตอรี่ ให้ลองเลือกอัตราการรีเฟรชจอแสดงผลที่ต่ำลง (เช่น 30Hz หรือ 60Hz) และใช้การกำหนดอัตราเฟรมเพื่อกำหนดเป้าหมาย อัตราที่ลดลง

สำหรับเกมที่มีความแม่นยำสูง เช่น เกมยิงมุมมองบุคคลที่หนึ่ง เกมออนไลน์แบบมีผู้เล่นหลายคน สนามประลองต่อสู้ (โมบา) และเกมสวมบทบาท (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 อีกวิธีหนึ่งคือ ใช้คำสั่ง Shell โหมดเกมระหว่างการพัฒนา

หากคุณใช้แดชบอร์ดเกมและไอคอนการเพิ่มประสิทธิภาพไม่แสดงขึ้น เมื่อเกมเปิดตัว คุณอาจต้องอัปโหลดแอปไปยัง Google Play Console และติดตั้งผ่าน Play Store สำหรับข้อมูลเกี่ยวกับการทดสอบแอปใน Play Store โปรดดู แชร์ App Bundle และ APK ภายใน

กิจกรรมบนแดชบอร์ดเกม รูปที่ 1 แดชบอร์ดเกมแสดงการวางซ้อนเกมที่วิ่งอยู่บน Pixel อุปกรณ์

ในรูปที่ 1 โหมดเกมของเกมวิ่งอยู่สามารถเปลี่ยนได้จากการเพิ่มประสิทธิภาพ วิดเจ็ต ตามที่แสดงในวิดเจ็ต เกมกำลังทำงานอยู่ในขณะนี้ PERFORMANCE

ในระหว่างการพัฒนา หากคุณใช้อุปกรณ์ที่ไม่มีแดชบอร์ดเกมและ ไม่ได้ให้วิธีใดๆ ในการตั้งค่าโหมดเกมสำหรับแต่ละแอปพลิเคชัน เปลี่ยนสถานะโหมดเกมผ่าน adb ดังนี้

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

แอปพลิเคชันตัวอย่าง

ตัวอย่าง API โหมดเกม ไฮไลต์วิธีที่คุณสามารถเพิ่มประสิทธิภาพ FPS และความละเอียดสูงสุดในการแสดงผลเพื่อประหยัดพลังงานแอปได้ประมาณ 25%

ถัดไป

อ่านการแทรกแซงในโหมดเกม เพื่อปรับปรุงประสิทธิภาพของเกมเมื่อไม่สามารถให้บริการอัปเดตเกมได้