Bắt đầu từ Android 14, chế độ năng lượng mới có tên GAME
trong Khung hiệu suất động của Android (ADPF) cho phép tùy chỉnh hiệu suất điện thoại trong quá trình sử dụng trò chơi. GAME
cho Power HAL biết rằng có một ứng dụng trò chơi đang chạy ở nền trước. Chỉ báo này cho phép Power HAL áp dụng các chiến lược quản lý năng lượng khi trò chơi đang được chơi để người dùng trải nghiệm hiệu suất ổn định và được cải thiện.
Để cải thiện thời gian tải của trò chơi, Android 13 giới thiệu chế độ năng lượng mới có tên GAME_LOADING
trong ADPF. GAME_LOADING
cho biết ứng dụng trò chơi có đang ở trạng thái tải hay không để Power HAL có thể tăng cường tải. Dấu hiệu này cho phép Power HAL cung cấp các biện pháp tăng cường hiệu suất có thể tăng tốc thời gian tải trò chơi.
Trang này mô tả cách ứng dụng trò chơi chuyển trạng thái trò chơi sang Power HAL, giải thích cách định cấu hình Power HAL để tận dụng lợi thế của nó trong thiết bị của bạn cũng như cách kiểm tra việc triển khai Power HAL của bạn.
Phát hiện và thông báo chế độ nguồn
Phần này mô tả cách Power Manager xử lý các chế độ GAME
và GAME_LOADING
.
Chế độ sức mạnh TRÒ CHƠI
Chế độ nguồn mới GAME
trong Android 14 cho Dịch vụ quản lý nguồn biết rằng người dùng đang chơi trò chơi. Khi Power HAL được thông báo về chế độ GAME
, nó có thể điều chỉnh nguồn điện để nâng cao hiệu suất, giảm nhiệt độ và kéo dài tuổi thọ pin trong khi trò chơi đang được chơi.
Hình dưới đây giải thích luồng thông tin tới Power HAL để biểu thị chế độ nguồn GAME
:
Hình 1. Luồng thông tin cho biết trò chơi đang được chơi.
Chế độ nguồn GAME
luôn được đặt cho các ứng dụng có appCategory
là GAME
trong AndroidManifest.xml
.
Chế độ nguồn GAME_LOADING
Chế độ tăng cường tải hoạt động bằng cách phát hiện khi ứng dụng trò chơi ở trạng thái tải và thông báo cho Power HAL. Android 13 giới thiệu trạng thái trò chơi mới có tên isLoading
trong API dành cho nhà phát triển . Trạng thái trò chơi này sử dụng chế độ năng lượng GAME_LOADING
mới trong Dịch vụ quản lý nguồn để thông báo cho Power HAL về trạng thái trò chơi cấp cao nhất. Sau khi Power HAL được thông báo về trạng thái tải trò chơi, nó có thể điều chỉnh cài đặt hiệu suất và tốc độ xung nhịp CPU của nền tảng, giúp cải thiện thời gian tải.
Để cho biết trò chơi đang tải, ứng dụng trò chơi sử dụng Trang tổng quan trò chơi để đặt trạng thái isLoading
trong Trình quản lý trò chơi. Trình quản lý trò chơi chuyển trạng thái này tới Dịch vụ quản lý trò chơi, dịch vụ này sử dụng setPowerMode
với chế độ nguồn GAME_LOADING
mới để gọi Dịch vụ quản lý nguồn. Chế độ nguồn GAME_LOADING
cho Power HAL biết rằng trò chơi đang ở trạng thái tải để Power HAL có thể tăng cường tải.
Hình sau đây giải thích luồng thông tin từ ứng dụng đến Power HAL để biểu thị trạng thái tải:
Hình 2. Luồng thông tin cho biết trò chơi đang ở trạng thái tải.
Bảng điều khiển trò chơi cho phép người dùng bật hoặc tắt tính năng tăng tốc tải bằng Cài đặt hiệu suất. Cài đặt hiệu suất luôn được tắt theo mặc định.
Tùy chỉnh Power HAL bằng GAME và GAME_LOADING
Để tận dụng các chế độ GAME
và GAME_LOADING
, các OEM phải tùy chỉnh việc triển khai Power HAL của họ. Vì việc quản lý năng lượng và tăng cường hiệu suất phụ thuộc vào phần cứng cụ thể nên không có triển khai tham chiếu nào cho chế độ GAME
hoặc GAME_LOADING
cho đến khi triển khai tham chiếu cho thiết bị Google Pixel được phát hành.
Để nâng cao hiệu suất ở chế độ GAME
và GAME_LOADING
, OEM có thể chọn triển khai kết hợp các biện pháp sau:
- Ổn định tốc độ khung hình
- Tăng tốc độ xung nhịp của CPU
- Tạm thời giảm điều chỉnh nhiệt độ
- Chỉ định mức độ ưu tiên CPU cao hơn cho ứng dụng trò chơi trên nền trước
- Giảm mức tăng CPU được điều chỉnh cho các ứng dụng thông thường, không phải trò chơi
- Tối ưu hóa chiến lược phân phối điện liên quan đến nhiệt
Kiểm tra việc triển khai chế độ TRÒ CHƠI
Để kiểm tra việc triển khai chế độ GAME
, hãy sử dụng các thử nghiệm có tiền tố testGamePowerMode_
trong GameManagerServiceTests.java
.
Kiểm tra việc triển khai GAME_LOADING
Để kiểm tra việc triển khai chế độ GAME_LOADING
, hãy sử dụng android.gamemanager.cts.GameManagerTest#testSetGameContext
. Thử nghiệm này xác minh xem GameManager::setGameContext()
với bối cảnh isLoading
có gọi chế độ tải trò chơi trên Power HAL ở chế độ hiệu suất hay không.