안드로이드 스튜디오 Service(서비스) 객체 디버깅 하는 방법 |
환경: Android Studio |
기본적으로 서비스는 Breakpoint 를 잡아서 디버깅을 할 수 없습니다. 예전 이클립스에서는 android.os.Debug.waitForDebugger(); 를 소스에 끼워 넣어서 지나치지 못하게 한 다음 디버깅을 했었습니다. 안드로이드 스튜디오에서는 프로그램이 아예 멈춰 버리기 때문에 waitForDebugger() 을 실행하면 안됩니다. 그럼 어떻게 Service를 디버깅 해야 할까요? 그런데 디버깅을 어떻게 해야 되는지를 묻기 전에 왜 안되는지 궁금하지 않으세요? Service 는 앱 실행과 별개로 돌아가는 Process 이기 때문입니다. 안드로이드 스튜디오에서는 에뮬레이터나 안드로이드 디바이스에서 돌아가고 있는 프로세스를 접촉할 수 있도록 “Attach debugger to Android process” 를 제공하고 있습니다. 목록에서 지정한 프로세스는 디버깅이 가능하게 됩니다.
▼ Service 클래스를 상속받아서 만든 소스에 Breakpoint 를 찍었는데 디버깅이 가능하지 않은 것으로 표시가 되네요. 디버깅 가능 표시는 빨간색 원에 체크 표시가 되어 있습니다.
▼ “Attach debugger to Android process” 는 전화기에 디버그 표시가 붙은 아이콘입니다. 클릭하면 프로세스를 선택할 수 있는 Choose Process 팝업창이 뜹니다. 에뮬레이터에 떠 있는 두 개의 프로세스 중에서 아래에 있는 sipStack 이 Service 프로세스 입니다.
▼ Service 프로세스를 선택하면 브레이크 포인트는 디버깅 가능 모드로 바뀌게 됩니다. 그리고 Step 을 진행하게 되면 지정한 브레이크 포인트에 멈추게 됩니다.
'프로그래밍 툴 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 자동 완성 기능으로 추가하기 (0) | 2019.09.04 |
---|---|
안드로이드 스튜디오 개발 유용한 화면이동(네비게이션) 단축키, 함수, 클래스, 파일, 라인 이동 (0) | 2019.09.03 |
안드로이드 스튜디오 Android SDK 에서 제공하는 샘플 프로젝트 만드는 방법 (0) | 2019.09.03 |
안드로이드 스튜디오 이클립스 ADT 프로젝트 옮기는 방법 (0) | 2019.09.02 |
안드로이드 스튜디오 Implement, Override 함수 찾아 추가하는 방법, 단축키 이용 (0) | 2019.09.01 |
안드로이드 스튜디오 개발 문서 API 참고하는 방법 (0) | 2019.08.31 |
안드로이드 스튜디오 갤럭시 S7 연결하기, 디버그 모드 설정하는 방법 (2) | 2019.08.29 |
안드로이드 스튜디오 빌드 과정에서 Could not find property 'compile' on org.gradle.api.internal.artifacts 에러 해결 (0) | 2019.08.28 |