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 propriedadeappCategory
no 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.
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
Exemplo da API Game Mode destaca como otimizar o QPS e renderizar limites de resolução para economizar aproximadamente 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.