O uso da ferramenta Network Traffic foi descontinuado. Se você está usando o Android Studio 3.0 ou versão mais recente, use a ferramenta Network Profiler para analisar como e quando seu app transfere dados em uma rede.
Na seção anterior, você marcou o código do app com identificadores de tráfego, executou testes e coletou dados. Esta lição ensina a analisar os dados do tráfego de rede coletados e traz orientações de como melhorar a performance de rede do app e reduzir o consumo de energia.
Analisar o tráfego de rede do app
O uso eficiente dos recursos de rede por um app é caracterizado por períodos significativos em que o hardware de rede não é usado. Em dispositivos móveis, inicializar o rádio para enviar ou receber dados e manter o rádio móvel ativo por períodos longos são ações que envolvem um custo significativo. Caso seu app acesse a rede de forma eficiente, você verá que a comunicação nela é bem agrupada e corretamente espaçada por períodos em que o app não faz solicitações de conexão.
A Figura 1 mostra um tráfego de rede insatisfatório para um app, conforme medido pela ferramenta Network Traffic. O app faz solicitações frequentes de rede. Esse tráfego tem poucos períodos de repouso em que o rádio pode alternar para um modo em espera de baixo consumo de energia. O comportamento de acesso à rede desse app provavelmente manterá o rádio ligado por períodos prolongados, o que gera um consumo de bateria ineficiente.
A figura 2 mostra um padrão de tráfego de rede ideal. O app envia solicitações de rede em bursts, seguidos por longos períodos sem tráfego em que o rádio pode alternar para o modo em espera. Este gráfico mostra a mesma quantidade de trabalho que a Figura 1, mas as solicitações foram deslocadas e agrupadas para permitir que o rádio fique em espera na maior parte do tempo.
Se o tráfego de rede do seu app é parecido com o do gráfico da Figura 2, você está indo bem. Parabéns! Se você quer melhorar ainda mais a eficiência da rede, consulte as técnicas descritas em Como otimizar o uso geral de rede.
Se o tráfego de rede do seu app se parece mais com o do gráfico da Figura 1, analise com mais detalhes o modo como ele acessa a rede. Comece analisando os tipos de tráfego de rede que seu app gera.
Analisar tipos de tráfego de rede
Ao analisar o tráfego de rede gerado pelo app, é preciso entender a origem do tráfego para poder otimizá-lo corretamente. A atividade frequente de rede gerada pelo app poderá ser totalmente correta se estiver respondendo a ações do usuário, mas completamente incorreta se o app não estiver no primeiro plano ou se o dispositivo estiver dentro do bolso ou da mochila. Esta seção discute como analisar os tipos de tráfego de rede gerados pelo app e traz orientações de como melhorar a performance.
Na lição anterior, você marcou o código do app para diferentes tipos de tráfego e usou a ferramenta Network Traffic para coletar dados no app e produzir um gráfico de atividade, conforme mostrado na Figura 3.
A ferramenta Network Traffic colore o tráfego com base nas tags criadas na lição anterior. As cores variam de acordo com as constantes que você definiu para o tipo de tráfego no código do app. Consulte novamente o código do app para verificar quais constantes representam o tráfego iniciado pelo usuário, pelo app ou pelo servidor.
As seções a seguir explicam como analisar os tipos de tráfego de rede e oferecem recomendações de como otimizar o tráfego.
Analisar o tráfego de rede iniciado pelo usuário
A atividade de rede iniciada pelo usuário pode ser eficientemente agrupada enquanto ele realiza uma atividade específica com o app ou distribuída sem uniformidade enquanto o usuário solicita mais informações que seu app precisa disponibilizar. Sua meta ao analisar o tráfego de rede iniciado pelo usuário é observar padrões de uso frequente da rede ao longo do tempo e tentar criar ou aumentar os períodos em que a rede não é acessada.
A imprevisibilidade das solicitações do usuário dificulta a otimização desse tipo de uso de rede no app. Além disso, os usuários esperam respostas rápidas quando estão usando um aplicativo. Portanto, atrasar as solicitações para aumentar a eficiência pode resultar em experiências insatisfatórias. Em geral, priorize uma resposta rápida em detrimento do uso eficiente da rede enquanto o usuário interage diretamente com o app.
Veja algumas abordagens para otimizar o tráfego de rede iniciado pelo usuário:
- Fazer a pré-busca de dados de rede: quando o usuário realiza uma ação, o app prevê quais dados podem ser necessários para as próximas ações, os busca em massa em uma única conexão e os retém até que sejam solicitados.
- Verificar a conectividade ou ouvir mudanças: verifique a conectividade de rede ou ouça mudanças de conectividade antes de fazer uma atualização.
- Reduzir o número de conexões: use APIs de servidor que permitam o download de dados em conjuntos.
Analisar o tráfego de rede iniciado pelo app
Em geral, a atividade de rede iniciada pelo código do app é uma área em que pode haver um impacto significativo sobre o uso eficiente da largura de banda da rede. Ao analisar a atividade de rede do app, procure períodos de inatividade e determine se é possível aumentá-los. Se você vir padrões de acesso persistente à rede vindo do app, procure maneiras de espaçar esses acessos e permitir que o rádio do dispositivo alterne para o modo de baixo consumo de energia.
Veja algumas abordagens para otimizar o tráfego de rede iniciado pelo app:
Agrupar e programar solicitações de rede: adie as solicitações de rede do app para que elas sejam processadas juntas e em um momento vantajoso para a duração da bateria.
Permitir que o sistema verifique a conectividade: para economizar bateria, evite executar o app apenas para verificar se há uma conexão de rede, já que o sistema pode fazer essa análise enquanto o app está em suspensão.
Analisar o tráfego de rede iniciado pelo servidor
A atividade de rede iniciada por servidores que se comunicam com o app também costuma ser uma área em que pode haver um impacto significativo sobre o uso eficiente da largura de banda da rede. Ao analisar a atividade de rede proveniente das conexões do servidor, procure períodos de inatividade e determine se é possível aumentá-los. Se você vir padrões de atividade de rede persistente dos servidores, procure maneiras de espaçar essa atividade e permitir que o rádio do dispositivo alterne para o modo de baixo consumo de energia.
Veja a seguir uma abordagem para otimizar o tráfego de rede iniciado pelo servidor:
- Usar o FCM para atualizações do servidor: use o serviço do Firebase Cloud Messaging para atualizações do lado do servidor, em vez de sondagem.