Como posso degradar graciosamente meu desempenho, devido à memória limitada?
Passei os últimos dias tentando remover vazamentos de memória no meu jogo, resultando em muitos erros de falta de memória. Estou prestes a adicionar uma quantidade significativa de gráficos, que, embora não sejam muito complicados, aumentará significativamente os requisitos de processamento do meu sistema, e estou um pouco preocupado com o uso de memória e esperava que alguém pudesse ter algumas dicas para mim. Não quero ir abaixo do Android 2.1, portanto, adapte as respostas para esse fim.
Primeiro de tudo, meu jogo consiste em:
atividades, 13 arquivos XML (alguns relacionados a uma pequena parte de um layout, alguns diálogos e 2 diretamente relacionados a atividadeUm número de desenháveis, criados no Adobe Illustrator e convertidos em PNG. Provavelmente, são grandes, mas não incomumente grandes e, na maior parte, apenas pequenas quantidades estão na memória a qualquer momentAlguns diálogo Direcionado para o Android 1.6 e superior.Eu usei o mais novo Admob e, como resultado, tenho que construir contra o 3.Meu tamanho de heap padrão para meus emuladores é de cerca de 24 MUma amostra de imagens do meu jogo:
O que eu aprendi
Apesar do tamanho total do meu aplicativo ser de apenas 500 KB, de alguma forma estou ocupando 24 Megs, conforme calculado poradb shell procrank
.iz uma otimização considerável, mas não estou vendo grandes aumentos na memóriUtilizar ferramentas para encontrar o que há no Heap geralmente mostra apenas 7 MB disponíveis, com cerca de 3 MB sendo usados. Às vezes, ao abrir novas caixas de diálogo e afins, vejo um aumento, mas não posso dizer que vejo tudo isso tão grande ... @MAT mostra que nenhuma das minhas turmas está usando uma quantidade extraordinariamente grande de memóriEntão, considerando tudo isso, minhas pergunta
24 Mb é um requisito real a ser desenvolvido para (1.6+ android)? Supondo que seja, como posso permitir gráficos mais agradáveis para sistemas que possam lidar com isso, mas não travar e gravar nos sistemas mais antigo Quais são algumas dicas comuns que posso usar para melhorar meu uso de memória?