adb 사용법
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

설정 후 새 터미널에서 아래를 실행해 확인한다.
adb version
가장 먼저 확인할 명령
adb devices
연결된 기기 목록을 보여준다.
adb devices

정상적으로 붙으면 serial 번호와 함께 device 상태가 보인다.
자주 보는 상태
device→ 정상 연결unauthorized→ 기기에서 RSA 허용 필요- 아무것도 안 뜸 → USB 디버깅, 케이블, 드라이버, 권한 확인 필요
자주 쓰는 adb 명령어
1. adb shell
기기 셸로 들어간다.
adb shell

간단한 파일 확인, 패키지 상태 확인, 시스템 명령 수행 등에 쓴다.
2. adb start-server
adb 서버를 시작한다.
adb start-server

3. adb kill-server
adb 서버를 종료한다.
adb kill-server
연결 상태가 꼬였을 때 kill-server 후 start-server로 재시작하면 해결되는 경우가 많다.
4. 파일 가져오기: adb pull
기기에서 PC로 파일을 가져온다.
adb pull [source] [dest]

예:
adb pull /sdcard/Download/test.txt ./test.txt
5. 파일 복사하기: adb push
PC에서 기기로 파일을 보낸다.
adb push [source] [dest]

예:
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

2. 기기 IP로 연결
adb connect [ip address]:5555

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가 바뀌지 않았는지 확인
실무에서 가장 많이 쓰는 조합
내 기준으로 자주 쓰는 흐름은 아래다.
adb devicesadb install -r app.apkadb shell- 필요하면
adb pull,adb push - 무선 테스트가 필요하면
adb tcpip 5555+adb connect
마무리
adb는 Android 개발에서 거의 필수 기본 도구다. 처음에는 명령어가 많아 보여도 실제로 자주 쓰는 건 몇 개 안 된다.
우선 아래만 익혀도 대부분의 기본 작업이 가능하다.
adb devicesadb shelladb install -radb pulladb pushadb connect
이 정도만 익숙해져도 Android 실기기 테스트와 디버깅 흐름이 훨씬 빨라진다.
댓글남기기