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
:
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:
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.