Nie mogę znaleźć opcji zatrzymania uruchomionego programu (w trybie debugowania lub wydania).
Więc na razie zatrzymuję program (zwracając kontrolę do Eclipse) po prostu zamykając emulator.
Czy jest lepszy sposób na zrobienie tego? Takich, że nie muszę zamykać (i restartować) emulatora?
android
eclipse
android-emulator
Android Eve
źródło
źródło
RemoteException sending setActive(false) notification
w widoku logCatCi, którzy uważają to za żmudne przełączanie się między perspektywami w celu zatrzymania programu (tak jak ja), mogą wyświetlić okna urządzeń w bieżącej perspektywie, wybierając
źródło
Należy pamiętać, że w systemie Android programy zazwyczaj „zatrzymują się” tylko wtedy, gdy zakończysz () lub system niszczy je, gdy wymagana jest pamięć. Po co w ogóle się zatrzymywać? Na przykład nie musisz zatrzymywać się, aby naprawić / ponownie zainstalować / ponownie przetestować.
źródło
W perspektywie „Debuguj” wybierz katalog główny aplikacji w sekcji „Debuguj” (gdzie znajduje się lista aktywnych wątków) i kliknij przycisk zatrzymania.
źródło
Pracuje dla mnie.
Windows -> Otwórz perspektywę -> Inne ... -> DDMS
Aby wrócić do normalnego widoku, wystarczy nacisnąć przycisk Java w prawym górnym rogu. Możesz to również zrobić naciskając: Windows -> Otwórz perspektywę -> Inne ... -> Java
źródło
ta odpowiedź nie dotyczy Eclipse, ale ponieważ to pytanie pojawia się w wyszukiwarce Google w celu zatrzymania uruchomionego programu na Androida, chciałbym zaoferować metodę wiersza poleceń. uruchom
adb shell
, znajdź PID procesu, którym chcesz zabićps
, na przykład mój był:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
więc po prostu
kill 2097
i powinieneś zobaczyć ponownie główny ekran.źródło
Dodaj punkt przerwania do kodu, w którym chcesz zatrzymać, a następnie uruchom go w trybie debugowania, naciskając klawisz F11.
źródło
Rysunek 1 - Wiele zombie zostało zabitych podczas badania tej odpowiedzi
Zabijanie procesu Java VM aplikacji na Androida na poziomie systemu operacyjnego nie jest zalecane. Niestety, dokładnie to robi okno urządzenia zaćmienia „stop”, podobnie jak System.exit () i polecenie powłoki „kill”.
To podważa normalne metody cyklu życia aplikacji, takie jak onStop (), onDestroy () i finalize ().
Wiele aplikacji wymaga tych metod do łagodnego wyjścia (na przykład, jeśli używają obiektów systemowych, takich jak Sensor, MediaPlayer, Equalizer, Visualizer itp.).
Te obiekty systemowe kręcą się wokół zasobów systemowych z uchwytami śmierci zombie, jeśli release () nie jest wywoływany jawnie podczas tych metod cyklu życia. Patrz rys. 1 powyżej. Może to uniemożliwić ponowne uruchomienie aplikacji, a nawet wymagać ponownego uruchomienia. To jest niewdzięczny aspekt.
Jedynym rozwiązaniem jest upewnienie się, że zawsze czysto zamykasz aplikację za pomocą wywołania onStop () lub onDestroy () lub przynajmniej finalize (). Debugger robi to, podobnie jak system operacyjny podczas zamykania.
Możesz ustawić aplikację, aby przechwytywała zdarzenia SIG_HUP, aby wymusić bezpieczne wyjście z wiersza poleceń.
Jedyny przypadek, w którym można zabić maszynę wirtualną aplikacji, znajduje się w stanie ANR (już jest zombie). Błędy ANR muszą zostać naprawione. Nigdy nie wdrażaj aplikacji, która może wejść w ten stan. To jest wyjątkowo niegrzeczne.
Możesz użyć Google Analytics i Sklepu Play, aby monitorować ich wdrażanie. Nie chcesz, aby źli użytkownicy wystawiali recenzje ANR z jedną gwiazdką po ponownym uruchomieniu z powodu aplikacji zombie. Bardzo źle.
Pamiętaj, że Android to Linux: traktuj go jak prawdziwy system operacyjny i szanuj cykl życia aplikacji, w przeciwnym razie z pewnością zmierzysz się z przerażającą apokalipsą zombie.
PS: Jeśli nie lubisz analogii z zombie, to co powiesz na Fantazję?
źródło
Zobacz zdjęcie: 1. Kliknij DDMS; 2. Wybierz bieżącą aplikację; 3. Kliknij „Stop”
źródło