Kể từ Android 14, một chế độ tiết kiệm pin 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 sử dụng trò chơi. GAME
cho HAL nguồn 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 HAL Power áp dụng các chiến lược quản lý nguồn khi đang chơi trò chơi, nhờ đó, người dùng có được hiệu suất ổn định và 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 là GAME_LOADING
trong ADPF. GAME_LOADING
cho biết liệu một ứng dụng trò chơi có ở trạng thái tải hay không để Power HAL có thể tăng tốc độ 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ể đẩy nhanh 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 Power HAL trong 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 GAME
Chế độ tiết kiệm pin 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 được thông báo về chế độ GAME
, HAL nguồn 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 chơi trò chơi.
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 một ứ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 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ụ 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 được thông báo về trạng thái tải trò chơi, Power HAL 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ử 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 sẽ chuyển trạng thái này đến 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 tốc độ tải.
Hình sau đây giải thích luồng thông tin từ ứng dụng đến HAL nguồn để cho biết 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.
Trang tổng quan 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 được tắt theo mặc định.
Tuỳ chỉnh Power HAL bằng GAME và GAME_TẢIING
Để tận dụng các chế độ GAME
và GAME_LOADING
, OEM phải tuỳ chỉnh phương thức triển khai HAL Nguồn.
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ó phương thức triển khai tham chiếu nào cho chế độ GAME
hoặc GAME_LOADING
cho đến khi phương thức 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 mức điều tiết nhiệt độ
- Chỉ định mức độ ưu tiên CPU cao hơn cho ứng dụng trò chơi ở nền trước
- Giảm mức tăng cườ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 bài kiểm thử có tiền tố là 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
.
Bài kiểm thử 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.