Начать отладку приложения Android сразу после перезагрузки

#android #intellij-idea #adb

#Android #intellij-idea #adb

Вопрос:

Привет!

Прямо сейчас я работаю с приложением, которое использует BOOT_COMPLETED receiver.

Поэтому, если я хочу отладить это приложение с некоторыми точками останова в его классе, я должен перезагрузить свой телефон и подключиться к нему в нужное время, но я всегда опаздываю.

Есть ли у вас какие-либо лучшие решения, как отладить мое приложение точно, когда оно начнет свою жизнь с перезагрузкой устройства?

Спасибо!

Ответ №1:

Вы можете дождаться отладчика — Debug.waitForDebugger()

Комментарии:

1. Как это использовать? не могли бы вы объяснить немного подробнее?

2. Вы можете поместить Debug.waitForDebugger() в любом месте вашего кода, и точка останова в следующей строке -> строка waitForDebugger заблокирует поток до тех пор, пока не будет подключен отладчик (через Android studio или как вы обычно это делаете). После подключения поток будет продолжен и достигнет точки останова

Ответ №2:

Закройте emulator и запустите приложение непосредственно в Debug и выберите опцию для запуска эмулятора, на котором вы хотите его запустить.

Комментарии:

1. О боже.. Я делаю это постоянно;-) Однако проблема возникает при перезагрузке моего телефона. Отладка отключена, и я слишком медленно подключаю ее вручную до появления первой точки останова.

Ответ №3:

Это странно, но что, если вы поставите паузу или цикл на 20 секунд перед первой точкой останова?

Комментарии:

1. Это интересное решение, однако я не ищу такого рода решения.

Ответ №4:

В этом случае ведение журнала является лучшим решением, чем debuggung. Я смог увидеть журналы, возникающие в результате обработки BOOT_COMPLETE, даже в окне IDEA logcat. (Я также не очень ценю пошаговую отладку и в любом случае предпочитаю подход TDD)

Комментарии:

1. Конечно, ведение журнала — это путь, которым я должен идти прямо сейчас, но отладка будет намного лучше — мы можем сделать больше с его помощью.

2. не всегда. вы можете решить проблемы с получением полной трансляции при загрузке с протоколированием и другие проблемы позже (лично я предпочитаю mocking, который можно рассматривать как сеанс отладки по сценарию — я также пишу тесты перед фактическим кодом)