/ / Heap space no aplicativo Android - java, android, heap-memory

Espaço de pilha no aplicativo android - java, android, memória de pilha

Eu tenho um aplicativo que usa um SurfaceView para desenhar uma animação o mais rápido possível. É quase perfeito, exceto que, de tempos em tempos, a animação congela por um curto período de tempo. Esse curto período dura aproximadamente 10 ms, o que não é muito, mas é grande o suficiente para ser percebido pelo usuário.

Vi que esses congelamentos são causados ​​por alterações no espaço da pilha, que são acionadas pelo coletor de lixo. Adicionando o android:largeHeap="true" no manifesto do meu aplicativo não resolveu o problema.

Alguém sabe como eu poderia me livrar desse problema irritante?

Respostas:

1 para resposta № 1

Esse é o coletor de lixo tentando liberar alguns recursos. Você precisaria ver o logcat - ele seria visível lá.

Sugiro otimizar o uso da memória (abaixe otamanhos de bitmap ou modifique o esquema de carregamento) ou (se possível) encontre algum intervalo no qual nada seja intensamente animado e faça System.gc () nesse ponto para ocultar o congelamento do usuário.


0 para resposta № 2

Parece que o Android não foi rápido o suficiente para aumentar o espaço de pilha de um aplicativo.

Tente usar a configuração largeHeap no arquivo de manifesto. Com essa configuração ativada, o Android deixa mais memória livre toda vez que aumenta a pilha, o que minimiza a chance de atingir o limite atual.

Você só precisa definir largeHeap="true" na tag do aplicativo AndroidManifest.xml