Archivo de la etiqueta: Android

Baterías móviles: programación aplicaciones

@cmdearcos
Grupo TIECs

¿Cuánto consume un teléfono móvil?. Mi Samsung galaxy SIII mini tiene una batería de Ion-Litio en la que puedo leer los siguientes datos:

  • 3,8 V
  • 5,70 Wh.

¿Qué significan estos datos?. Básicamente que cada carga de móvil consume 5,7 Wh y que puede almacenar hasta 1.500 mAh. Haciendo un cálculo rápido, sin tener en cuenta ningún tipo de perdidas en el proceso de carga y teniendo en cuenta que aunque el móvil tiene menos de dos meses tengo que cargarlo de media una vez al día, el consumo anual del móvil sería:

5,7 Wh x 365 días = 2,08 kWh al año.

El precio del TUR sin DH a fecha de 1 de abril de 2013 es de 0,138658 €/kWh. Si tomamos este precio para todo el año 2013, aunque ya sabemos que entre enero y marzo de 2013 el precio fue de 0,150938 €/kWh y que se prevén precios superiores al del segundo trimestre del año para el tercer y cuarto trimestre, el coste del consumo anual ascendería a:

2,08 x 0,138658 = 0,29 € antes de impuestos (0,36 € impuestos incluidos).

¿Esté coste justifica ser eficientes en el consumo de móvil?. Posiblemente con este número encima de la mesa la respuesta mas evidente es que no. Pero, ¿cuántos móviles hay en España?. Según la CMT existen actualmente 52.699.000 líneas de telefonía móvil.

Numero de móviles en España

El objetivo de estos cálculos es hayar un número aproximado que de un orden de magnitud de la importancia del consumo de los móviles en España, por lo que estamos realizando muchos supuestos para simplificar dichos cálculos. Si suponemos que todos los móviles consumen lo que el mío (cosa que ya sabemos que es incierto, pero utilizamos la “teoría” de las gallinas que entran por las que salen), el consumo de móviles en España es aproximadamente de:

  • 2,08 x 52.699.000 = 109,61 GWh.

En otro momento nos acercaremos al concepto de la huella de CO2 y de forma simple veremos cuando CO2 genera el parque de móviles en España.

Traducido el consumo anterior a € y partiendo de la base (falsa a priori) de que todas las cargas de móviles se realizan sobre contratos TUR a 0,138658 €/kWh:

  • 0,29 x 52.699.000 = 15.282.710 € (18.971.640 impuestos incluidos).

¿Le interesa a España reducir el consumo energética en telefónica móvil (sin entrar en otros dispositivos)?. Dejo esta pregunta en el aire para que la conteste la sociedad.

Pero si puedo decir que muchos usuarios cargamos (yo lo he hecho) los móviles personales en la oficina. En alguna entrada anterior he hablado de consumos fantasmas, consumo suelo y de solo consumir aquello que es necesario. En el caso de una oficina con 100 empleados el coste de las cargas de dispositivos personales puede ser un valor relativamente importante a lo largo del año.

En algunas oficinas que hemos auditado se ha prohibido la carga de dispositivos personales en la oficina, ya que es un consumo que paga la empresa y que no aporta valor (desde el punto de vista de la empresa en ese momento). Otras han permitido que se realicen cargas de dispositivos personales en ciertas horas, cuando la tarifa eléctrica es más barata. Alguna otra lo ha asumido como coste y se ha centrado en otros consumos ineficientes, explicando a los trabajadores que se permite la carga de dispositivos personales como un “beneficio social”. El precio que pagan las empresas por la electricidad no suele ser tarifa TUR, si no que es una tarifa de libre mercado con discriminación horaria y por tanto paga la misma electricidad a precios diferentes en diferentes franjas horarias. Sabiendo esto, siempre es conveniente cargar los dispositivos personales en las horas valle.

En otras entradas hablaremos de cómo configurar el móvil para consumir el mínimo de batería posible. Pero para cerrar esta entrada quiero centrarme un poco en la programación de aplicaciones para móviles.

Mis primeros pasos en la programación los di en la carrera. Una de las asignaturas que mas me enseño a programar fue Sistemas Operativos, ya que el objetivo de estas aplicaciones es gestionar de forma EFICIENTE los recursos hardware. Cosas tan simples como:

  • cuando en un programa en C se hace un malloc para “reservar” memoria es conveniente hacer un free cuando se deja de usar.
  • cuando se programa un demonio es más eficiente “embuclarlo” en un estructura for(;;) que while(1).

A principios del nuevo milenio, con el burbuja (no solo ha existido la burbuja del ladrillo) de las punto com en todo su esplendor, con la popularización de los servidores de aplicaciones JAVA, donde el programador ya no necesitaba controlar la memoria porque lo realizaba el sistema y con la bajada del precio de las memorias (tanto RAM como discos duros), ya no era necesario ser tan eficiente en la gestión de recursos (si nos quedábamos cortos de memoria se compraba mas) y de esa forma se conseguía minimizar el tiempo de desarrollo de aplicaciones.

Con la llegada de los Smartphone la cosa ha vuelto a cambiar. ¿Quién no ha escuchado la queja de que es necesario cargar más veces los nuevos móviles?. Con los antiguos móviles he sido capaz de estar más de 72 horas sin cargarlo. Con mi nuevo Smartphone no he pasado de las 31 horas (aunque tengo que reconocer que tengo muchas aplicaciones metidas, entre ellas el POU para mi hija).

¿En qué gasta un movil la batería?. Aquí vamos a poner algunos datos para que sirva de referencia, aunque para cada tipo de móvil estos datos pueden cambiar:

  • Modo avión: 2 mA
  • Modo espera 3G / EDGE: 5 mA
  • Modo espera WIFI: 12 mA
  • LCD normal: 90 mA
  • CPU 50% – 100%: 110 mA
  • Sensores: 80 mA GPS: 85 mA
  • 3G transferencia máxima: 150 mA
  • EDGE transferencia máxima: 250 mA
  • WIFI transferencia máxima: 275 mA

Teniendo en cuenta que mi batería es de 1.500 mAh, aquí os paso algunos cálculos que se aproximan bastante a la realidad que he podido observar:

  • Ver Youtube: 335 mA = 4,48 horas
  • Navegar por la Web usando 3G: 217 mA = 6,91 horas
  • Uso típico: 42 mA (de media) = 35,71 horas. Mi consumo típico es de 49 mA (30 horas)
  • Modo avión en espera: 2 mA = 30 días

A la hora de realizar aplicaciones para móviles es conveniente tener en cuenta al menos las siguientes cuestiones:

Una aplicación en modo espera que se despierta cada 15 minutos y actualiza los datos en 15 segundos tendría el siguiente consumo a la hora:

  • 4 veces x 15 segundos x 350 mA = 4,6 mAh
  • 3.540 segundos (3600 – 60) x 5 mA = 4,9 mAh.

En una hora se consume lo mismo en espera (3.540 segundos) que actualizando datos (60 segundos), por lo que es muy importante ver cómo se actualizan los datos.

Otro tema importante es el consumo que se realiza en función de cómo estamos conectados a internet. Por ejemplo bajar un fichero de 7MB de la red tendría el siguiente consumo en función de la conexión a internet:

  • EDGE (90 kbps): 300 mA * 10,5 minutos = 53 mAh
  • 3G (300 kbps): 210 mA * 3,2 minutos = 11,2 mAh
  • WIFI (1 Mbps): 330 mA * 56 segundos = 5,1 mAh.

¿Es posible que aquellas aplicaciones que requieren una actualización de datos grande solo se conecten a internet cuando lo hagan a través de WIFI?. Si, es posible y depende de la aplicación y de la forma de programarla. Aquí os dejo una pequeña aplicación para Android que lo que hace es detectar si hay conexión a internet y de qué tipo. Con esta pequeña aplicación quiero demostrar que es relativamente sencillo tener en cuenta a qué red estamos conectados para realizar o no una actualización de datos maxiva y con ello reducir el consumo de batería (y además el consumo de datos por la 3G). Estas son los tipos de conexiones que puede detectar:

  •  TYPE_WIFI: WIFI TYPE_BLUETOOTH: Bluetooth
  • TYPE_ETHERNET: Ethernet
  • TYPE_MOBILE: Móvil
  • TYPE_MOBILE_DUN: Móvil DUN
  • TYPE_MOBILE_HIPRI: Móvil alta prioridad
  • TYPE_MOBILE_MMS: Móvil MMS
  • TYPE_MOBILE_SUPL: Móvil SUPL
  • TYPE_WIMAX: Wimax

Otra opción interesante puede ser reducir el tráfico de datos y con ello el tiempo de descarga. Esto se consigue con una buena compresión. En próximas entradas ampliaremos otras cuestiones de programación que permiten ahorrar batería del movil y temas de configuración de los terminales para consumir solo aquello que es estrictamente necesario. En mi caso tener el POU para mi hija es estrictamente necesario.

@cmdearcos
Grupo TIECs