Insights sobre jogos com pouca memória

Às vezes, o Android interrompe (ou encerra) os jogos de alta fidelidade quando o dispositivo está com pouca memória. O Android tenta usar toda a memória disponível para armazenar apps e jogos em cache para garantir que eles sejam carregados rapidamente (melhorando a experiência do usuário). No entanto, quando a memória fica limitada, o sistema encerra os apps e jogos que exigem mais memória para liberar espaço para a operação normal do dispositivo.

Informações, insights e práticas recomendadas para ajudar a melhorar o uso da memória do jogo incluem:

  • Use ApplicationExitInfo: essa API Java/Kotlin retorna o motivo pelo qual a execução do jogo anterior foi encerrada pelo sistema Android. Use ApplicationExitInfo para verificar se a memória está baixa como motivo de uma execução de processo anterior falhou. Confira se o jogo foi encerrado devido à pouca memória para que ele possa ser otimizado para usar menos memória nesse dispositivo.
  • Analisar o total da RAM física: para evitar que os jogos sejam encerrados quando estão em primeiro plano e para corresponder aos recursos do dispositivo, veja a RAM física total e ajuste o uso da memória do jogo com base nisso. Se o objetivo é evitar que os apps sejam encerrados logo após serem movidos para o segundo plano (para permitir que o jogador realize várias tarefas), use os callbacks trim (TRIM_MEMORY_UI_HIDDEN especificamente) para reduzir o uso da memória do jogo.
  • Não se registre para callbacks trim descontinuados. O Android não tem APIs para detectar eventos de pressão de memória nativa quando eles estão sendo executados em limites de memória (consulte a chamada Low memory killer daemon). Os callbacks de corte não foram úteis para evitar a eliminação de memória insuficiente. Por isso, o Android desativou todos eles, exceto TRIM_MEMORY_UI_HIDDEN e TRIM_MEMORY_BACKGROUND.

Low memory killer daemon (link em inglês)

O daemon de eliminação de pouca memória do Android (lmkd) é um processo que monitora o estado de memória de um sistema Android em execução e reage à alta pressão de memória encerrando os processos menos essenciais para manter o desempenho do sistema em níveis aceitáveis.

O daemon pode escolher processos para eliminação sem esperar que o processo reconheça qualquer tipo de callback. Assim, os apps e jogos não vão receber uma notificação como uma última chance de liberar memória antes de serem encerrados.

Saiba mais sobre o daemon de eliminação de pouca memória.