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

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

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

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

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

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

โหมดพลังงานสำหรับเล่นเกม

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

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

game-mode

รูปที่ 1 ข้อมูลแสดงว่ากำลังเล่นเกม

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

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

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

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

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

เพิ่มการโหลด

รูปที่ 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 ให้ใช้การทดสอบที่ขึ้นต้นด้วย testGamePowerMode_ ใน GameManagerServiceTests.java

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

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