Właśnie zacząłem tworzyć prostą aplikację na Androida, wciąż ucząc się platformy.
Używam Eclipse IDE z wtyczką ADT 0.9.6.
Muszę wiedzieć, czy można wyświetlić Activity
stos skojarzony z zadaniem?
Czy jest jakiś sposób przez narzędzie DDMS lub jakąkolwiek inną technikę?
Zasadniczo potrzebuję zobaczyć aktywność stosu zadania, aby upewnić się, że aplikacja zachowuje się zgodnie z oczekiwaniami.
Wiem, że można w pewnym stopniu kontrolować zachowanie zadania poprzez użycie flag w Intent
obiekcie i poprzez niektóre atrybuty <activity>
elementu.
Jednak byłoby miło mieć coś w rodzaju narzędzia - szczególnie w trybie debugowania - które pozwoliłoby programistom zobaczyć Activity
stos bezpośrednio do przodu.
Odpowiedzi:
Z wiersza poleceń możesz użyć:
adb shell dumpsys activity
To prosi menedżera aktywności o wydrukowanie zrzutu jego aktualnego stanu. Pierwsza część to pełna historia działań, uporządkowana według zadań. Następnie jest drukowanych wiele rzeczy, więc może być konieczne przewinięcie w górę, aby znaleźć to, czego chcesz.
Oto przykład jego danych wyjściowych (dokładna zawartość różni się w różnych wersjach platformy), pokazując, że głównym zadaniem są kontakty z dwoma działaniami, a za nim program uruchamiający z jednym działaniem:
źródło
adb shell
<enter>dumpsys activity | grep -i run
.adb shell dmpsys activity
możesz uzyskać dla każdej listy, na przykład,adb shell dmpsys activity activities
AKTYWNOŚCI MENEDŻERA AKTYWNOŚCI, która zawiera stos główny, Uruchomione działania i Ostatnie zadania.dumpsys activity intents
dla oczekujących zamiarów;dumpsys activity broadcasts
dla stanu nadawania;dumpsys activity providers
dla dostawców treści;dumpsys activity services
za usługi;dumpsys activity processes
do uruchomionych procesów.adb shell dumpsys activity | grep -i run
lubadb shell dumpsys activity activities | grep -i run
dla nieco czystszego wyniku.Możesz użyć następującego polecenia w wierszu poleceń, aby wyświetlić zadania i stosy w systemie:
Możesz też wypróbować TaskLogger , proste narzędzie, które stworzyłem, które może monitorować wszystkie działania i zadania w Twojej aplikacji i wyświetlać je w Logcat w czasie rzeczywistym.
źródło
Wiem, że to stare pytanie, ale ta funkcja jest teraz wprowadzona do Android Studio:
Następnie w wynikowym pliku tekstowym wyszukaj
ACTIVITY
(wszystkie litery):źródło
Jeśli chcesz sprawdzić stos zadań określonego pakietu, zrobi to następujące polecenie:
źródło
Zawsze sprawdzam tę część długich wiadomości zrzutu.
Uwaga: Bieg # 4 to aktywność, którą widzisz teraz na ekranie. :)
źródło
Możesz użyć narzędzia hierarchyviewer.bat. Jest częścią Android SDK. Działa jednak tylko z emulatorem. Ale jest znacznie wygodniejszy i wyraźniejszy.
Edycja: właśnie znalazłem przeglądarkę hierarchii w Eclipse! Działa również z prawdziwymi urządzeniami. Wystarczy otworzyć perspektywę Windows-> Otwórz perspektywę-> Widok hierarchii Na liście możesz zobaczyć wszystkie podłączone urządzenia i emulatory oraz stos aktywności. Ponadto w widoku drzewa można zobaczyć znacznie więcej informacji o samym widoku.
Edycja: Przeglądarka hierarchii będzie działać tylko na urządzeniach programistów. Urządzenia produkcyjne nie mogą tego zrobić ze względów bezpieczeństwa. Aby uzyskać więcej informacji, zapoznaj się z następującą odpowiedzią
źródło
Aby uzyskać listę ostatnich zadań
Aby wyświetlić listę uruchomionych usług
Aby zapoznać się z listą obecnych dostawców treści
Aby wyświetlić listę stanu Broadcast
Lista oczekujących intencji
Aby uzyskać listę uprawnień
źródło
AdbCommander
wtyczki i dodać te polecenia wmacros
zakładceJest do tego wtyczka:
https://plugins.jetbrains.com/plugin/12293-activity-stack-view
źródło
Rozwiązanie: 'adb shell dumpsys activity' nie działa z TabActivity. Po wybraniu każdej pozycji na karcie zostanie uruchomiona odpowiednia czynność. Ale kiedy używasz `` adb shell dumpsys activity '', zawsze zwraca `` główną '' aktywność:
źródło