Analisar dados do tráfego de rede com a ferramenta Network Traffic

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.

Figura 1. Atividade da rede com consumo de bateria ineficiente medida de um app.

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.

Figura 2. Atividade de rede com consumo de bateria eficiente medida de um app.

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.

Figura 3. Tráfego de rede marcado para as três categorias: usuário, app e servidor.

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:

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:

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: