การฝึกฝนในโหมดเกม

การแทรกแซงโหมดเกมคือการเพิ่มประสิทธิภาพเฉพาะเกมที่ผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) กำหนดไว้เพื่อปรับปรุงประสิทธิภาพของเกมที่นักพัฒนาแอปไม่ได้อัปเดตอีกต่อไป เช่น

  • การใช้การปรับขนาด Backbuffer ของ WindowManager
  • การใช้ ANGLE แทนไดรเวอร์ GLES ดั้งเดิม

คุณสามารถทำให้เกมรองรับและจัดการ Game Mode API เพื่อให้ลบล้างการแทรกแซงโหมดเกมที่ OEM ให้มา

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

  • อุปกรณ์ Android 12 บางรุ่น
  • อุปกรณ์ที่ใช้ Android 13 ขึ้นไป

เกมแต่ละเกมสามารถดำเนินการต่อไปนี้ได้

  • ใช้ลักษณะการทํางานของ Game Mode API
  • เสนอการตั้งค่าการแทรกแซงโหมดเกมให้กับ OEM หรือ
  • เลือกไม่ใช้การแทรกแซงโหมดเกมอย่างชัดเจน

ฉากหลัง

ส่วนนี้จะอธิบายสิ่งที่การแทรกแซงโหมดเกมทําและวิธีเพิ่มประสิทธิภาพเกมสำหรับแต่ละโหมด

การปรับขนาด Backbuffer ของ WindowManager

การแทรกแซงการปรับขนาดแบ็กบัฟเฟอร์ของ WindowManager สามารถลดภาระของ GPU ของอุปกรณ์ได้ นอกจากนี้ยังช่วยลดการใช้แบตเตอรี่เมื่อเกมเล่นที่อัตราเฟรมเป้าหมาย

การเปิดใช้การปรับขนาดอาจทำให้ GPU ทำงานน้อยลงสูงสุด 30% และลดการใช้พลังงานของระบบโดยรวมได้ 10% ผลลัพธ์อาจแตกต่างกันไปตามอุปกรณ์ที่ใช้ สภาพสภาพแวดล้อม และปัจจัยอื่นๆ เช่น การประมวลผลพร้อมกัน

เกมที่ไม่มีการจำกัดเฟรมเรตซึ่งทำงานบน GPU มีแนวโน้มที่จะแสดงเฟรมเรตสูงขึ้นเมื่อ GPU มีภาระงานลดลง

เราขอแนะนำอย่างยิ่งให้เกมทั้งหมดมีจังหวะที่ดี เนื่องจากอัตราเฟรมที่ไม่สม่ำเสมอส่งผลต่อวิธีที่ผู้ใช้รับรู้ถึงประสิทธิภาพอย่างมาก

การควบคุม FPS

การควบคุม FPS ของ Android คือการแทรกแซงโหมดเกมที่ช่วยให้เกมทำงานด้วยอัตราเฟรมที่เสถียรมากขึ้นเพื่อลดการใช้แบตเตอรี่ การแทรกแซงพร้อมใช้งานใน Android 13 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการจำกัด FPS

ประเมินการแทรกแซงโหมดเกม

ส่วนนี้ใช้คําสั่ง 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 สำหรับการกําหนดค่าเดียวกันกับที่ใช้ควบคุมการเลือกใช้และไม่เลือกใช้โหมดเกมจะใช้สําหรับการตั้งค่าการแทรกแซงด้วย
<?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) กำหนดไว้ เว้นแต่คุณจะเลือกไม่ให้เกมใช้การแทรกแซงดังกล่าวอย่างชัดเจน

แหล่งข้อมูล

ดูข้อมูลเพิ่มเติมเกี่ยวกับการวัดและเพิ่มประสิทธิภาพเกม

  • เครื่องมือวิเคราะห์ระบบ - วิเคราะห์การใช้งาน CPU และการเรียกใช้กราฟิก

  • Android GPU Inspector - โปรไฟล์กราฟิกใน Android

  • Android Frame Pacing Library - ช่วยให้เกม OpenGL และ Vulkan แสดงผลได้อย่างราบรื่นและกำหนดอัตราการแสดงเฟรมได้อย่างถูกต้อง

  • Android Performance Tuner - วัดและเพิ่มประสิทธิภาพอัตราเฟรมและกราฟิกในอุปกรณ์ Android จำนวนมาก

  • Power Profiler - ค้นหาว่าแอปใช้พลังงานมากกว่าที่จำเป็นในส่วนใด