안드로이드 / android / adb how to work /
adb 동작
-
adb client 를 실행하면,
-
client 는 먼저 실행되고 있는 adb server process가 있는지 확인한다.
-
없으면 server process 를 시작한다.
-
server가 시작되면, server 는 local TCP port 5037 에 bind 해서, adb client 에서 보내는 명령을 받을 준비를 한다.
-
모든 adb client 는 adb server 와의 통신을 위해 5037 port 를 사용한다.
-
서버는 그러고 난후에, 모든 실행되고 있는 기기(devices) 과 connection 들을 설정한다.(set up)
-
서버는 "5555~5585 사이의 홀수로 된 port 들"을 scanning 해서, emulator 가 어디있는지를 찾는다.
- "5555~5585 사이의 홀수로 된 port 들" 은 첫 16개의 emulator 들이 사용하게 된다.
-
서버가 scanning 한 port 중에서 adbd(adb 데몬, target phone 에 있다.)을 찾으면, 그 port 와 connection 을 set up한다.
-
각 emulator 는 한쌍의 port 를 사용한다.
- console connection 을 위해 짝수번 port
- adb connection 을 위해 홀수번 port
Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...
- emulator 가 port 5555 를 통해 adb 에 연결됐으면, emulator 의 console 은 5554 port 에서 listen (수신대기)하고 있는 것이다.
- 서버가 모든 기기들과 connection 을 맺으면,
- 그 기기들에 대해서 adb command 를 사용할 수 있다.
- 서버는 device 에 대한 연결을 관리하고, 여러 adb client 로 부터 오는 command 들을 handle 한다. 그래서 특정 device 를 control 하기 위해 특정 client 를 사용할 필요는 없다.
Reference
- Android Debug Bridge (adb) | Android Developers
- ADB(Android Debug Bridge): How it works?
댓글 없음:
댓글 쓰기