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

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

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

โหมดเกม

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

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

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

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

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

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

การเพิ่มประสิทธิภาพการโหลด

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

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

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

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

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

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

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

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

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

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