안드로이드 스튜디오 디버깅 어떻게 사용하고 계신가요?? 🧑💻🧑💻
혹시 디버깅 모드 🔴 'Break Point'(중단점) 생각하고 계신가요??
(저도 디버깅 모드 사용하면 브레이크 포인트만 사용하고 있었습니다 ^^)
하지만 안드로이드 스튜디오에서 브레이크 포인트 말고도 여러 가지 기능을 제공하고 있습니다.
💁♂️💁♂️
코딩한 앱이 내 상상과 다르게 동작하거나, 원치 않는 오류가 발생한다면
어디서부터 잘못된 건지 이슈가 무엇인지 확인하기 위하여 디버깅이 필요합니다.
안드로이드 스튜디오 디버깅 모드에 대해서 살펴보겠습니다.
debuggable 🐛
build.gradle에서 buildTypes를 프로젝트 생성 후 변경하지 않았다면
debuggable 값을 추가하지 않아도 기본적으로 true 값으로 세팅되는것 같습니다.
하지만 buildTypes를 추가 생성하게 된다면 debuggable 값을 세팅해야 합니다.
build.gradle
android {
buildTypes {
customDebugType {
debuggable true
...
}
}
}
🔴 Break Point 걸기
가장 만만한 브레이크 포인트에 대하여 알아보겠습니다.
위에 사용한 이모티콘에서 알 수 있듯이
작성한 코드 진행 중 잠시 멈추고 싶은 부분에
'🔴' 브레이크 포인트를 사용합니다.
확인하고 싶은 코드 줄에 찍으면 🔴 빨간 동그라미 포인트가
메서드에 찍으면 ♦️ 빨간 다이아 포인트가 생성됩니다.
(하지만 메서드에 ♦️ 브레이크 포인트를 생성하면
속도가 많이 느려진다고 합니다... 🐢🐢)
디버깅 모드 실행하기
브레이크 포인트를 걸고 🐛 벌레 모양 아이콘을 클릭하여
디버깅 모드를 실행합니다.
❗️❗️
하지만 습관이 참 무섭죠!
나도 모르게 습관적으로 일반 실행 모드로 Run 하셨나요?
이미 Run 하셨다면 정지하고 새로 돌릴 필요 없이
위 이미지의 아이콘을 클릭하여 기존 실행되던 일반 모드에서
바로 디버깅 모드로 전환이 가능합니다. 🤷♂️🤷♂️
🐛 디버깅 시작
브레이크 포인트를 모두 설정하셨나요??
이제 디버깅을 시작해봅시다!
디버깅 모드로 실행하면 일반 모드와 동일하게 실행되는 걸 볼 수 있습니다.
디버깅 모드에서 브레이크 포인트를 설정해둔 메서드가 실행되도록 동작해보면
해당 브레이크 포인트에서 앱이 정지됩니다. 🚫
위와 같이 브레이크 포인트에 걸렸다면
해당 포인트에서 파라미터의 값 또는 로컬 변수의 값을 바로 확인할 수 있습니다.
(저는 해당 부분에서 키워드를 입력하여 위치 Api의 데이터 값을 확인하는 부분입니다!)
그리고 디버깅 모드로 진입하면 하단의 디버깅 탭에서 여러 가지 아이콘을 확인할 수 있습니다.
위의 여러 가지 아이콘들 중 자주 사용하는 기능들을 소개하려고 합니다.
Resume Program : 다음 브레이크 포인트를 만날 때까지 다음 로직을 진행합니다.
Step Over : 브레이크 포인트에서 다음 줄 코드로 이동합니다.
Evaluate Expression : 브레이크 포인트의 멈춘 상태에서 변수 접근 또는 함수 실행 등 계산 작업을 할 수 있다.
위의 이미지와 같이 함수 실행 또는 변수에 접근하여 변경도 가능합니다.
Watcher : Watcher에 등록해둔 변수는 지금 멈춰있는 브레이크 포인트의 변수뿐 아니라 등록해둔 변수들의 값을 확인합니다.
View Breakpoints : 내가 설정한 브레이크 포인트들의 정보를 한눈에 보여줍니다.
브레이크 포인트를 너무 많이 설정해두면
내가 브레이크 포인트를 어디 어디 설정했는지 기억이 안 나기도 합니다.
(저는 종종... 자주 기억이 안나 곤 합니다..)
이럴 때 사용하면 한눈에 어느 액티비티에 브레이크 포인트들을 설정했는지 바로 확인이 가능합니다.
Android Studio에서 REST API 데이터 편하게 확인 하기 💁♂️💁♂️
여기까지 저의 긴 글을 읽어주셔서 감사합니다.
제가 습관적으로 코딩을 하는 그날까지 습관적으로 코딩을 하기 위해 글 작성을 꾸준하게 해보겠습니다.
'Android > 스터디 노트' 카테고리의 다른 글
Android 13 Notification Permission 알림 권한 띄우기. (8) | 2022.11.08 |
---|---|
안드로이드 앱 권한 및 거부 처리 Android Permission Check. (0) | 2022.11.05 |
Clean Code - 주석 어떻게 사용하고 있나요? (0) | 2022.08.31 |
[Android] RecyclerView Drag&Drop/Swipe 기능 구현(ItemTouchHelper) 드래그 앤 드롭 (1) | 2022.08.21 |
[Android] RecyclerView 깜빡이는 현상 해결 (notifyDataSetChanged) (0) | 2022.08.17 |
최근댓글