Android/ADB

ADB를 활용한 로그 및 디버깅

임베디드 친구 2025. 2. 15. 11:36
728x90
반응형

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와 스레드 ID
  • package_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