본문으로 바로가기

가. Android Debug Bridge(adb) 정의

- adb(안드로이드 디버그 브릿지)는 기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구이다.
- 디바이스에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix Shell에 대한 액세스를 제공한다.
- 명령어를 실행하여 디바이스 터미널에 접속할 수 있으며 파일을 주고받을 수 있다.

 

나. adb 설치 방법

- 안드로이드 스튜디오를 설치한 사람은 adb가 설치되어 있으므로 아래의 과정을 수행할 필요는 없다.

- 아래의 링크에 접속한뒤 "Windows용 SDK 플랫폼 도구 다운로드"를 클릭한다.

https://developer.android.com/studio/releases/platform-tools?hl=ko

 

SDK 플랫폼 도구 출시 노트  |  Android 개발자  |  Android Developers

Android SDK 플랫폼 도구는 Android SDK의 구성요소입니다.

developer.android.com

 

- 다운로드된 "platform-tools_r34.0.5-windows.zip" 파일을 압축해제하면 adb.exe 파일이 존재한다.

 

다. adb 명령어

1. 디바이스 리스트 출력

- devices 명령어를 사용하면 adb에 연결된 디바이스 목록이 출력된다. 

#명령어 예시
adb devices -l

1.1. 일련번호 : adb는 포트 번호로 기기를 고유하게 식별하는 문자열을 출력한다.

- 연결된 기기가 여러 개 있을때 일련번호를 이용하여 특정기기로 명령어를 전송할 수 있다.

 

1.2. 상태 : 기기의 연결 상태는 세가지로 나뉘며, 각 상태에 대한 내용은 아래와 같다.
- offline : 기기가 adb에 연결되지 않았거나 응답하지 않는 상태이다.
- device : 기기가 adb 서버에 연결된 상태이다.
- no device : 연결된 기기가 없는 상태이다.

 

1.3. 설명: -l 옵션을 사용하면 adb에 연결된 기기가 무엇인지 알려준다. 연결된 기기가 여러 개 있어서 구분할 때 유용하다.

 

+ 녹스(NOX) 에뮬레이터 연결 방법

※ 녹스 에뮬레이터의 경우 'adb connect 127.0.0.1:62001' 명령어를 사용하여야 연결이 가능하다.

#명령어 예시
adb connect 127.0.0.1:62001

 

+ 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다. (10061) 오류 해결 방법

위와 같은 오류가 발생할 경우 지정한 서비스 포트가 이미 PC에서 사용중이서 발생하는 문제이다.

 

tasklist 명령어를 사용하여 NoxVMHandle.exe 프로세스의 PID를 알아낸다.

tasklist | findstr /i "noxvmhandle"

 

netstat 명령어를 사용하여 해당 PID와 관련된 서비스 포트 중에서 "LISTENING" 상태를 찾는다.

netstat -ano | findstr [PID]

"LISTENING" 상태의 포트 번호로 adb를 연결한다.

//명령어 예시
adb connect 127.0.0.1:64001

 

2. 디바이스 연결 및 명령어 전송

- shell 명령어를 사용하여 adb를 통해 기기 명령어를 실행하거나 양방향 shell을 시작할 수 있다.

- 대화형 shell을 종료하려면 'Control+D'를 누르거나 'exit'를 입력한다.

#명령어 형식 : adb [-d | -e | -s serial_number] shell
#명령어 예시
adb shell

 

+ adb.exe: more than one device/emulator 오류 해결 방법

- s 옵션을 사용하여 특정 디바이스를 선택하여 연결할 수 있다.

//adb -s [device_name] shell
adb -s 127.0.0.1:62025 shell

 

- 양방향이 아닌 단일 명령어를 실행하려면 shell 명령어를 다음과 같이 사용한다.

#명령어 형식 : adb [-d |-e | -s serial_number] shell shell_command
#명령어 예시
adb shell ls -al

 

3. 디바이스 파일 송신(전송)

- pull 명령어를 이용하여 모바일 디바이스에서 PC로 파일을 복사할 수 있다.

#명령어 형식 : adb pull remote local
#명령어 예시
adb pull /data/data/jakhar.aseem.diva/uinfo1566991760tmp

 

4. 디바이스 파일 수신(다운로드)

- push 명령어를 이용하여 PC에서 모바일 디바이스로 파일을 복사할 수 있다.

#명령어 형식 : adb push local remote
#명령어 예시
adb push hagsig_test_file.txt /sdcard/hagsig.txt

 

라. 참고 URL

- adb 모든 명령어 정리 문서

https://developer.android.com/studio/command-line/adb?hl=ko

 

Android 디버그 브리지(adb)  |  Android 개발자  |  Android Developers

기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구인 Android 디버그 브리지에 대해 알아보세요.

developer.android.com