La batería es un recurso valioso en los dispositivos móviles. Las aplicaciones que agotan la batería se desinstalan y tienen mala calificación. Esta guía presenta las causas del consumo excesivo y técnicas para crear aplicaciones energéticamente eficientes.
Por qué es importante la batería
Experiencia de usuario
Nadie quiere una aplicación que agote su batería. La frustración lleva a la desinstalación.
Reseñas
El "agotamiento de la batería" aparece con frecuencia en las críticas negativas.
Restricciones del sistema
iOS y Android limitan las aplicaciones que consumen demasiado. Terminación en segundo plano.
Causas del consumo excesivo
Actividad en segundo plano
Procesos que se ejecutan cuando la aplicación no está en uso.
Ubicación constante
El GPS es uno de los mayores consumidores. Úselo sólo cuando sea necesario.
Solicitudes de red
Solicitudes frecuentes, especialmente con la pantalla apagada.
Bloqueos de activación
Mantener la CPU o la pantalla activa incorrectamente.
Animaciones pesadas
Las animaciones complejas requieren GPU. Úselo con moderación.
Procesamiento intensivo
Cálculos pesados, decodificación de medios.
Notificaciones push excesivas
Cada notificación activa el dispositivo.
Monitoreo del consumo
###Androide
Historiador de batería, Android Studio Profiler.
iOS
Medidor de energía Xcode, registro de energía de instrumentos.
Métricas
Tiempo de CPU, actividad de red, actualizaciones de ubicación, reactivaciones.
Optimización de la red
procesamiento por lotes
Agrupe las solicitudes en lugar de hacerlas una por una.
Compresión
Datos más pequeños = menos tiempo de transmisión.
Almacenamiento en caché
Evite solicitudes repetidas. Almacenamiento en caché agresivo.
Captación previa inteligente
Descarga datos cuando estés conectado y en Wi-Fi.
Retroceso exponencial
Los errores no deberían provocar reintentos agresivos.
Optimización de ubicación
Precisión adecuada
Utilice la precisión más baja necesaria. La alta precisión consume mucho.
Geovalla
Deje que el sistema le notifique cuando ingrese a la región. No hagas encuestas constantemente.
Cambios de ubicación importantes
Para iOS, alternativa eficiente a las actualizaciones continuas.
Proveedor de ubicación fusionada
Para Android, equilibra precisión y consumo.
Detente cuando sea innecesario
Elimine los oyentes cuando ya no los necesite.
Trabajo en segundo plano
iOS
Actualización de la aplicación en segundo plano limitada. BGTaskScheduler para tareas.
###Androide
WorkManager para tareas aplazables. Respeta el modo Doze.
Principio general
Haz lo mínimo necesario. Completa y duerme.
Evite las encuestas
Utilice push/websockets en lugar de sondeos constantes.
Bloqueos de activación
¿Qué son?
Evite que la CPU o la pantalla entren en suspensión.
Riesgos
Wake lock olvidado = batería agotada.
Buenas prácticas
Minimiza la duración, libera inmediatamente, utiliza tiempos de espera.
###Androide
Prefiere JobScheduler o WorkManager.
Animaciones eficientes
Aceleración de hardware
Úselo cuando sea posible. GPU más eficiente que CPU para gráficos.
Velocidad de fotogramas
60 fps es fluido, pero consume. Reducir cuando sea aceptable.
Animaciones fuera de pantalla
Pausa animaciones no visibles.
Lottie
Animaciones vectoriales eficientes.
Representación
Diseños simples
Las jerarquías profundas son costosas. Aplanar.
RecicladorVer/Lista
Reciclar vistas. No recrees constantemente.
Sobregiro
Evite dibujar píxeles varias veces. Inspeccionar con herramientas.
Notificaciones automáticas
Prioridad correcta
Prioridad normal para no urgente. Lote en el servidor.
Pequeña carga útil
Menos datos = menos procesamiento.
Empuje silencioso
Para sincronización en segundo plano. No actives la pantalla innecesariamente.
Medios
Códec eficiente
H.265/HEVC es más eficiente que H.264 en muchos casos.
Resolución adecuada
No decodifique 4K en miniatura.
Reproducción
Pausa cuando no sea visible. Libera recursos.
Sensores
Uso bajo demanda
Registre el oyente sólo cuando sea necesario.
Frecuencia adecuada
Frecuencia más baja posible que cumpla con el requisito.
Entrega por lotes
Lecturas grupales para menos despertares.
Herramientas de diagnóstico
###Androide
- Historiador de batería
- Perfilador de Android Studio
- estadísticas de batería dumpsys
iOS
- Organizador de energía Xcode
- Instrumentos (Registro de energía)
- Kit de métricas
Pruebas
Escenarios reales
Pruebe en uso real, no sólo en el laboratorio.
Varios dispositivos
El rendimiento varía entre dispositivos.
Batería baja
Comportamiento con 20%, 10%, 5%.
Fondo extendido
Déjalo en segundo plano durante horas. Medida.
API del sistema
###Androide
- Modo Doze: respetar, probar.
- Aplicación Standby Buckets: comprenda las categorías
- Ahorro de batería: adapta el comportamiento
iOS
- Modo de bajo consumo: reduce la actividad
- Actualización de la aplicación en segundo plano: respetar la preferencia
- BGTaskScheduler: para tareas eficientes
Modo oscuro
Pantallas OLED
Los píxeles negros están apagados. El modo oscuro guarda.
Soporte nativo
Implementar las siguientes pautas. El sistema se adapta.
Errores comunes
GPS siempre encendido
Olvidar detener las actualizaciones de ubicación.
Temporizador agresivo
setInterval de 1 segundo innecesario.
Se filtró el bloqueo de activación
No publicado en excepciones o casos extremos.
Depuración en producción
Registros excesivos, funciones de depuración activadas.
Conclusión
La optimización de la batería es responsabilidad del desarrollador. Supervise el consumo, minimice el fondo, utilice API eficientes y realice pruebas en condiciones reales. Los usuarios agradecen y quédense.
##Preguntas frecuentes
1) ¿Cómo sé si mi aplicación consume mucha batería? Utilice herramientas de creación de perfiles. Comparar con aplicaciones similares.
2) ¿El fondo es el mayor problema? Muchas veces sí. La actividad con la pantalla apagada es muy costosa.
3) ¿Cuánto consume el GPS? Es uno de los mayores consumidores. Utilice la precisión mínima requerida.
4) ¿El modo oscuro realmente ahorra batería? En las pantallas OLED, sí significativamente. LCD, no.
5) ¿Cómo probar el consumo de batería? Utilice perfiladores, pruebe en dispositivos reales, simule un uso prolongado.
Lea también
- Optimización del rendimiento móvil: guía completa
- Optimización del rendimiento móvil: ejemplos reales para principiantes
- Consumo de Batería en Apps: Comparación con Casos Reales
- Consumo de batería en aplicaciones: comparación y lista de verificación
- Consumo de Batería en Apps: Comparativa y Guía Rápida
- Desarrollo nativo de Android: cómo seguir pasos esenciales
