A API Game Mode permite otimizar o jogo para ter o melhor desempenho ou a maior duração da bateria quando o usuário seleciona o modo jogo correspondente.
Como alternativa, você pode enviar solicitações para intervenções do modo jogo com o objetivo de melhorar o desempenho dos jogos que não estão mais sendo atualizados pelos desenvolvedores.
A API Game Mode e as intervenções estão disponíveis em:
- Selecione dispositivos com o Android 12.
- Dispositivos com o Android 13 ou mais recente
Cada jogo pode implementar o comportamento da API Game Mode, propor o Game Mode de intervenções para OEMs ou desativar as intervenções do modo jogo.
Configurar
Para usar a API Game Mode no seu jogo, faça o seguinte:
- Faça o download e instale o SDK do Android 13. 
- No arquivo - AndroidManifest.xml, declare seu app como um jogo definindo a propriedade- appCategoryno Elemento- <application>:
android:appCategory="game"
- Para consultar o modo jogo atual, adicione o seguinte à sua atividade principal:
Java
// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
  // Get GameManager from SystemService
  GameManager gameManager = Context.getSystemService(GameManager.class);
  // Returns the selected GameMode
  int gameMode = gameManager.getGameMode();
}
Kotlin
// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  // Get GameManager from SystemService
  val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?
  // Returns the selected GameMode
  val gameMode = gameManager?.gameMode
}
| Modo jogo compatível | Descrição | 
|---|---|
| INCOMPATÍVEL | O jogo não declara compatibilidade com a API Game Mode e não é compatível com intervenções do modo jogo. | 
| PADRÃO | O usuário não escolheu um modo jogo ou selecionou o modo padrão. | 
| DESEMPENHO | Fornece os menores frame rates de latência em troca de fidelidade e duração da bateria reduzidas. | 
| BATERIA | Proporciona a maior duração possível da bateria em troca de fidelidade ou frame rates reduzidos. | 
- Adicione um código para consultar o estado do modo jogo na Função - onResume: 
Práticas recomendadas
Se o seu jogo já é compatível com vários objetivos de fidelidade e frame rate, identifique as configurações adequadas para os modos de desempenho e economia de bateria:
- Para atingir os frame rates máximos do dispositivo, considere pequenas reduções de fidelidade para conseguir frame rates mais altos. 
- Para melhorar a duração da bateria, escolha uma taxa de atualização de tela mais baixa (por exemplo, 30 Hz ou 60 Hz) e use o ritmo de frames para atingir a taxa reduzida. 
Em jogos de alta fidelidade, como jogos de tiro em primeira pessoa, arenas multiplayer de batalhas on-line (MOBAs, na sigla em inglês) e jogos de RPG, é necessário se concentrar em alcançar altos frame rates consistentes para maximizar a imersão do usuário.
Para jogos casuais e de alta fidelidade, é preciso oferecer compatibilidade com o modo de economia de bateria para aumentar o tempo de jogo, reduzindo os picos de frame rates.
Declarar compatibilidade com modos de jogo
Para declarar suporte a modos de jogo e substituir as intervenções do modo jogo por
OEMs, primeiro adicione a configuração Game Mode ao
O elemento <application> na sua
Arquivo AndroidManifest.xml:
<application>
    <meta-data android:name="android.game_mode_config"
               android:resource="@xml/game_mode_config" />
  ...
</application>
Em seguida, crie um arquivo game_mode_config.xml no diretório res/xml/ do projeto.
com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="true"
    android:supportsPerformanceGameMode="true"
/>
Trocar de modo de jogo
Para alternar entre os modos de jogo, você pode usar o Painel de jogo (disponível no Pixel) ou apps semelhantes fornecidos por OEMs. Como alternativa, faça o seguinte: use o comando do shell do modo jogo durante o desenvolvimento.
Se você estiver usando o Painel de jogo e o ícone de otimização não for exibido quando o jogo for lançado, talvez seja necessário fazer upload dele no Google Play Console. e instale-o pela Play Store. Para informações sobre o teste de apps na Play Store, consulte Compartilhar pacotes de apps e APKs internamente.
 Figura 1. Painel de jogo sobreposto ao jogo em execução em um Pixel
dispositivo.
Figura 1. Painel de jogo sobreposto ao jogo em execução em um Pixel
dispositivo.
Na Figura 1, é possível mudar o modo jogo do jogo de corrida na guia
widget. Como mostrado no widget, o jogo está sendo executado no momento
PERFORMANCE
modo
Durante o desenvolvimento, se você estiver usando um dispositivo sem o Painel de jogo e o fabricante não fornecer uma maneira de definir o modo jogo para cada app, será possível mude o status do modo jogo pelo adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>Exemplo de aplicativo
O exemplo da API Game Mode destaca como otimizar o QPS e renderizar limites de resolução para economizar cerca de 25% de energia nos seus apps.
Próxima
Leia Intervenções do modo jogo para melhorar o desempenho de um jogo quando não for possível fornecer atualizações.
