Tăng hiệu suất cho trò chơi

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ế độ GAMEGAME_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:

game-mode

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ó appCategoryGAME 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:

loading-boost

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ế độ GAMEGAME_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ế độ GAMEGAME_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.