2012-04-05 12 views
7

W mojej aplikacji działanie uruchamia usługę, która działa jako oddzielny proces, chcę debugować działanie, a także usługę, ale debugger nie zatrzymuje się w punktach przerwania w działaniu?Jak debugować dwa procesy w systemie Android?

Dzięki za pomoc.

+0

Powinno :-). Nie ma powodu, dla którego punkty przerwania usługi nie zostaną trafione. Czy jesteś w stanie skutecznie zatrzymać się w punkcie przerwania w działaniu, którego używasz do uruchomienia usługi? – tomtheguvnor

+0

@tomtheguvnor W Activity, Yes. –

+3

Tymczasowo spraw, aby nie był oddzielnym procesem. Jeszcze lepiej, na stałe spraw, aby nie był oddzielnym procesem, ponieważ jest to na ogół niepotrzebne i marnuje pamięć RAM i procesor. – CommonsWare

Odpowiedz

5

Tymczasowo spraw, aby nie był oddzielnym procesem.

@CommonsWare

4

Musisz włączyć debugowanie na oddzielnym procesie.

Otwórz perspektywę DDMS (w opozycji do debugowania lub Java). W DDMS-> Urządzenia wybierz proces swojej usługi, a następnie kliknij przycisk debugowania (mały zielony przycisk błędu). Ikona debugowania pojawi się w pobliżu twojego procesu, wtedy powinieneś być w stanie używać punktów przerwania w swojej usłudze.

Należy pamiętać, że przed włączeniem debugowania należy poczekać na rozpoczęcie procesu zdalnego. Więc możesz chcieć zapewnić oddzielne uruchamianie procesu podczas uruchamiania lub ustawić punkt przerwania w głównym procesie bezpośrednio po linii, która uruchamia usługę zdalną.

przed włączeniem debugowania:

enter image description here

Po włączeniu debugowania:

enter image description here

(oczywiście chwilowo podejmowania serwisowych prace nie zbyt odległe, ale miałem wystąpienie gdzie to nie było praktyczne)

+0

+1, Doceń odpowiedź. Nie używam już dwóch procesów, dlatego pozwolę społeczności zweryfikować odpowiedź, zanim ją zaakceptuję. –

+0

Te same instrukcje, ale w przypadku IntelliJ http://stackoverflow.com/a/10703431/9636 –

5

Wystarczy opracować inne odpowiedzi tutaj możesz tymczasowo umieścić kod android.os.Debug.waitForDebugger(); w kodzie procesu drugorzędnego, aby było to łatwiejsze.

Następnie wystarczy podłączyć debugger do procesu za pomocą DDMS lub IntelliJ (lub cokolwiek innego używasz).

+0

Oficjalna, brzmiąca rada od pracownika Google w celu utworzenia kopii zapasowej: https://groups.google.com/d/msg/ android-developers/DftP5gYcwYI/j_mccTSCHNQJ –

Powiązane problemy