73 votes

Comment tester les performances d'une application Android ?

Comment tester les performances d'une application sous Android ? Quel est le support fourni dans Android et comment l'utiliser ?

96voto

Dave Webb Points 90034

Si vous voulez profiler votre application pour trouver les goulots d'étranglement en matière de performances, vous pouvez utiliser le traceview outil . Cela vous donne une vue graphique des traces de performance de votre application.

Pour créer une trace, ajoutez ce qui suit à votre code à l'endroit où vous voulez commencer la trace :

Debug.startMethodTracing("myapp");

puis mettez ce qui suit lorsque vous voulez arrêter le traçage :

Debug.stopMethodTracing();

Cela créera un appel de fichier de trace myapp.trace dans le répertoire racine de la carte SD. Au fur et à mesure qu'il est écrit sur la carte SD :

  • Si vous utilisez l'émulateur, vous devrez ajouter une carte SD à votre AVD .
  • Vous devez donner à votre application la permission d'écrire sur la carte SD en ajoutant ce qui suit à votre manifeste :

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Une fois le fichier créé, vous devrez le copier sur votre PC. Vous pouvez le faire en utilisant le adb commandement :

adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace

Enfin, commencez traceview en lui donnant le chemin complet dans le fichier de suivi :

traceview c:/my/dir/myapp.trace

J'ai eu quelques problèmes avec traceview à défaut de OutOfMemory exceptions. J'ai résolu ce problème sous Windows en changeant la dernière ligne de traceview.bat de :

call java -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*

à :

call java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*

Ajout de la -Xmx1g L'option permet traceview pour utiliser plus de mémoire.

5voto

Samuh Points 16564

Aussi, théoriquement Le DDMS peut obtenir des allocations de mémoire pour votre programme et vous pouvez ensuite analyser le dump en utilisant des profileurs. Référence DDMS.
La raison pour laquelle j'ai mis "théoriquement" en italique est que je n'ai pas encore essayé de faire quelque chose de ce genre.

3voto

Kumar Rangarajan Points 187

(Clause de non-responsabilité : je suis le cofondateur de l'entreprise mentionnée ci-dessous)

Je recommande d'essayer Petit Œil pour faire votre analyse de performance des applications Android. Il vous permet de mesurer instantanément divers attributs de performance de votre application, notamment la consommation d'énergie, le processeur, la mémoire, les données réseau, l'utilisation de l'espace disque, etc. Il associe également un enregistrement très utile de l'activité de l'ensemble de l'écran et des activités internes de l'application (y compris les journaux, les threads, etc.), de sorte qu'il devient très facile de corréler la consommation avec les activités de l'utilisateur et les activités de l'application.

Et contrairement au DDMS, cela peut fonctionner sur TOUTES y compris les applications de production. La comparaison avec vos concurrents est également très facile.

Jetez-y un coup d'œil et j'espère que cela vous aidera. :-)

Mise à jour :

Depuis que l'équipe du Petit Œil a rejoint Facebook, elle n'accepte plus de de nouvelles inscriptions pour le moment !

3voto

coocood Points 616

Je pense que TraceView contient trop d'informations, on peut facilement s'y perdre.

Ma solution consiste à enregistrer l'heure du système à trois endroits dans le code.

Avant et après et centre au code lent potentiel.

comme une recherche binaire, la prochaine fois, réduisez-la étape par étape, puis trouvez finalement le code coupable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X