As intervenções do modo jogo são: Otimizações específicas para jogos definidas pelos fabricantes de equipamento original (OEMs) para melhorar o desempenho dos jogos que não são mais atualizados desenvolvedores de aplicativos. Exemplo:
- Usando o redimensionamento do backbuffer do WindowManager.
- Usar o ANGLE em vez dos drivers nativos do GLES.
Você pode oferecer suporte ao jogo e gerenciar API Game Mode, para substituí-la Intervenções do modo jogo fornecidas pelo OEM.
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:
- Implemente o comportamento da API Game Mode.
- propor configurações de intervenções do modo jogo para OEMs; ou
- Desativar explicitamente as intervenções do modo jogo.
Contexto
Esta seção descreve o que as intervenções do modo jogo fazem e como otimizar seu jogo para cada modo.
Redimensionamento do backbuffer do WindowManager
A intervenção de redimensionamento do buffer de WindowManager pode reduzir a carga da GPU de um dispositivo. Isso também pode reduzir o consumo da bateria quando o ritmo de um jogo é definido a um frame rate específico.
A ativação do redimensionamento pode resultar em uma redução de até 30% da GPU e 10% do total consumo de energia do sistema. Os resultados podem variar de acordo com o dispositivo usado, as condições ambientais e outros fatores, como o processamento simultâneo.
Um jogo sem ritmo definido, vinculado à GPU, provavelmente terá frame rates mais altos durante cargas de GPU reduzidas.
É altamente recomendável que todos os jogos sejam têm um bom ritmo, porque frame rates desiguais significativamente afetam como os usuários percebem o desempenho.
Limitação de QPS
A limitação de QPS do Android é uma intervenção do modo jogo que ajuda os jogos a serem executados em um um frame rate mais estável para reduzir o consumo da bateria. A intervenção é disponível no Android 13 ou em versões mais recentes. Para mais mais informações, consulte a visão geral da limitação de QPS.
Avaliar as intervenções do modo jogo
Nesta seção, usamos o comando adb.
Configurar os modos
Desative os modos de jogo no Arquivo de configuração do modo jogo antes de testar as intervenções do modo jogo. Caso contrário, a plataforma ignora e respeitam somente as otimizações no jogo.
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="false"
/>
(Opcional) Fazer backup de configurações já existentes do dispositivo
No Pixel ou em outros dispositivos, pode haver uma intervenção no jogo pré-existente nas configurações do dispositivo. É possível consultar a configuração usando o comando:
adb shell device_config get game_overlay <PACKAGE_NAME>
Se a consulta retornar null
, ignore a configuração atual. Caso contrário, salve
e redefinido após a avaliação.
Avalie intervenções
Para avaliar a intervenção de redimensionamento do buffer do WindowManager por conta própria, use o o comando abaixo para definir diferentes valores de redimensionamento do buffer do WindowManager modos de jogo.
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
No exemplo acima, mode=2
é "Performance" e mode=3
.
é "Economia de bateria". O valor downscaleFactor
é especificado como uma porcentagem que
se aplica à configuração de redimensionamento (por exemplo, 0,7 é 70% e 0,8 é 80%). 90%
(0,9) o redimensionamento é quase insignificante, enquanto 50% (0,5) é significativo.
Aviso:os processos filhos podem não ser redimensionados corretamente no Android 12. Em especialmente, certifique-se de que os avisos e os pop-ups sejam renderizados corretamente. Qa é recomendável limitar a configuração de redimensionamento a pelo menos 70%.
Depois que as novas valas de redimensionamento forem configuradas, alterne entre os modos de jogo para saber como o jogo será afetado pela intervenção de redimensionamento do buffer da WindowManager:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Reinicie o jogo após cada seleção de modo. A a intervenção de redução de escalonamento requer reinicialização do app.
Desativar as intervenções
É possível controlar se uma intervenção é aplicada ao jogo basta desativá-los. Cada intervenção tem sua própria configuração de desativação.
- O mesmo arquivo XML de configuração usado para controlar a ativação e desativação do recurso Os modos também são usados para configurações de intervenção:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"
/>
- Recrie e reenvie seu jogo para desativar.
Por padrão, as intervenções definidas pelos fabricantes de equipamento original (OEMs) serão usados, a menos que você desative o uso deles explicitamente.
Recursos
Para mais informações sobre como avaliar e otimizar o desempenho do jogo:
System Profilers: analise o uso da CPU e as chamadas gráficas.
Android GPU Inspector: crie o perfil de elementos gráficos no Android.
Biblioteca Android Frame Pacing: ajude os jogos OpenGL e Vulkan a conseguir uma renderização suave e corrigir o ritmo de frames.
Android Performance Tuner: avalie e otimize o frame rate e os elementos gráficos em dispositivos Android em escala.
Energy Profiler: descubra onde o app usa mais energia do que o necessário.