Melhor desempenho para jogos

No Android 14 e versões mais recentes, há um novo modo de energia chamado GAME. no Android Dynamic Performance Framework (ADPF) permite a personalização de o desempenho do smartphone durante jogos. GAME indica à HAL de energia que uma do jogo está em primeiro plano. Essa indicação permite que o HAL de energia adotar estratégias de gerenciamento de poder quando um jogo está sendo jogado, para que o usuário tem um desempenho estável e aprimorado.

Para melhorar o tempo de carregamento de um jogo, o Android 13 introduz um novo modo de energia chamado GAME_LOADING no ADPF. GAME_LOADING indica se um app de jogo está no estado de carregamento. a HAL de energia pode aumentar o carregamento. Essa indicação permite que o HAL de energia para fornecer medidas que melhoram o desempenho e podem acelerar o carregamento do jogo. tempo de resposta.

Esta página descreve como o app do jogo transmite estado do jogo para a HAL de energia, explica como configurar a HAL de energia para nos seus dispositivos e como testar a HAL de energia implementação.

Detecção e notificação do modo de energia

Esta seção descreve como o gerenciador de energia lida com os modos GAME e GAME_LOADING.

Modo liga/desliga GAME

O novo modo de energia GAME no Android 14 indica O serviço Power Manager que o usuário está jogando. Quando a HAL de energia é notificada do GAME modo, ele pode ajustar a energia para melhorar o desempenho, diminuir a temperatura e aumentar da bateria enquanto o jogo está em jogo.

A figura a seguir explica o fluxo de informações para a HAL de energia para indique o modo de energia GAME:

modo jogo

Figura 1. Fluxo de informações para indicar que um jogo está sendo jogado.

O modo de energia GAME é sempre definido para apps com um appCategory de GAME em AndroidManifest.xml.

Modo de energia GAME_LOADING

O modo de otimização de carregamento detecta quando um app de jogo está sendo carregado e notificando a HAL de energia. Android 13 introduz um novo estado de jogo chamado isLoading na API voltada para o desenvolvedor. Este estado de jogo usa o novo GAME_LOADING. no serviço Power Manager para notificar a HAL de energia sobre a do nível do jogo. Quando a HAL de energia for notificada sobre o estado de carregamento do jogo, pode ajustar as configurações de desempenho da plataforma e a velocidade do clock da CPU, o que resulta em tempos de carregamento menores.

Para indicar que um jogo está sendo carregado, o app usa o Painel de jogo para definir um isLoading no Gerenciador de Jogos. O Gerenciador de Jogos transmite esse estado para o Jogo. O serviço Manager, que usa o setPowerMode com o novo GAME_LOADING no modo de energia para invocar o serviço do Power Manager. O modo de energia GAME_LOADING indica à HAL de energia que o jogo está em um estado de carregamento para que a HAL de energia possa aumentar o carregamento.

A figura a seguir explica o fluxo de informações do aplicativo para a rede HAL para indicar o estado de carregamento:

Otimização de carregamento

Figura 2. Fluxo de informações para indicar que um jogo está sendo carregado.

O Painel de jogo permite que os usuários ativem ou desativem o recurso de otimização de carregamento com a configuração de desempenho. A configuração de desempenho está sempre desativada por padrão.

Personalizar a HAL de energia usando GAME e GAME_LOADING

Para aproveitar os modos GAME e GAME_LOADING, os OEMs precisam personalizar a implementação do Power HAL. Como o gerenciamento de energia e o aumento do desempenho são específicos do hardware, não há referência implementações para os modos GAME ou GAME_LOADING são disponibilizadas até uma implementação de referência para o dispositivo Google Pixel é lançada.

Para melhorar o desempenho nos modos GAME e GAME_LOADING, os OEMs podem optar por implemente uma combinação das seguintes medidas:

  • Estabilizar frame rate
  • Aumentar a velocidade do clock da CPU
  • Reduzir temporariamente a limitação de temperatura
  • Atribuir uma prioridade de CPU mais alta ao app de jogo em primeiro plano
  • Reduzir o aumento da CPU ajustado para apps normais que não são de jogos
  • Otimizar a estratégia de distribuição de energia térmica

Testar a implementação do modo GAME

Para testar a implementação do modo GAME, use testes com o prefixo testGamePowerMode_ em GameManagerServiceTests.java.

Testar implementação de GAME_LOADING

Para testar a implementação do modo GAME_LOADING, use android.gamemanager.cts.GameManagerTest#testSetGameContext. Esse teste verifica se GameManager::setGameContext() com um isLoading contexto invoca o modo de carregamento de jogos na HAL de energia no modo de desempenho.