Comecei a desenvolver um aplicativo Android simples enquanto ainda estou aprendendo a plataforma.
Estou usando o Eclipse IDE com o plug-in ADT 0.9.6.
Preciso saber se é possível visualizar a Activity
pilha associada a uma tarefa?
Existe alguma maneira através da ferramenta DDMS ou através de qualquer outra técnica?
Basicamente, o que eu preciso é poder ver a atividade da pilha de uma tarefa para garantir que o aplicativo se comporte conforme o esperado.
Eu sei que é possível controlar o comportamento da tarefa em certa medida através do uso de sinalizadores no Intent
objeto e através de alguns atributos do <activity>
elemento.
No entanto, seria bom ter um tipo de ferramenta - especialmente no modo de depuração - que permitiria aos desenvolvedores ver a Activity
pilha diretamente.
fonte
Respostas:
Na linha de comando, você pode usar:
adb shell dumpsys activity
Isso solicita que o gerente de atividades imprima um despejo de seu estado atual. A primeira parte disso é o histórico de atividades completo, organizado por tarefa. Depois disso, também há muitas coisas impressas, então você pode precisar rolar um pouco para encontrar o que deseja.
Aqui está um exemplo de sua saída (o conteúdo exato varia entre as versões da plataforma), mostrando a tarefa principal sendo contatos com duas atividades e, por trás disso, o iniciador com uma atividade:
fonte
adb shell
<enter>dumpsys activity | grep -i run
.adb shell dmpsys activity
você pode obter para cada lista, por exemplo,adb shell dmpsys activity activities
ACTIVITY MANAGER ACTIVITIES que contém pilha principal, atividades em execução e tarefas recentes.dumpsys activity intents
para intenções pendentes;dumpsys activity broadcasts
para estado de transmissão;dumpsys activity providers
para provedores de conteúdo;dumpsys activity services
para serviços;dumpsys activity processes
para processos em execução.adb shell dumpsys activity | grep -i run
ouadb shell dumpsys activity activities | grep -i run
para uma saída um pouco mais limpa.Você pode usar o seguinte comando em sua linha de comandos para ver as tarefas e as backstacks no sistema:
Ou você pode tentar o TaskLogger , uma ferramenta simples que criei que pode monitorar todas as atividades e tarefas em seu aplicativo e produzi-las no Logcat em tempo real.
fonte
Sei que essa é uma pergunta antiga, mas essa funcionalidade agora está inserida no Android Studio:
Em seguida, no arquivo de texto resultante, procure
ACTIVITY
(todas em maiúsculas):fonte
Se você deseja inspecionar a pilha de tarefas de um pacote específico, o seguinte comando fará:
fonte
Eu sempre verifico esta parte das mensagens longas de despejo ..
Nota: A execução nº 4 é a atividade que você vê agora na tela. :)
fonte
Você pode usar a ferramenta hierarchyviewer.bat. Faz parte do SDK do Android. Só funciona com emulador. Mas é muito mais confortável e mais claro.
Edit: Acabei de encontrar o Hierarchy Viewer no Eclipse! E funciona com dispositivos reais também. Basta abrir a perspectiva Windows-> Abrir perspectiva-> Exibição de hierarquia Na lista, você pode ver todos os dispositivos e emuladores conectados e a pilha de atividades. Além disso, na visualização em árvore, você pode ver muito mais informações sobre a visualização em si.
Editar: o Hierarchy Viewer funcionará apenas com dispositivos de desenvolvedor. Os dispositivos de produção não podem fazê-lo por razões de segurança. Para mais informações, consulte a seguinte resposta
fonte
Para a lista de tarefas recentes
Para a lista de serviços em execução
Para obter a lista dos provedores de conteúdo atuais
Para a lista do estado Broadcast
Para a lista de intenções pendentes
Para a lista de permissões
fonte
AdbCommander
plug-in e adicionar esses comandos namacros
guiaExiste um plugin para isso agora:
https://plugins.jetbrains.com/plugin/12293-activity-stack-view
fonte
Solução: 'adb shell dumpsys activity' não funciona com o TabActivity. Quando cada item da guia é selecionado, a atividade correspondente será iniciada. Mas quando usar 'adb shell dumpsys activity', ele sempre retorna a atividade 'main':
fonte