Diretório de artigos
ANR ocorre durante o uso do aplicativo. Este é um fenômeno doloroso. O aplicativo congela, tela preta aparece, etc.
1. Direção de otimização
- A direção é o objetivo: rápido, estável, econômico e pequeno.
- Os principais problemas a serem resolvidos: travamento, uso excessivo de memória, baixa qualidade de código, lógica de código confusa e pacote de instalação muito grande, esses são os problemas mais comuns encontrados durante o processo de desenvolvimento.
- análise de ideia
1、
2. Implemente a otimização
1. Vá para Caton
- Congelamento da interface do usuário
- razão
```
-----主要以下两点-----
- 1、绘制任务太重,绘制一帧内容耗时太长
- 2、主线程太忙, 主线程做了太多的事情,或有耗时动作。
```
-
Principais responsabilidades do thread: controle do ciclo de vida da interface, processamento de eventos do sistema, processamento de mensagens, layout da interface, desenho da interface, atualização da interface.
-
A cooperação entre o olho humano e o cérebro não consegue perceber a atualização da imagem superior a 60fps;
-
O padrão de desempenho do App é garantir o valor de 60fps, ou seja, cada quadro leva apenas 1000/60 = 16ms;
-
A interface ficará travada e não suave, porque o processamento atual da interface do usuário dessa interface excede 16ms e ocupará os próximos 16ms, de modo que 16ms * 2 sejam exibidos no mesmo quadro, que é o que vejo como "preso".
- ferramenta
Hierarchy Viewer工具 \
- Soluções
- am start -W com.nwd.can.setting/com.nwd.can.setting.ui.MainActivity
- Iniciar atraso
- Saltar preso
- Atraso de resposta
2. Mantenha-se estável
item problemático | URL de referência |
---|---|
vazamento de memória, estouro de memória | Pontos de conhecimento de referência |
- fora da memória
Estouro de memória: (sem memória) O entendimento comum é que a memória não é suficiente, geralmente ao executar software ou jogos em grande escala, a memória exigida pelo software ou jogos excede em muito a capacidade da memória instalada em seu host , o que é chamado de estouro de memória.
- Vazamento de memória
-
Vazamento de memória: (Memory Leak) refere-se ao heap de memória que foi alocado dinamicamente no programa não é liberado ou não pode ser liberado por algum motivo, resultando em um desperdício de memória do sistema, resultando em sérias consequências como diminuir a velocidade de execução do programa e até travar o sistema.
-
As consequências do acúmulo de vazamento de memória são muito graves, não importa quanta memória, ela será ocupada mais cedo ou mais tarde.
-
Caso 1