Android 디바이스의 로그 및 시스템 상태를 확인하는 것은 개발 및 디버깅 과정에서 매우 중요한 작업입니다. Android Debug Bridge(ADB)를 활용하면 실시간 로그를 모니터링하고, 특정 태그의 로그만 필터링하며, 버그 리포트를 생성하고, 시스템 서비스의 상태를 확인할 수 있습니다. 본 포스팅에서는 이러한 주요 ADB 명령어를 소개하고 실용적인 활용 방법을 설명하겠습니다.
1. adb logcat : 실시간 로그 확인
adb logcat
명령어는 Android 시스템의 로그를 실시간으로 출력하는 도구입니다. 애플리케이션 개발자는 이를 활용하여 앱의 동작을 추적하고, 오류 메시지를 분석할 수 있습니다.
1.1 기본 사용법
adb logcat
위 명령어를 실행하면 디바이스에서 발생하는 모든 로그가 실시간으로 출력됩니다.
1.2 로그 형식
로그는 다음과 같은 형식으로 출력됩니다.
MM-DD HH:MM:SS.mmm PID-TID/package_name Priority/Tag: Message
예제:
02-12 14:25:36.123 1234-5678/com.example.app I/MainActivity: Application started.
각 항목의 의미는 다음과 같습니다.
MM-DD HH:MM:SS.mmm
: 로그 발생 시간PID-TID
: 프로세스 ID와 스레드 IDpackage_name
: 로그를 발생시킨 애플리케이션의 패키지명Priority
: 로그의 우선순위(Level)Tag
: 로그 태그Message
: 실제 로그 메시지
1.3 로그 우선순위 필터링
로그는 우선순위(Severity Level)에 따라 구분됩니다.
우선순위 | 설명 |
---|---|
V |
Verbose (자세한 디버깅 정보) |
D |
Debug (디버깅용 메시지) |
I |
Info (일반적인 정보) |
W |
Warning (경고 메시지) |
E |
Error (에러 메시지) |
F |
Fatal (치명적인 오류) |
S |
Silent (로그 출력 중지) |
특정 우선순위 이상의 로그만 확인하려면 다음과 같이 실행합니다.
adb logcat *:E
위 명령어는 Error
(E) 이상 심각한 로그만 출력합니다.
2. adb logcat -s TAG : 특정 태그 로그 필터링
특정 태그의 로그만 확인하고 싶다면 -s
옵션을 사용할 수 있습니다.
adb logcat -s MyTag
이렇게 실행하면 MyTag
가 포함된 로그만 출력됩니다.
예를 들어, 특정 클래스에서 다음과 같이 로그를 작성했다고 가정해 보겠습니다.
Log.d("MyTag", "디버깅 메시지");
Log.e("MyTag", "에러 발생!");
adb logcat -s MyTag
명령어를 실행하면 다음과 같은 로그가 출력됩니다.
D/MyTag: 디버깅 메시지
E/MyTag: 에러 발생!
또한, 여러 개의 태그를 동시에 필터링하려면 공백으로 구분하여 사용할 수 있습니다.
adb logcat -s MyTag AnotherTag
3. adb bugreport : 버그 리포트 생성
adb bugreport
명령어는 디바이스의 전체 상태를 포함한 상세한 버그 리포트를 생성합니다. 개발자는 이 리포트를 통해 앱이나 시스템의 버그를 분석할 수 있습니다.
3.1 기본 사용법
adb bugreport bugreport.zip
위 명령어를 실행하면 bugreport.zip
파일이 생성되며, 해당 파일에는 시스템 로그, ANR(Application Not Responding) 정보, 크래시 로그 등이 포함됩니다.
3.2 버그 리포트 상세 확인
생성된 bugreport.zip
파일을 압축 해제하면 bugreport.txt
파일을 확인할 수 있습니다. 이를 통해 시스템의 상태를 확인하고 문제를 분석할 수 있습니다.
4. adb shell dumpsys : 시스템 서비스 상태 확인
adb shell dumpsys
명령어는 Android 시스템의 다양한 서비스 상태를 확인하는 데 사용됩니다.
4.1 기본 사용법
adb shell dumpsys
위 명령어를 실행하면 시스템의 모든 서비스 상태가 출력됩니다. 하지만 데이터가 너무 많기 때문에 특정 서비스를 지정하는 것이 일반적입니다.
4.2 특정 서비스 상태 확인
다음과 같이 특정 서비스의 상태를 확인할 수 있습니다.
4.2.1 배터리 상태 확인
adb shell dumpsys battery
출력 예제:
Current Battery Service state:
AC powered: false
USB powered: true
Battery level: 85
Battery temperature: 310
4.2.2 메모리 사용량 확인
adb shell dumpsys meminfo
이 명령어는 디바이스의 메모리 사용량을 출력하며, 특정 앱에 대한 메모리 정보를 확인할 수도 있습니다.
adb shell dumpsys meminfo com.example.app
4.2.3 네트워크 상태 확인
adb shell dumpsys connectivity
이 명령어를 실행하면 네트워크 연결 상태 및 Wi-Fi 정보 등을 확인할 수 있습니다.
4.2.4 패키지 정보 확인
adb shell dumpsys package com.example.app
앱의 설치 정보, 권한, 버전 정보 등을 확인할 수 있습니다.
결론
본 포스팅에서는 ADB를 활용하여 로그를 실시간으로 확인하고, 특정 태그의 로그를 필터링하는 방법, 버그 리포트를 생성하는 방법, 그리고 시스템 서비스 상태를 확인하는 방법을 설명하였습니다. ADB는 강력한 디버깅 도구이며, 이를 적절히 활용하면 Android 앱 개발 및 시스템 분석이 훨씬 용이해집니다.
'Android > ADB' 카테고리의 다른 글
ADB를 활용한 파일 관리 (0) | 2025.02.14 |
---|---|
ADB 기본 명령어 정리 (0) | 2025.02.13 |
ADB 설치 및 환경 설정 (0) | 2025.02.13 |
ADB 개요 및 개념 (0) | 2025.02.12 |