ADB(Android Debug Bridge) 기능 및 명령어
- IT/Info
- 2022. 8. 13.
ADB 알아보기
■ ADB란?
ADB(android debug bridge)는 안드로이드 에뮬레이터나 PC에 실제 연결된 장치를 제어하기 위한 안드로이드 디버깅 도구이며, 기기와 통신할 수 있는 커맨드라인을 제공하며, 세 가지 구성요소(클라이언트, 데몬, 서버)를 포함. ADB는 안드로이드 SDK 플랫폼 도구 패키지에 포함되어 있으므로, SDK 설치만으로 간편하게 사용 가능. 경로는 안드로이드 하위 폴더인 Android\sdk\platform-tools에 위치함.
특히, 자주 사용하게 될 기능으로 ADB는 쉘 기능을 제공하여 연결된 안드로이드 에뮬레이터나 장치에서 원격 쉘을 사용할 수 있도록 하는 기능을 제공. "adb shell"이라는 명령을 사용.
만약 ADB 서버가 구동되어 있지 않다면, 위와 같은 메시지를 출력하나, 이후 자동으로 서버 프로세스를 구동시킴.
■ ADB 사용법
에뮬레이터 실행 후, 정상적으로 장치가 연결되어 있다면, 연결되어 있는 포트(5554)를 출력함.
※우선적으로 5555~5585 범위에서 홀수 포트를 스캔하며, adb 데몬을 찾으면 포트와의 연결을 설정함.
device의 shell로 붙음(명령어 입력 : adb -e shell)
※adb shell 명령어("-d" 는 USB 장치 연결, "-e" 는 에뮬레이터 연결)
※ 기본 adb 명령어
adb devices - 현재 연결된 디바이스들 표시
adb install [apk path] - apk 설치
adb uninstall [apk path] - apk 삭제
adb shell - device에 shell로 붙음
adb pull [device path] [PC Path] - device 내의 파일 꺼내오기
adb push [File Path] [device path] - device 내로 파일 넣기
adb jdwp - 프로세스 정보 확인
adb forward [port number] [port number] - 포워딩 기능(로컬 포트를 안드로이드 장치의 특정 포트와 소켓 통신이 가능하도록)
adb get-serialno - 연결된 장치의 시리얼 번호를 문자열로 출력
adb get-state - 연결된 장치의 상태를 문자열로 출력
adb start-server - adb 서버 구동
adb kill-server - adb 서버 종료
※경로를 입력할때에는 절대 경로로 작성하는 것이 바람직함
ADB 디버그 기능 활용하기
■ 로그캣(logcat)
안드로이드 로깅 시스템은 시스템 디버그 출력 정보를 확인하거나 수집할 수 있는 메커니즘을 제공하며, 수집하는 정보들은 어플리케이션과 시스템에서 수집함. 이에 사용자는 로그캣을 이용하여 로그 메시지를 확인하고 출력할 수 있음.
명령어 : "adb logcat" 입력 시, 위와 같이 안드로이드의 로그 메시지가 실시간으로 화면에 출력됨
※모든 안드로이드 로그 메시지에는 태그 및 태그와 관련된 우선 순위가 존재하며, 시스템 로그 메시지의 태그는 메시지가 발생한 시스템 구성요소를 가리키는 짧은 문자열임.
- 로그의 우선순위
V : 상세
D : 디버그
I : 정보
W : 경고
E : 오류
A : 강제 종료
Ex) D/dalvikvm( 1492): Debugger has detached; object registry had 1 entries
- 위의 로그 메시지의 우선순위는 D이며, 태그는 dalvikvm
■ bugreport
bugreport는 연결된 안드로이드 장치에 대한 정보(장치 상태 정보, 메모리 사용정보, 시스템 로그정보 등)를 한 번에 출력하여, 로그를 파일에 저장하고 PC로 다운로드 할 수 있음.
Ex) 명령어 : adb bugreport [파일명].zip, adb bugreport