2011-01-25 9 views
5

Potrzebuję sposobu, aby sprawdzić, czy moja aplikacja na Androida jest obecnie debugowana (jest to warunek, który sprawdzamy przy starcie, co konkretnie robię - nie chcę sprawdzać, kiedy działa debugger). Czy taka bestia istnieje?Jak sprawdzić, czy jestem w debugerze pod androidem?

+0

Znaleziono - android.os.Debug ma metody, których mogę użyć do tego. –

Odpowiedz

19

Musisz spojrzeć na isDebuggerConnected.

Uważa się jednak za bardzo niekorzystną praktykę uzależnienie zachowania aplikacji od tego, czy debugger jest podłączony czy nie. Może to prowadzić do trudnych do złapania błędów. Więc uważaj.

+0

To było specjalnie po to, aby wykonać pewne porządki w przypadku bardzo poważnego ginięcia aplikacji (np. Zabić -9 w adb) - ponieważ aplikacja bardzo źle umiera po uruchomieniu debuggera (zabija starą wersję aplikacji i uruchamia nową do debugowania) Chciałem zablokować wysyłanie powiadomienia o złym wyjściu, ponieważ pomyślałem, że to tylko drażni deweloperów próbujących debugować. –

+0

Niewielkie zachowanie aplikacji może być inne w przypadku debuggera, w moim przypadku prośba o "dość sformatowane" zasoby xml z wywołań http podczas debugowania i skondensowanie w inny sposób. –

1

Mogę używać metod android.os.Debug do łączenia się z systemem DebuggerConnected i waitingForDebugger w celu wychwycenia tego stanu.

+0

-1 ponieważ jest duplikatem odpowiedzi inazaruk – rds

+0

+1 Posiada również pomocną podpowiedź, że istnieje metoda 'waitingForDebugger' dla kiedy twój kod jest uruchamiany przed podłączeniem debuggera. Wszystko to jest bardzo przydatne podczas debugowania przypadków testowych w sytuacji równoczesnego wątku w celu zdefiniowania limitów czasu. – zsawyer

Powiązane problemy