카테고리 없음

Android 로그 뷰어 프로그램 소개(adb locat)

임베디드 친구 2025. 9. 24. 23:22
728x90
반응형

Android 로그 뷰어 프로그램 소개

안드로이드 애플리케이션을 개발하다 보면 단말기의 로그를 실시간으로 확인하고, 필요한 로그만 골라 분석할 수 있는 도구가 꼭 필요합니다. Android 단말기를 연결해 테스트하는 경우, 단순히 adb logcat만으로는 불편함이 많습니다.

이러한 불편함을 해소하기 위해, 제가 직접 Python으로 제작한 Android 로그 뷰어 프로그램을 소개해 드리려고 합니다. 이 프로그램은 단순히 로그를 보여주는 것에 그치지 않고, 다양한 부가 기능을 제공하여 개발자에게 효율적인 디버깅 환경을 제공합니다.


주요 기능

1. 단말기 Scan 기능

프로그램을 실행하면 USB로 연결된 안드로이드 단말기를 자동으로 검색할 수 있습니다.

  • Device Scan 버튼을 클릭하면 현재 연결된 단말기가 리스트로 표시됩니다.
  • 여러 대의 단말기를 동시에 연결한 경우에도 원하는 단말기를 선택해 로그를 확인할 수 있습니다.

이 기능을 통해 매번 터미널에서 adb devices 명령을 직접 입력하지 않아도 되므로, 편리하게 장비를 관리할 수 있습니다.


2. Logcat Start / Stop, Clear

프로그램의 핵심은 바로 logcat 제어 기능입니다.

  • Start / Stop 버튼을 누르면 선택한 단말기의 로그 수집/중단이 됩니다.
  • Clear 버튼을 누르면 지금까지 수집된 로그를 지웁니다.

로그는 프로그램 내의 Log View 창에 실시간으로 출력되며, 개발자는 즉시 로그를 확인하면서 문제를 추적할 수 있습니다.


3. 로그 저장 기능

로그 저장은 두 가지 방식으로 제공됩니다.

  1. 자동 저장 (Auto Save)
    • 체크 박스를 활성화하면, 로그 수집과 동시에 로그가 파일로 저장됩니다.
    • 파일명은 시간 정보를 기반으로 자동 생성되어, 로그 분석 시점과 저장 시점을 일치시킬 수 있습니다.
  2. 수동 저장 (Save All)
    • 현재까지 수신된 로그를 원하는 시점에 저장할 수 있습니다.
    • Auto Save 기능과 별도로 동작하므로, 필요한 구간만 따로 저장할 때 유용합니다.

4. Filter & Ignore 기능

많은 로그가 발생하는 환경에서는 원하는 정보를 빠르게 찾아내는 것이 중요합니다. 이 프로그램은 Filter와 Ignore 기능을 제공합니다.

  • Filter 기능
    • 특정 키워드를 입력하면 해당 문자열을 포함한 로그만 Log View에 표시됩니다.
    • 예: Camera → 카메라 관련 로그만 확인 가능
  • Ignore 기능
    • 특정 키워드를 입력하면 그 문자열을 포함한 로그는 Log View에서 제외됩니다.
    • 예: WifiManager → Wi-Fi 관련 불필요한 로그 제외

또한 Filter 및 Ignore 규칙이 적용된 상태에서, Save 버튼을 클릭하면 현재 규칙이 반영된 로그만 파일로 저장할 수 있습니다. 이는 불필요한 로그를 제외한 분석 파일을 만들 때 매우 유용합니다.


5. Device Screen 기능

이 프로그램의 가장 독특한 기능 중 하나는 단말기 화면을 PC에서 직접 확인하고 제어할 수 있는 Device Screen 기능입니다.

  • 화면 표시
    • Android 단말기의 화면이 PC에 실시간으로 표시됩니다.
  • 터치 이벤트 전송
    • PC 마우스를 이용해 Android 단말기에 Touch Event를 보낼 수 있습니다.
  • 부가 기능 버튼
    • Back 버튼: 단말기의 뒤로 가기 동작 수행
    • Capture 버튼: 현재 단말기 화면을 캡처하여 PC에 파일로 저장

이 기능을 활용하면 실제 단말기를 손에 들고 있지 않아도 PC에서 직접 테스트와 제어가 가능합니다.
Android의 Screen capture 기능을 이용했기 때문에 업데이트 속도가 느립니다. 이 부분은 실시간 Streaming apk를 제작해서 개선할 예정입니다.


6. ADB 명령어 실행 필드

프로그램 하단에는 ADB 명령어를 직접 입력할 수 있는 필드가 마련되어 있습니다.

  • 사용자가 adb shell dumpsys meminfo 와 같은 명령어를 입력하면, 결과가 바로 프로그램 내 출력 창에 표시됩니다.
  • 자주 사용하는 명령어(adb install, adb shell pm list packages, adb reboot 등)도 곧바로 실행 가능하므로, 별도의 터미널 창을 띄울 필요가 없습니다.
  • 실행 결과는 별도의 필드에 정리되어 출력되므로, 로그 수집과 혼동되지 않습니다.

이 기능을 통해 로그 뷰어가 단순한 디버깅 도구를 넘어, 다목적 ADB 관리 툴로 활용될 수 있습니다.


제작 배경

안드로이드 개발을 하다 보면 로그를 수집하고 정리하는 과정에 많은 시간이 소요됩니다. 기존의 adb logcat만으로는

  • 원하는 로그만 걸러내기 어렵고,
  • 로그를 저장하는 과정이 번거로우며,
  • 단말기 화면을 동시에 제어하기 힘든 문제가 있었습니다.

저는 이러한 불편함을 줄이고자 Python 기반으로 직접 로그 뷰어 프로그램을 개발하게 되었습니다. Python은 빠른 개발과 GUI 라이브러리 활용에 강점이 있어, 필요한 기능을 빠르게 구현할 수 있었습니다.


adb_log.z01
20.5 MB
adb_log.z02
20.5 MB
adb_log.z03
20.5 MB
adb_log.zip
18.9 MB

마무리

안드로이드 개발에서 로그는 문제를 파악하고 해결하는 핵심 도구입니다. 이번에 소개해드린 로그 뷰어 프로그램은 제가 직접 Python으로 제작한 도구로, 단순한 로그 수집을 넘어 필터링, 자동 저장, ADB 명령 실행, 화면 제어까지 지원하여 개발자의 생산성을 크게 높여줍니다.

개발 과정에서 로그 분석에 많은 시간을 쓰고 계신다면, 이 프로그램을 활용해 보시기를 권장드립니다.

반응형