2012-03-30 6 views
68

Si estoy construyendo una aplicación de teléfono inteligente que regularmente descarga datos de un servidor y también cargas datos de forma intermitente (análisis, anuncios, etc.), ¿qué puedo hacer? minimizar el impacto de la vida de la batería de esas transferencias?Reducir el impacto de la batería de aplicaciones que descargan contenido a través de una radio de teléfono inteligente

El impacto de la batería de las transferencias usando la radio inalámbrica (2G, 3G, LTE, etc.) es particularmente significativo. ¿Hay algo sobre el perfil de uso de energía de la radio inalámbrica que debería afectar mis elecciones de cuándo, qué y cómo transferir datos para minimizar su impacto en la duración de la batería?

Respuesta

79

Esta respuesta se resume de la clase de entrenamiento de Android, el cual Transferring Data Without Draining the Battery explica cómo minimizar el impacto duración de la batería de descargas y conexiones de red, particularmente en relación con la radio inalámbrica .

En particular Optimizing Downloads for Efficient Network Access explica la máquina de estados de radio inalámbrica con cierto detalle y continúa para explicar cómo modelo de conectividad de su aplicación debe interactuar con él para minimizar el consumo de la batería relacionados.

La máquina de estados radio inalámbrica

Reference

Cada vez que se crea una nueva conexión de red de la radio pasará al estado de energía completa. Esta transición generalmente toma alrededor de 2 segundos, por lo que para minimizar la latencia, la radio introduce un retraso para posponer la transición a estados de energía más bajos.

Un radio 3G típico permanecerá a plena potencia durante 5 segundos después de que se complete su transferencia, antes de esperar otros 12 segundos en el estado de baja energía antes de pasar al modo de espera. En total, la radio consumirá energía durante casi 20 segundos cada vez que establezcas una conexión. Este enfoque puede generar ineficiencias para aplicaciones que se ejecutan en sistemas operativos modernos de teléfonos inteligentes, donde las aplicaciones se ejecutan en primer plano (donde la latencia es importante) y en segundo plano (donde se debe priorizar la duración de la batería).

Soluciones

La clave para minimizar el efecto de las descargas de la batería es el reconocimiento de que la frecuencia de transferencias tiene un impacto más dramático que el tamaño de las descargas. En términos prácticos, la captación previa y la puesta en cola/agrupación de sus transferencias son particularmente efectivas.

Sabiendo que cada vez que inicia una conexión potencialmente causa que la radio consuma energía durante casi 20 segundos, es importante agrupar sus transferencias de datos para que sea efectivamente transferencias de desplazamiento de fase que se producirán dentro de una similar ventana de tiempo para que transfiera la mayor cantidad de datos posible durante cada sesión de transferencia para minimizar el número de sesiones.

De manera similar, la recuperación previa le permite descargar todos los datos que probablemente necesitará durante un período de tiempo determinado en una sola ráfaga, en una sola conexión, a plena capacidad. Al cargar sus transferencias, reduce la cantidad de activaciones de radio necesarias para descargar los datos, conservando la duración de la batería, mejorando la latencia, disminuyendo el ancho de banda y reduciendo los tiempos de descarga.

Sin embargo, la recuperación previa también presenta el riesgo de aumentar el consumo de batería y el uso de ancho de banda mediante la descarga de datos que no se utilizan.

La agresividad de la captación previa depende del tamaño de los datos que se descargan y de la probabilidad de que se utilicen. En general, es una buena práctica recuperar datos de manera que solo necesite iniciar otra descarga cada 2 a 5 minutos, y del orden de 1 a 5 megabytes.

En general, también es más eficiente reutilizar las conexiones de red existentes en lugar de crear otras nuevas. La reutilización de conexiones también permite que la red reaccione de forma más inteligente ante la congestión y los problemas relacionados con los datos de red.

11

Le recomiendo que agregue una preferencia "Frecuencia de sincronización" a la configuración de su aplicación, por lo que el usuario tiene algo que decir al equilibrar la frescura de los datos con el uso de la batería. Diferentes usuarios tienen diferentes prioridades.

Cuestiones relacionadas