Je fais une application à base d'accéléromètre à l'aide de Cocos2D, et j'ai remarqué qu'il est possible de définir l'intervalle de mise à jour de l'accéléromètre.
[[UIAccelerometer sharedAccelerometer] setUpdateInterval: (1.0f / 60.0f)];
4 Réponses :
Ma réponse serait oui. Il vidange la batterie plus rapide. Et 60 fois / secondes est excessive. P>
Ah merci. :) Savez-vous combien de fois une seconde qu'il met normalement à jour lorsque vous ne touchez pas la méthode -SetupdateInterval: méthode?
Je fais juste une recherche rapide Google pour vous donner une réponse rapide. Cependant, je ne connais pas le taux de mise à jour par défaut. Je suggérerais que vous devriez le mettre à jour le même taux que votre framerate. Parce que je pense que ce serait sage de mettre à jour l'écran en même temps dès que vous obtenez de nouvelles données d'accéléromètre.
Selon le fiche technique de l'accéléromètre LIS302DL , il consomme ~ 0,75 MWATTTS de puissance à un taux de mise à jour de 100Hz et 0,0025 MWATTTS de puissance en mode veille (c.-à-d. Pas de lectures en cours). P>
Alors, la réponse courte est "oui", mais au sommet de ma tête, je ne peux pas mettre ces chiffres en perspective de vous donner une idée de, disons, "combien de minutes d'heure" il draine de la batterie. p>
Ma recommandation serait de faire un peu de test. Trouvez le taux de mise à jour le plus bas qui fournit des résultats satisfaisants. P>
du Guide de traitement des événements pour iPhone OS : P>
Lors de la configuration de l'intervalle de mise à jour Pour les événements d'accélération, il est préférable de Choisissez un intervalle qui minimise la Nombre d'événements livrés et encore répond aux besoins de votre application. Peu d'applications ont besoin d'accélération Événements livrés 100 fois par seconde. L'utilisation d'une fréquence inférieure empêche votre application de fonctionnement aussi souvent et peut donc améliorer la durée de vie de la batterie. P> blockQuote>
Selon cela, la partie la plus chère d'avoir une fréquence de mise à jour élevée peut être le fait que votre application doit traiter chacun de ces événements d'accéléromètre, plutôt que de ralenti pendant une période plus longue. P>
Aussi, de Guide de programmation d'applications iPhone : P>
Si vous utilisez la classe UiCeleromètre recevoir un accéléromètre régulier événements, désactivez la livraison de ceux-ci événements lorsque vous n'en avez pas besoin. De même, définissez la fréquence de l'événement livraison à la plus petite valeur qui est Convient à vos besoins. P> blockQuote>
Plus d'informations Comment "désactiver la livraison de ces événements", à partir du guide de traitement des événements ci-dessus: "Pour arrêter la livraison des événements d'accélération, définissez le délégué de l'objet UiCeleromètre partagé vers nul. Définition de l'objet délégué à NIL laisse la Sachez que cela peut désactiver le matériel d'accéléromètre selon vos besoins et économiser ainsi la vie de la batterie. "
Compte tenu des chiffres de la réponse acceptée L'utilisation de l'alimentation par l'accéléromètre réel est triviale. Votre véritable coup viendra de votre application qui doit traiter les événements et rendre la CPU ne pas dormir plus souvent. P>
La 3GS a une batterie de 4,51 watts. Drain de seul l'accéléromètre lors de l'exécution de 100 Hz tuerait la batterie de (environ) 6000 heures (en supposant que la valeur de 0,75 MW est correcte) p>
(En outre, l'iPhone 4 dispose d'une batterie de 5,25 watts, 4s 5,3 WHR et 5 5,45 WHR, au cas où vous êtes curieux) P>