เพิ่มประสิทธิภาพสำหรับเกม

เริ่มตั้งแต่ Android 14 โหมดพลังงานใหม่ชื่อ GAME ใน Android Dynamic Performance Framework (ADPF) ช่วยให้ปรับแต่งประสิทธิภาพของโทรศัพท์ระหว่างการใช้งานเกมได้ GAME ระบุให้ Power HAL ทราบว่าแอปพลิเคชันเกมอยู่เบื้องหน้า ข้อบ่งชี้นี้ช่วยให้ Power HAL นำกลยุทธ์การจัดการพลังงานมาใช้เมื่อมีการเล่นเกม เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่เสถียรและปรับปรุงประสิทธิภาพ

เพื่อปรับปรุงเวลาในการโหลดเกม Android 13 ขอแนะนำโหมดพลังงานใหม่ชื่อ GAME_LOADING ใน ADPF GAME_LOADING บ่งชี้ว่าแอปเกมอยู่ในสถานะโหลดหรือไม่ เพื่อให้ Power HAL สามารถเพิ่มประสิทธิภาพการโหลดได้ ข้อบ่งชี้นี้ช่วยให้ Power HAL สามารถจัดเตรียมมาตรการเพิ่มประสิทธิภาพที่สามารถเพิ่มความเร็วในการโหลดเกมได้

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

การตรวจจับและการแจ้งเตือนโหมดพลังงาน

ส่วนนี้จะอธิบายวิธีที่ Power Manager จัดการกับโหมด GAME และ GAME_LOADING

โหมดพลังงาน GAME

GAME โหมดพลังงานใหม่ใน Android 14 ระบุ บริการ Power Manager ว่าผู้ใช้กำลังเล่นเกม เมื่อ Power HAL ได้รับแจ้งถึงโหมด GAME ก็จะสามารถปรับพลังงานเพื่อเพิ่มประสิทธิภาพ ลดอุณหภูมิ และยืดอายุแบตเตอรี่ในขณะที่กำลังเล่นเกมได้

รูปต่อไปนี้อธิบายการไหลของข้อมูลไปยัง Power HAL เพื่อระบุโหมดพลังงาน GAME :

game-mode

รูปที่ 1. การไหลของข้อมูลเพื่อระบุว่ากำลังเล่นเกมอยู่

โหมดพลังงาน GAME จะถูกตั้งค่าเสมอสำหรับแอปพลิเคชันที่มี appCategory ปเป็น GAME ใน AndroidManifest.xml

GAME_LOADING โหมดพลังงาน

โหมดบูสต์การโหลดทำงานโดยการตรวจจับเมื่อแอปเกมอยู่ในสถานะโหลด และแจ้งเตือน Power HAL Android 13 แนะนำสถานะเกมใหม่ที่เรียกว่า isLoading ใน API ที่นักพัฒนาต้องเผชิญ สถานะของเกมนี้ใช้โหมดพลังงาน GAME_LOADING ใหม่ในบริการ Power Manager เพื่อแจ้ง Power HAL เกี่ยวกับสถานะของเกมระดับบนสุด เมื่อ Power HAL ได้รับแจ้งสถานะการโหลดเกม จะสามารถปรับการตั้งค่าประสิทธิภาพของแพลตฟอร์มและอัตรานาฬิกาของ CPU ได้ ซึ่งส่งผลให้เวลาในการโหลดดีขึ้น

เพื่อระบุว่าเกมกำลังโหลด แอพเกมจะใช้แดชบอร์ดเกมเพื่อตั้งค่าสถานะ isLoading ในตัวจัดการเกม ตัวจัดการเกมส่งสถานะนี้ไปยังบริการตัวจัดการเกม ซึ่งใช้ setPowerMode พร้อมกับโหมดพลังงาน GAME_LOADING ใหม่เพื่อเรียกใช้บริการตัวจัดการพลังงาน โหมดพลังงาน GAME_LOADING บ่งบอกให้ Power HAL ทราบว่าเกมอยู่ในสถานะโหลด เพื่อให้ Power HAL สามารถเพิ่มกำลังการโหลดได้

รูปต่อไปนี้อธิบายการไหลของข้อมูลจากแอปไปยัง Power HAL เพื่อระบุสถานะการโหลด:

loading-boost

รูปที่ 2 การไหลของข้อมูลเพื่อระบุว่าเกมอยู่ในสถานะโหลด

แดชบอร์ดเกมอนุญาตให้ผู้ใช้เปิดหรือปิดฟีเจอร์เพิ่มการโหลดด้วยการตั้งค่าประสิทธิภาพ การตั้งค่าประสิทธิภาพจะมีค่าเริ่มต้นเป็นปิดเสมอ

ปรับแต่ง Power HAL โดยใช้ GAME และ GAME_LOADING

เพื่อใช้ประโยชน์จากโหมด GAME และ GAME_LOADING OEM จะต้องปรับแต่งการใช้งาน Power HAL เนื่องจากการจัดการพลังงานและการเพิ่มประสิทธิภาพเป็นเรื่องเฉพาะของฮาร์ดแวร์ จึงไม่มีการใช้งานอ้างอิงสำหรับโหมด GAME หรือ GAME_LOADING จนกว่าจะมีการเปิดตัวการใช้งานอ้างอิงสำหรับอุปกรณ์ Google Pixel

เพื่อเพิ่มประสิทธิภาพในโหมด GAME และ GAME_LOADING OEM สามารถเลือกใช้มาตรการต่อไปนี้ร่วมกัน:

  • รักษาอัตราเฟรมให้คงที่
  • เพิ่มความเร็วสัญญาณนาฬิกาของ CPU
  • ลดการควบคุมปริมาณอุณหภูมิชั่วคราว
  • กำหนดลำดับความสำคัญของ CPU ที่สูงขึ้นให้กับแอปพลิเคชันเกมเบื้องหน้า
  • ลดการเพิ่มประสิทธิภาพของ CPU ที่ปรับแต่งสำหรับแอปพลิเคชันทั่วไปที่ไม่ใช่เกม
  • ปรับกลยุทธ์การกระจายพลังงานที่เกี่ยวข้องกับความร้อนให้เหมาะสม

ทดสอบการใช้งานโหมด GAME

หากต้องการทดสอบการใช้งานโหมด GAME ให้ใช้การทดสอบที่นำหน้าด้วย testGamePowerMode_ ใน GameManagerServiceTests.java

ทดสอบการใช้งาน GAME_LOADING

หากต้องการทดสอบการใช้งานโหมด GAME_LOADING ให้ใช้ android.gamemanager.cts.GameManagerTest#testSetGameContext การทดสอบนี้ตรวจสอบว่า GameManager::setGameContext() ที่มีบริบท isLoading เรียกใช้โหมดการโหลดเกมบน Power HAL ในโหมดประสิทธิภาพหรือไม่