Kể từ Android 14, một chế độ nguồn mới có tên là GAME
trong Khung hiệu suất động Android (ADPF) cho phép tuỳ chỉnh hiệu suất điện thoại trong khi chơi trò chơi. GAME
cho biết với Power HAL rằng một ứng dụng trò chơi đang ở 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ý nguồn khi người dùng đang chơi trò chơi, nhờ đó người dùng có trải nghiệm ổn định và hiệu suất được cải thiện.
Để cải thiện thời gian tải của trò chơi, Android 13 ra mắt một chế độ nguồn mới có tên là GAME_LOADING
trong ADPF. GAME_LOADING
cho biết liệu ứng dụng trò chơi có đang ở trạng thái tải hay không để Power HAL có thể cung cấp mức tăng tải. Chỉ báo này cho phép Power HAL cung cấp các biện pháp tă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 truyền trạng thái trò chơi đến Power HAL, giải thích cách định cấu hình Power HAL để tận dụng HAL này trong các thiết bị của bạn, cũng như cách kiểm thử việc triển khai Power HAL.
Phát hiện và thông báo về chế độ nguồn
Phần này mô tả cách Trình quản lý nguồn xử lý các chế độ GAME
và GAME_LOADING
.
Chế độ nguồn TRÒ CHƠI
Chế độ nguồn mới GAME
trong Android 14 cho biết Dịch vụ Trình quản lý nguồn rằng người dùng đang chơi trò chơi. Khi Power HAL nhận được thông báo về chế độ GAME
, chế độ này có thể điều chỉnh nguồn để nâng cao hiệu suất, giảm nhiệt độ và kéo dài thời lượng pin trong khi trò chơi đang được phát.
Hình sau đây giải thích luồng thông tin đến Power HAL để cho biết chế độ nguồn GAME
:
Hình 1. Luồng thông tin cho biết mộ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 tốc tải hoạt động bằng cách phát hiện thời điểm ứng dụng trò chơi đang ở trạng thái tải và thông báo cho Power HAL. Android 13 giới thiệu một trạng thái trò chơi mới có tên là isLoading
trong API dành cho nhà phát triển.
Trạng thái trò chơi này sử dụng chế độ nguồn GAME_LOADING
mới trong Dịch vụ Trình 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, HAL này có thể điều chỉnh chế độ cài đặt hiệu suất và tốc độ xung nhịp CPU của nền tảng, nhờ đó cải thiện thời gian tải.
Để cho biết một trò chơi đang tải, ứng dụng trò chơi sẽ 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. Game Manager sẽ truyền trạng thái này đến Game Manager Service. Dịch vụ này sử dụng setPowerMode
với chế độ nguồn GAME_LOADING
mới để gọi Power Manager Service. Chế độ nguồn GAME_LOADING
cho biết Power HAL rằng trò chơi đang ở trạng thái tải để Power HAL có thể tăng tốc độ tải.
Hình sau đây giải thích luồng thông tin từ ứng dụng đến Power HAL để cho biết trạng thái sạc:
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 Chế độ cài đặt hiệu suất. Chế độ cài đặt hiệu suất luôn ở trạng thái tắt theo mặc định.
Tuỳ chỉnh HAL nguồn bằng GAME và GAME_LOADING
Để tận dụng các chế độ GAME
và GAME_LOADING
, các OEM phải tuỳ chỉnh việc triển khai Power HAL.
Vì việc quản lý nguồn và tăng hiệu suất là dành riêng cho phần cứng, nên không có cách triển khai tham chiếu nào cho các chế độ GAME
hoặc GAME_LOADING
cho đến khi một cách 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
, các 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 tình trạng điều tiết nhiệt độ
- Chỉ định mức độ ưu tiên cao hơn cho CPU đối với ứng dụng trò chơi ở 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 hoá chiến lược phân phối điện liên quan đến nhiệt
Kiểm thử việc triển khai chế độ GAME
Để kiểm thử việc triển khai chế độ GAME
, hãy sử dụng các kiểm thử có tiền tố testGamePowerMode_
trong GameManagerServiceTests.java
.
Kiểm thử việc triển khai GAME_LOADING
Để kiểm thử 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()
có ngữ cảnh isLoading
có gọi chế độ tải trò chơi trên Power HAL ở chế độ hiệu suất hay không.