Gerenciamento de memória no Android

1. Visão geral do mecanismo de gerenciamento de memória

1. Mecanismo de distribuição:

O sistema Android alocará memória razoavelmente para cada processo, de modo a garantir que cada processo possa ser executado normalmente. Em vez de não usar memória suficiente ou cada processo ocupa muita memória.

2. Mecanismo de reciclagem

Quando o sistema operacional ficar sem memória, ele terá um mecanismo razoável de recuperação e realocação.

Isso garante que o novo processo possa ser executado normalmente. Ao reciclar, é possível eliminar os processos que estão ocupando memória. Portanto, o sistema operacional precisa ter um mecanismo razoável para matar processos ocupados pela memória para garantir que os efeitos colaterais sejam minimizados.

dois. Mecanismo de gerenciamento de memória do Android

1. Mecanismo de distribuição

O Android usa um mecanismo de alocação de memória elástica. Ou seja, muita memória não será alocada no início. Em vez disso, uma pequena quantia é alocada para cada processo APP. Essa pequena quantidade está relacionada ao tamanho da memória do telefone.

Quando a memória do processo não for suficiente, o Android alocará alguma memória para cada processo. Mas esse tamanho de memória não é arbitrário, é limitado. O sistema operacional também deseja manter mais processos ativos. Desta forma, quando o usuário abrir o processo, não há necessidade de recriá-lo, apenas restaurá-lo.

2. Mecanismo de reciclagem

O Android tem prioridade para classificação de processos. Os processos são classificados e divididos principalmente em cinco categorias.

1. Processo de primeiro plano

Ou seja, o processo atualmente exibido na tela

2. Processo visível

Pode-se ver que o processo significa que o processo de primeiro plano não pertence mais ao primeiro plano. Mas o processo ainda é visível para o usuário.

3. Processo de serviço

Habilite alguns serviços, como push, localização e assim por diante.

4. Processo em segundo plano

Os processos em segundo plano são diferentes dos processos de serviço. Ele fará alguns cálculos em segundo plano.

5. Processo vazio

Um processo que não tem nada em execução. A memória pode recuperá-lo a qualquer momento.

Então, por que o Android faz essa classificação? Porque quanto menor o nível, maior a possibilidade de ser morto e reciclado pelo sistema.

Aqui, observamos que o processo de primeiro plano, o processo visível e o processo de serviço nunca serão eliminados e reciclados em circunstâncias normais.

O processo em segundo plano é armazenado em uma lista de cache, que é uma estrutura LRU, que é a menos usada recentemente.

O processo vazio é equilibrar todo o sistema. O Android não salva o processo.

Quando o Android começa a eliminar um processo, o sistema julgará os benefícios trazidos pela eliminação do processo.

O Android sempre prefere matar processos que recuperam mais memória.

três. Recursos do mecanismo de gerenciamento de memória

Podemos entendê-lo como o objetivo de gerenciamento de memória do sistema

1. Ocupa menos memória

2. Quando apropriado, libere os recursos de memória de forma razoável.

3. No caso de memória de sistema apertada, a maioria dos recursos sem importância pode ser liberada. Para fornecer memória disponível para o sistema Android.

4. É razoável salvar ou restaurar dados importantes em um ciclo de vida especial, para que o sistema possa restaurar corretamente o aplicativo.

Quatro. Método de otimização de memória

1. Quando o serviço for concluído, tente pará-lo.

Você pode usar intentservice em vez de service.

Porque intentservice pode executar tarefas demoradas no método intenthandler e sairá automaticamente após a conclusão da operação.

2. Quando a UI não estiver visível, libere alguns recursos que são usados ​​apenas pela UI.

3. Quando a memória do sistema estiver apertada, libere o máximo possível de recursos não importantes.

4. Evite o desperdício de memória causado pelo abuso de Bitmap.

5. Use contêineres de dados com otimização de memória.

6. Evite estruturas que usam injeção de dependência.

7. Use APK alinhado a zip

8. Use vários processos.

Acho que você gosta

Origin blog.csdn.net/howlaa/article/details/128815131
Recomendado
Clasificación