Je viens de commencer à développer une application Android simple pendant que j'apprends encore la plate-forme.
J'utilise Eclipse IDE avec le plugin ADT 0.9.6.
J'ai besoin de savoir s'il est possible d'afficher la Activity
pile associée à une tâche?
Existe-t-il un moyen d'utiliser l'outil DDMS ou toute autre technique?
Ce dont j'ai essentiellement besoin, c'est de pouvoir voir l'activité de la pile d'une tâche pour m'assurer que l'application se comporte comme prévu.
Je sais qu'il est possible de contrôler le comportement de la tâche dans une certaine mesure grâce à l'utilisation d'indicateurs dans l' Intent
objet et à travers certains attributs de l' <activity>
élément.
Cependant, il serait bien d'avoir une sorte d'outil - en particulier en mode débogage - qui permettrait aux développeurs de voir la Activity
pile directement.
la source
Réponses:
Depuis la ligne de commande, vous pouvez utiliser:
adb shell dumpsys activity
Cela demande au gestionnaire d'activités d'imprimer un vidage de son état actuel. La première partie est l'historique complet des activités, organisé par tâche. Il y a aussi beaucoup de choses imprimées après cela, vous devrez donc peut-être faire défiler un peu pour trouver ce que vous voulez.
Voici un exemple de sa sortie (le contenu exact varie selon les versions de la plate-forme), montrant la tâche principale étant les contacts avec deux activités, et derrière cela le lanceur avec une activité:
la source
adb shell
<enter>dumpsys activity | grep -i run
.adb shell dmpsys activity
vous pouvez obtenir pour chaque liste par exempleadb shell dmpsys activity activities
pour ACTIVITY MANAGER ACTIVITIES qui contient la pile principale, les activités en cours et les tâches récentes.dumpsys activity intents
pour les intentions en attente;dumpsys activity broadcasts
pour l'état de diffusion;dumpsys activity providers
pour les fournisseurs de contenu;dumpsys activity services
pour les services;dumpsys activity processes
pour exécuter des processus.adb shell dumpsys activity | grep -i run
ouadb shell dumpsys activity activities | grep -i run
pour une sortie légèrement plus claire.Vous pouvez utiliser la commande suivante dans votre ligne de commande pour voir les tâches et les backstacks dans le système:
Ou vous pouvez essayer TaskLogger , un outil simple que j'ai créé qui peut surveiller toutes les activités et tâches de votre application et les afficher dans Logcat en temps réel.
la source
Je sais que c'est une vieille question, mais cette fonctionnalité est maintenant intégrée à Android Studio:
Ensuite, dans le fichier texte résultant, recherchez
ACTIVITY
(en majuscules):la source
Si vous souhaitez inspecter la pile de tâches d'un package spécifique, la commande suivante fera l'affaire:
la source
Je vérifie toujours cette partie des longs messages de vidage.
Remarque: la course n ° 4 est l'activité que vous voyez maintenant à l'écran. :)
la source
Vous pouvez utiliser l'outil hierarchyviewer.bat. Il fait partie du SDK Android. Cela ne fonctionne qu'avec l'émulateur. Mais c'est beaucoup plus confortable et plus clair.
Edit: Je viens de trouver le visualiseur de hiérarchie dans Eclipse! Et cela fonctionne également avec de vrais appareils. Ouvrez simplement la perspective Windows-> Ouvrir la perspective-> Vue hiérarchique Dans la liste, vous pouvez voir tous les périphériques et émulateurs connectés ainsi que la pile d'activités. Et en plus, dans l'arborescence, vous pouvez voir beaucoup plus d'informations sur la vue elle-même.
Modifier: la visionneuse de hiérarchie fonctionnera uniquement avec les appareils de développement. Les appareils de production ne peuvent pas le faire pour des raisons de sécurité. Pour plus d'informations, veuillez consulter la réponse suivante
la source
Pour la liste des tâches récentes
Pour la liste des services en cours d'exécution
Pour la liste des fournisseurs de contenu actuels
Pour la liste des états de diffusion
Pour la liste des intentions en attente
Pour la liste des permissions
la source
AdbCommander
plugin et ajouter ces commandes dansmacros
tabIl existe maintenant un plugin pour cela:
https://plugins.jetbrains.com/plugin/12293-activity-stack-view
la source
Solution: «l'activité adb shell dumpsys» ne fonctionne pas avec TabActivity. Lorsque chaque élément de l'onglet est sélectionné, l'activité correspondante sera lancée. Mais lorsque vous utilisez 'adb shell dumpsys activity', il renvoie toujours l'activité 'main':
la source