À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. UseApplicationExitInfo
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
eTRIM_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. |