Android 디버그 브리지(adb)

HumbleMincho·2024년 7월 17일
1
post-thumbnail

Android 디버그 브리지(adb)는 기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구다.

adb 명령어는 앱의 설치 및 디버깅과 같은 다양한 기기 작업에 도움이 되며, 기기에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix 셸에 대한 액세스를 제공한다.

adb는 아래의 세 가지 구성요소를 포함하는 클라이언트-서버 프로그램이다.

  • 명령어를 전송하는 클라이언트. 클라이언트는 개발 머신에서 실행된다. adb 명령어를 실행하여 명령줄 터미널에서 클라이언트를 호출할 수 있다.
  • 기기에서 명령어를 실행하는 데몬(adbd). 데몬은 각 기기에서 백그라운드 프로세스로 실행된다.
  • 클라이언트와 데몬 간의 통신을 관리하는 서버. 서버는 개발 머신에서 백그라운드 프로세스로 실행된다.

adb는 Android SDK 플랫폼 도구 패키지에 포함되어 있다.
이 패키지는 SDK Manager를 사용하여 다운로드할 수 있으며 android_sdk/platform-tools/에 설치된다.

adb 작동 방식

  1. adb 클라이언트를 시작하면 먼저 해당 클라이언트는 이미 실행 중인 adb 서버 프로세스가 있는지 확인한다.
  2. 없으면 서버 프로세스를 시작한다.
  3. 서버가 시작되면 이 서버가 로컬 TCP 포트 5037에 바인딩되고 adb 클라이언트로부터 전송되는 명령어를 litsten한다.
  4. 모든 adb 클라이언트는 포트 5037을 사용하여 adb 서버와 통신한다.
  5. 그런 다음 서버는 실행 중인 모든 기기와의 연결을 설정한다.
  6. 서버는 5555~5585 범위(처음 16개의 에뮬레이터가 사용하는 범위)에서 홀수 포트를 스캔하여 에뮬레이터를 찾는다.
  7. 서버가 adb 데몬(adbd)을 찾으면 포트와의 연결을 설정한다.
  8. 각 에뮬레이터는 한 쌍의 순차적 포트를 사용한다. 하나는 콘솔 연결용 짝수 포트이고 다른 하나는 adb 연결용 홀수 포트다.

예:
에뮬레이터 1, 콘솔: 5554
에뮬레이터 1, adb: 5555
에뮬레이터 2, 콘솔: 5556
에뮬레이터 2, adb: 5557
.
.
.
등등

위에서 알 수 있듯이 포트 5555에서 adb에 연결된 에뮬레이터는 콘솔이 포트 5554에서 리슨하는 에뮬레이터와 동일합니다.

서버가 모든 기기와의 연결을 설정하면 사용자는 adb 명령어를 사용하여 기기에 액세스할 수 있다. 서버는 기기 연결을 관리하고 여러 adb 클라이언트의 명령어를 처리하므로 개발자는 임의의 클라이언트(또는 스크립트)에서 임의의 기기를 제어할 수 있습니다.

기타사항

레퍼런스 참조 : Android developer 디버그 브리지(adb) 공식문서

profile
javascript, typescript, react-native, react.js, next.js

0개의 댓글