Comment tester les performances d'une application sous Android ? Quel est le support fourni dans Android et comment l'utiliser ?
Réponses
Trop de publicités?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.
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.
(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 !
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.