2010-08-28 2 views
6

Je suis en train de tester la dernière fonctionnalité iOS4 pour mettre en arrière-plan mon application de localisation. Eh bien, ça marche! Mais d'un autre côté, il est très difficile de gérer l'énorme consommation d'énergie.Meilleure pratique - Mode Application en arrière-plan pour l'iPhone

L'application a consommé environ 50% de la batterie au cours des quatre dernières heures. Il a lu le entire official documentation par Apple sur ce sujet mais je ne suis toujours pas sûr quelles parties de mon application fonctionnent toujours et quelle fonctionnalité est suspendue (à côté du dessin de l'interface utilisateur, qui devrait être clair).

Je n'utilise aucun code standard, mais des bibliothèques étendues comme ASIHTTPRequest pour parler à mon service web. Des essais avec une voiture d'amis avez-vous montré que la connectivité réseau et et les services de localisation est toujours en cours d'exécution lorsque j'utilise par exemple

[locationManager startMonitoringSignificantLocationChanges]; 

Apples Documentation on les différents états d'application

Contexte: L'application est en arrière-plan et l'exécution du code [...]

Devrais-je écrire un "bare metal" fonctions pour recevoir et s mettre fin à ces données de localisation? Dois-je supprimer tous les autres objets pendant la durée de l'application en arrière-plan pour réduire l'empreinte mémoire? Il semble qu'il n'y ait pas encore de bonne pratique.

Des idées? Peut-être que vous pouvez me fournir certaines de vos idées. Merci.

Edit: Il y a un nouvel outil appelé Instruments Energy Diagnostics Instruments pour enregistrer toute utilisation d'énergie (pour iPhone 3GS et versions ultérieures) avec un périphérique connecté. Il existe également un autre service sur l'appareil dans l'application Paramètres -> Développeur -> Utilisation de l'alimentation. C'est génial de tester votre consommation d'énergie sur le terrain. Les journaux créés peuvent être extraits plus tard dans les instruments.

Référence: WWDC 2010 Session 309 - Analyse des performances de pointe avec instruments

Répondre

4

Sons comme votre application transmet des données de localisation sur le réseau cellulaire. Allumer la radio cellulaire est l'une des causes les plus rapides de la consommation d'énergie, surtout si l'utilisateur a une faible connexion de signal à la tour de téléphonie cellulaire. Vous voudrez peut-être sauvegarder et empaqueter un paquet de données de localisation, et envoyer les données en rafale aussi rarement que possible (deux fois par jour, lorsque l'utilisateur arrête de bouger pendant 30 minutes, seulement après que l'utilisateur ait atteint un de leurs restaurants préférés, etc.) Allumer la radio moins de la moitié aussi souvent pourrait vous aider à doubler l'autonomie de la batterie (à moins que l'utilisateur ne fasse autre chose avec l'appareil).

Questions connexes