Analiza los datos de tráfico de red con la herramienta de tráfico de red

La herramienta de tráfico de red dejó de estar disponible. Si usas Android Studio 3.0 o una versión posterior, debes usar el Generador de perfiles de red para examinar cómo y cuándo tu app transfiere datos por medio de redes.

En la sección anterior, etiquetaste el código de tu app con identificadores de tráfico, realizaste pruebas y recopilaste datos. En esta lección, aprenderás a analizar los datos de tráfico de red que recopilaste y a realizar acciones para mejorar el rendimiento de red de tu app y reducir el consumo de batería.

Analiza el tráfico de la red de la app

El uso eficiente de los recursos de red que hace una app se caracteriza por amplios períodos en los que el hardware de la red no está en uso. En los dispositivos móviles, el costo de activar la radio para enviar o recibir datos es muy elevado, al igual que para mantenerla activa durante períodos extensos. Si tu app accede a la red de manera eficiente, verás que sus comunicaciones a través de la red están bien agrupadas y separadas por períodos en los que no envía solicitudes de conexión.

En la Figura 1, se muestra un tráfico de red subóptimo de la app, medido por la herramienta Network Traffic. La app envía solicitudes de red con frecuencia. Este tráfico tiene pocos períodos de descanso en los que la radio podría cambiar a un modo de espera de bajo consumo. Es probable que el comportamiento de acceso a la red de esta app mantenga la radio activa durante períodos extensos; este método no tiene un consumo de batería eficiente.

Figura 1. Actividad de red con uso de batería ineficiente medida desde una app

En la Figura 2, se muestra un patrón de tráfico de red óptimo. La app envía solicitudes de red en aumentos de actividad, separados por extensos períodos sin tráfico en los que la radio puede pasar al modo de espera. En este gráfico, se muestra la misma cantidad de trabajo que se realiza en la Figura 1, pero las solicitudes se cambiaron y se agruparon para permitir que la radio esté en espera la mayor parte del tiempo.

Figura 2. Actividad de red eficiente con la batería medida desde una app.

Si el tráfico de red de tu app es similar al de la Figura 2, vas por buen camino. ¡Felicitaciones! Si quieres optimizar aún más la red, puedes consultar las técnicas descritas en Cómo optimizar el uso de redes general.

Si el tráfico de red de tu app se parece más al gráfico de la Figura 1, debes modificar el método que usa tu app para acceder a la red. Para empezar, analiza los tipos de tráfico de red que genera tu app.

Analiza tipos de tráfico de red

Cuando observas el tráfico de red que genera tu app, debes comprender de dónde proviene para poder optimizarlo correctamente. La actividad de red frecuente que genera tu app podría ser completamente razonable si responde a las acciones del usuario, pero completamente innecesaria si tu app no se está ejecutando en primer plano o si el dispositivo está guardado en un bolsillo o bolso. En esta sección, se explica cómo analizar los tipos de tráfico de red que genera una app, y se brindan instrucciones para mejorar el rendimiento.

En la lección anterior, etiquetaste el código de tu app para diferentes tipos de tráfico y usaste la Network Traffic a fin de recopilar datos sobre tu app y generar un gráfico de actividad como el que se muestra en la Figura 3.

Figura 3. Tráfico de red etiquetado para las tres categorías: usuario, app y servidor.

La herramienta Network Traffic identifica el tráfico con colores en función de las etiquetas que creaste en la lección anterior. Los colores se basan en las constantes de tipo de tráfico que definiste en el código de tu app. Consulta el código de tu app para confirmar qué constantes representan el tráfico iniciado por el usuario, la app o el servidor.

En las siguientes secciones, se explica cómo analizar los tipos de tráfico de red, y se brindan recomendaciones para optimizarlo.

Analiza el tráfico de red iniciado por el usuario

La actividad de red iniciada por el usuario podría agruparse eficazmente mientras este realiza una actividad específica con tu app, o bien separarse en intervalos desiguales a medida que el usuario solicita información adicional que tu app debe obtener. El objetivo de tu análisis del tráfico iniciado por el usuario es buscar patrones de uso de red frecuentes en el tiempo a fin de crear o extender períodos en los que no se acceda a la red.

La imprevisibilidad de las solicitudes del usuario dificulta la optimización de este tipo de uso de red en tu app. Además, los usuarios esperan respuestas rápidas cuando usan activamente una app, por lo que retrasar las solicitudes por razones de eficiencia puede perjudicar la experiencia del usuario. En general, debes priorizar la respuesta rápida para el usuario sobre el uso eficiente de la red en los casos en los que el usuario interactúa de manera directa con tu app.

Estas son algunas formas de optimizar el tráfico de red iniciado por el usuario:

Analiza el tráfico de red iniciado por la app

La actividad de red iniciada por el código de tu app suele tener un impacto significativo en el uso eficiente del ancho de banda de red. Cuando analices la actividad de red de tu app, identifica los períodos de inactividad y determina si puedes extenderlos. Si ves patrones de acceso a la red constantes, busca maneras de espaciarlos a fin de permitir que la radio del dispositivo cambie al modo de ahorro de batería.

Estas son algunas formas de optimizar el tráfico de red iniciado por la app:

Analiza el tráfico de red iniciado por el servidor

La actividad de red iniciada por los servidores que se comunican con tu app también puede tener un impacto significativo en la eficiencia del ancho de banda de red. Cuando analices la actividad de red de las conexiones con servidores, identifica los períodos de inactividad y determina si puedes extenderlos. Si ves patrones de actividad de red constantes, busca maneras de espaciarlos a fin de permitir que la radio del dispositivo cambie al modo de ahorro de batería.

Estas son algunas formas de optimizar el tráfico de red iniciado por el servidor: