2016-08-03 2 views
1

J'ai une application Android pour détecter les balises Eddystone en utilisant la bibliothèque Android Beacon. Je voudrais tester la consommation de la batterie causée par l'application pour trouver les meilleurs taux de balayage de fond et de premier plan. Dans Paramètres> Applications> MyBeaconDetectorApp, il affiche 0% d'utilisation de la batterie après avoir activé le bluetooth pendant plus d'une heure. Je pense que l'application est en arrière-plan et donc 0%. Cependant, comment puis-je vérifier la consommation de la batterie causée par les scans Bluetooth. J'ai défini mon BackgroundBetweenScanPeriod comme 1 minute.Comment vérifier la consommation de la batterie causée par Bluetooth Scans

Merci

Répondre

2

Bien qu'il soit difficile de mesurer la consommation de la batterie directement, est la technique ici, je l'utilise:

  1. Utilisez un dispositif de test avec un nombre limité d'applications installées qui seront en cours d'exécution en l'arrière-plan. Un périphérique Nexus stock après la réinitialisation d'usine est idéal.

  2. charge la batterie à 100%

  3. Mettre l'appareil en mode avion et mis Bluetooth.

  4. Installez votre application pour la démarrer en arrière-plan. Éteignez l'écran et déconnectez le connecteur USB de l'appareil.

  5. Notez l'heure de début.

  6. Laissez l'application fonctionner en arrière-plan pendant au moins 8 heures, idéalement en présence d'au moins une balise.

  7. Mesurez le niveau de la batterie. Le delta de 100% est le pourcentage de drainage. Notez ce numéro et l'heure de fin.

  8. Recherchez le nombre de mAh de votre batterie pour votre modèle de téléphone. Multiplier le pourcentage de vidange par le mAH et diviser par le temps de l'essai en heures. Cela vous indique combien de mA le téléphone utilise lors de l'exécution de votre application.

Ensuite, désinstallez votre application et répétez la procédure ci-dessus. Cela vous donnera un drain de batterie de base pour votre appareil sans votre application en cours d'exécution. Enfin, soustrayez la ligne de base mAH du mAH avec votre application en cours d'exécution pour mesurer la mAH supplémentaire utilisée par votre application. Une dernière remarque: si vous numérisez réellement toutes les minutes en arrière-plan (la valeur par défaut est de cinq minutes pour économiser la batterie), je m'attendrais à ce que cela entraîne une fuite de batterie supplémentaire significative. Les tests utilisant la procédure ci-dessus vous le diront à coup sûr. J'aimerais entendre vos résultats!

+0

Je vais certainement essayer ça. Je prévoyais d'utiliser un service en ligne, peut-être AWS Device Farm pour y parvenir. Cependant, je ne peux pas demander d'introduire des balises dans leurs centres de test. Pensez-vous que ne pas avoir une balise à proximité affectera la consommation de la batterie? –

+1

Oui, ne pas avoir une balise à proximité l'affectera de deux façons: (1) Si vous testez sur Android 5+, les filtres matériels sont utilisés pour minimiser l'épuisement des piles, mais ne sont pas utilisés lorsque les balises au lieu de l'analyse périodique. (2) Lorsque les balises sont présentes, il faut une petite quantité de CPU non négligeable pour analyser les identifiants hors des paquets. – davidgyoung