A partir do Android 14, um novo modo de energia denominado GAME
no Android Dynamic Performance Framework (ADPF) permite a personalização do desempenho do telefone durante o uso do jogo. GAME
indica ao Power HAL que um aplicativo de jogo está em primeiro plano. Esta indicação permite que o Power HAL adote estratégias de gerenciamento de energia durante um jogo, para que o usuário experimente um desempenho estável e melhorado.
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 aplicativo de jogo está em estado de carregamento para que o Power HAL possa fornecer um aumento de carregamento. Esta indicação permite que o Power HAL forneça medidas de aumento de desempenho que podem acelerar o tempo de carregamento do jogo.
Esta página descreve como o aplicativo de jogo passa o estado do jogo para o Power HAL, explica como configurar o Power HAL para aproveitá-lo em seus dispositivos e também como testar sua implementação do Power HAL.
Detecção e notificação do modo de energia
Esta seção descreve como o Power Manager lida com os modos GAME
e GAME_LOADING
.
Modo de energia do JOGO
O novo modo de energia GAME
no Android 14 indica ao Power Manager Service que o usuário está jogando. Quando o Power HAL é notificado sobre o modo GAME
, ele pode ajustar a energia para melhorar o desempenho, diminuir a temperatura e prolongar a vida útil da bateria, enquanto o jogo está sendo jogado.
A figura a seguir explica o fluxo de informações para o Power HAL para indicar o modo de energia GAME
:
Figura 1. Fluxo de informações para indicar que um jogo está sendo disputado.
O modo de energia GAME
é sempre definido para aplicativos com appCategory
de GAME
em AndroidManifest.xml
.
Modo de energia GAME_LOADING
O modo de aumento de carregamento funciona detectando quando um aplicativo de jogo está em estado de carregamento e notificando o Power HAL. O Android 13 introduz um novo estado de jogo chamado isLoading
na API voltada para desenvolvedores . Este estado do jogo usa o novo modo de energia GAME_LOADING
no Power Manager Service para notificar o Power HAL sobre o estado do jogo de nível superior. Assim que o Power HAL for notificado sobre o estado de carregamento do jogo, ele poderá ajustar as configurações de desempenho da plataforma e a frequência da CPU, o que resulta em melhores tempos de carregamento.
Para indicar que um jogo está carregando, o aplicativo de jogo usa o Game Dashboard para definir um estado isLoading
no Game Manager. O Game Manager passa esse estado para o Game Manager Service, que usa setPowerMode
com o novo modo de energia GAME_LOADING
para invocar o Power Manager Service. O modo de energia GAME_LOADING
indica ao Power HAL que o jogo está em estado de carregamento para que o Power HAL possa fornecer um aumento de carregamento.
A figura a seguir explica o fluxo de informações do aplicativo para o Power HAL para indicar o estado de carregamento:
Figura 2. Fluxo de informações para indicar que um jogo está em estado de carregamento.
O painel do jogo permite que os usuários ativem ou desativem o recurso de aumento de carregamento com a configuração de desempenho. A configuração de desempenho sempre tem como padrão desativado.
Personalize o Power HAL usando GAME e GAME_LOADING
Para aproveitar as vantagens dos modos GAME
e GAME_LOADING
, os OEMs devem personalizar sua implementação do Power HAL . Como o gerenciamento de energia e o aumento de desempenho são específicos do hardware, nenhuma implementação de referência para os modos GAME
ou GAME_LOADING
será disponibilizada até que uma implementação de referência para o dispositivo Google Pixel seja lançada.
Para melhorar o desempenho nos modos GAME
e GAME_LOADING
, os OEMs podem optar por implementar uma combinação das seguintes medidas:
- Estabilizar a taxa de quadros
- Aumente a velocidade do clock da CPU
- Reduzir temporariamente o estrangulamento da temperatura
- Atribua uma prioridade de CPU mais alta ao aplicativo de jogo em primeiro plano
- Reduza o aumento da CPU ajustado para aplicativos regulares que não sejam de jogos
- Otimize a estratégia de distribuição de energia térmica
Teste a implementação do modo GAME
Para testar a implementação do modo GAME
, use testes prefixados com testGamePowerMode_
em GameManagerServiceTests.java
.
Teste a implementação de GAME_LOADING
Para testar a implementação do modo GAME_LOADING
, use android.gamemanager.cts.GameManagerTest#testSetGameContext
. Este teste verifica se GameManager::setGameContext()
com um contexto isLoading
invoca o modo de carregamento do jogo no Power HAL em modo de desempenho.