2010-08-28 7 views
6

Actualmente estoy probando la última característica de iOS4 para poner mi aplicación de ubicación consciente en segundo plano. Bueno, ¡funciona! Pero, por otro lado, es bastante difícil manejar el inmenso consumo de energía.Mejores prácticas - iPhone Modo de aplicación de fondo

La aplicación consumió aproximadamente el 50% de la energía de la batería en las últimas cuatro horas. Leyó el entire official documentation de Apple sobre este tema, pero todavía no estoy seguro de qué partes de mi aplicación todavía se están ejecutando y qué funcionalidad está suspendida (al lado del Dibujo UI, que debería ser claro).

No utilizo ningún código repetitivo real sino bibliotecas extendidas como ASIHTTPRequest para hablar con mi servicio web. Las pruebas con un coche amigos no le muestran que la conectividad de red y los servicios de localización y todavía se está ejecutando cuando estoy usando es decir

[locationManager startMonitoringSignificantLocationChanges]; 

Apples Documentation on los diferentes estados de aplicación

Antecedentes: La aplicación está en el fondo y la ejecución de código [...]

¿Debo escribir funciones de "metal desnudo" para recibir y s finalizar esta información de ubicación? ¿Debo eliminar todos los demás objetos por el tiempo que la aplicación reside en el fondo para reducir la huella de memoria? Parece que todavía no hay una mejor práctica.

¿Alguna idea? Tal vez ustedes pueden brindarme algunas de sus ideas. Gracias.

Editar: Hay una nueva herramienta llamada Instrumentos Energy Diagnostics Instruments para registrar cualquier uso de energía (para iPhone 3GS y posteriores) con un dispositivo asociado. También hay otro servicio en el dispositivo en la Aplicación de configuración -> Desarrollador -> Uso de energía. Es genial probar tu consumo de energía en el campo. Los registros creados pueden extraerse más tarde en instrumentos.

Referencia: WWDC 2010 Sesión 309 - Análisis de rendimiento avanzado con instrumentos

Respuesta

4

Parece que su aplicación está transmitiendo datos de localización sobre la red celular. Encender la radio celular es una de las causas más rápidas de pérdida de potencia, especialmente si el usuario tiene una conexión de señal débil a la torre de la celda.

Puede guardar y empaquetar una gran cantidad de datos de ubicación, y enviar los datos en una ráfaga rápida tan pocas veces como sea posible (dos veces por día, cuando el usuario deja de moverse durante 30 minutos, solo después de que el usuario uno de sus restaurantes favoritos, etc.) Encender la radio menos de la mitad de las veces podría acercarlo a duplicar la duración de la batería (a menos que el usuario también esté haciendo otra cosa con el dispositivo).