2 분 소요

ADB(Android Debug Bridge) 란?

adb는 Android 기기와 PC가 명령줄 기반으로 통신할 수 있게 해주는 기본 도구다. Android 개발과 디버깅을 하다 보면 거의 항상 만나게 된다.

adb를 통해 아래 같은 작업을 할 수 있다.

  • 연결된 기기 확인
  • 쉘 접속
  • APK 설치 / 삭제
  • 파일 push / pull
  • 로그 확인과 디버깅 보조
  • USB 연결에서 무선 연결로 전환

Android Studio를 쓰더라도 결국 내부적으로 adb에 의존하는 경우가 많기 때문에, 몇 가지 기본 명령은 알고 있으면 좋다.

adb가 특히 유용한 상황

  • Android Studio 없이 APK만 빠르게 설치하고 싶을 때
  • 테스트 기기에서 파일을 추출하고 싶을 때
  • 앱 sandbox나 로그를 빠르게 확인하고 싶을 때
  • 여러 기기 중 특정 기기만 지정해서 작업하고 싶을 때
  • USB 없이 Wi-Fi 디버깅으로 전환하고 싶을 때

ADB 설치

1. platform-tools 다운로드

Google의 Android SDK Platform Tools를 내려받는다.

2. 적당한 위치에 압축 해제

예를 들어 macOS에서는 보통 아래 비슷한 위치를 많이 쓴다.

/Users/${USER}/Library/Android/sdk/platform-tools

Android Studio를 이미 설치했다면 SDK 내부에 platform-tools 폴더가 들어 있는 경우가 많다.

3. PATH 설정

터미널 어디서든 adb를 실행하려면 PATH에 추가해둔다.

예: macOS .zshrc

Image Alt paths

설정 후 새 터미널에서 아래를 실행해 확인한다.

adb version

가장 먼저 확인할 명령

adb devices

연결된 기기 목록을 보여준다.

adb devices

Image Alt adb_devices

정상적으로 붙으면 serial 번호와 함께 device 상태가 보인다.

자주 보는 상태

  • device → 정상 연결
  • unauthorized → 기기에서 RSA 허용 필요
  • 아무것도 안 뜸 → USB 디버깅, 케이블, 드라이버, 권한 확인 필요

자주 쓰는 adb 명령어

1. adb shell

기기 셸로 들어간다.

adb shell

Image Alt adb_shell

간단한 파일 확인, 패키지 상태 확인, 시스템 명령 수행 등에 쓴다.

2. adb start-server

adb 서버를 시작한다.

adb start-server

Image Alt adb_start_server

3. adb kill-server

adb 서버를 종료한다.

adb kill-server

연결 상태가 꼬였을 때 kill-serverstart-server로 재시작하면 해결되는 경우가 많다.

4. 파일 가져오기: adb pull

기기에서 PC로 파일을 가져온다.

adb pull [source] [dest]

Image Alt adb_pull

예:

adb pull /sdcard/Download/test.txt ./test.txt

5. 파일 복사하기: adb push

PC에서 기기로 파일을 보낸다.

adb push [source] [dest]

Image Alt adb_push

예:

adb push ./config.json /sdcard/Download/config.json

6. APK 설치

기기에 APK를 설치한다.

adb install -r file.apk

-r 옵션은 기존 앱이 있으면 교체 설치하는 용도다.

7. 특정 기기에 APK 설치

여러 기기가 연결된 경우 serial을 지정해야 한다.

adb -s [device_serial] install -r file.apk

8. APK 제거

설치된 앱을 삭제한다.

adb uninstall package.name

주의할 점은 파일명이 아니라 패키지명을 넣는 경우가 많다는 것이다.

무선 연결 설정

USB 없이 기기를 연결하고 싶을 때 자주 쓴다.

1. USB 연결 상태에서 tcpip 모드로 전환

adb -s [device_serial] tcpip 5555

Image Alt adb_network_setting

2. 기기 IP로 연결

adb connect [ip address]:5555

Image Alt adb_network_connect

3. 이후 adb devices로 확인

무선 연결이 성공하면 IP:port 형태로 기기가 보인다.

여러 기기 연결 시 팁

테스트 기기가 여러 대면 항상 serial을 명시하는 습관이 좋다.

adb -s emulator-5554 shell
adb -s R3CN30XXXXX install -r app.apk

이렇게 해두면 엉뚱한 기기에 명령이 들어가는 실수를 줄일 수 있다.

연결이 잘 안 될 때

기기가 안 보인다

  • USB 디버깅이 켜져 있는지 확인
  • 충전 전용 케이블이 아닌지 확인
  • RSA 허용 팝업을 수락했는지 확인
  • adb kill-server && adb start-server 재시도

unauthorized 상태다

  • 기기 잠금을 해제
  • RSA 허용 팝업 확인
  • 기존 신뢰를 지우고 다시 연결할 필요가 있을 수 있음

무선 연결이 안 된다

  • 같은 네트워크인지 확인
  • 포트가 열려 있는지 확인
  • 기기 IP가 바뀌지 않았는지 확인

실무에서 가장 많이 쓰는 조합

내 기준으로 자주 쓰는 흐름은 아래다.

  1. adb devices
  2. adb install -r app.apk
  3. adb shell
  4. 필요하면 adb pull, adb push
  5. 무선 테스트가 필요하면 adb tcpip 5555 + adb connect

마무리

adb는 Android 개발에서 거의 필수 기본 도구다. 처음에는 명령어가 많아 보여도 실제로 자주 쓰는 건 몇 개 안 된다.

우선 아래만 익혀도 대부분의 기본 작업이 가능하다.

  • adb devices
  • adb shell
  • adb install -r
  • adb pull
  • adb push
  • adb connect

이 정도만 익숙해져도 Android 실기기 테스트와 디버깅 흐름이 훨씬 빨라진다.

댓글남기기