2010-11-30 6 views
0

Souvent, lorsque je débogue mon application, je clique sur le bouton et finis une activité, mais je ne suis pas sûre à 100% de laquelle. Cela arrive dans mon dernier projet, dont j'ai hérité de quelqu'un d'autre.Déterminez quelle activité est actuellement active dans Android (non programmatique)

Je veux une méthode facile de déterminer quelle activité je suis actuellement, pas par programme pour le programme, mais pour mon cerveau. Je vois ActivityManager dire quelque chose comme "Activité affichée foo" dans logcat, mais parfois ce message disparaît rapidement à cause d'autres journaux.

Idéalement, la classe d'activité actuelle serait affichée quelque part en tout temps, ou il y aurait quelque chose de similaire au bouton Inspecter de Firebug mais pour les activités. J'ai regardé autour de la perspective DDMS et je ne l'ai pas trouvé là non plus.

Des idées?

Répondre

2

Le hierarchyviewer est très bien pour cela, mais peut-être un peu lourds.

Essayez cette ligne de commande:

adb logcat |grep "Starting activity" 

Chaque fois que vous commencez une nouvelle activité, il y aura une ligne imprimée.

+0

Je devrais ajouter que vous pouvez voir toutes sortes d'autres choses intéressantes en grevant tous les messages de journal du ActivityManager, au lieu de simplement commencer des activités. Essayez "adb logcat | grep ActivityManager". – Robert

2

Je ne sais pas si je vous ai bien compris, mais il y a un outil appelé hierarchy-viewer pour déboguer l'interface utilisateur

+0

C'est assez proche - en effet, il montre toutes les activités en cours d'exécution. Cependant, il ne semble pas y avoir un moyen de mettre en évidence lequel est actif maintenant, donc si l'application commence 4-5 activités, je ne serai pas en mesure de dire lequel est concentré. J'espérais une version beaucoup plus légère de ceci dans Eclipse ou peut-être l'émulateur lui-même. –

+0

@Artem Russakovskii Comme Robert dit que vous pouvez rechercher dans le logcat pour démarrer l'activité. Vous pouvez appliquer facilement des filtres dans le DDMS sur logcat, donc la chose la plus simple à faire serait d'appliquer un filtre en cherchant "Démarrer l'activité" et de voir ce qu'il y a sur la dernière ligne. – Javi

+0

Je voudrais pouvoir accepter deux réponses, mais l'adb avec la solution grep est un peu plus efficace car c'est plus pratique. Ceci est une seconde fin cependant! –

1

Vous pouvez également ajouter this aux expressions de surveillance.

+0

Solution intéressante mais cela ne fonctionnera que pendant le débogage. –

0

Filtrer le logcat sur ActivityManager est le moyen le plus simple de comprendre cela.

Questions connexes