#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, который можно рассматривать как сеанс отладки по сценарию — я также пишу тесты перед фактическим кодом)