AndroidDebug Bridge我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。adb是基于C/S模式的程序,包含以下三个组件:1、adb client(运行在手机上) ;2、adb server(运行在pc上);3、adb daemon(运行在手机上,这个是运行命令的组建)。连接的端口范围是5555-5585,每一个adb连接,会开启两个端口,这样一部手机,只能建立16条连接了。不过这远远够用了。

结构图

adb client(客户端)

client是运行在PC端的,该组件发送命令,可以通过发出adb命令从命令行终端调用客户端。每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。所有的client都是通过5037端口与adb-server进行通信的。

adb daemon(adbd后台程序)

Daemon,该组件作为一个后台进程运行在模拟器/真实Android设备中,在设备上运行命令。daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这样一个后台进程,并且为其分配了两个连续的端口,比如:

Emulator1, console: 5554

Emulator1, adb: 5555

因为每个设备都分一组两个端口,所以adb连接手机的最大数量为16。
端口的作用,在这两个端口中,其中偶数端口是用于server与设备进行交互的,可以让server直接从设备中读取数据,而奇数端口是用来与设备的adbd进行连接通信的。

adb server(服务器)

Server,该组件管理客户端和后台程序之间的通信,作为一个后台的程序运行在PC端。当一个server开启的时候,会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。

更多相关文章

  1. 【转】关于Android的.so文件你所需要知道的(二)
  2. ADB 使用详细教程——Awesome Adb
  3. Android(安卓)获取外部存储设备列表
  4. Android(安卓)Studio 非常好用的几款插件,好用到爆
  5. backtrack 安装到 arm CPU的手机
  6. Android(安卓)Bluetooth 蓝牙开发资料大全【新】
  7. android 4.2.2提示 unauthorized终极解决办法,很粗暴
  8. Android利用Fiddler进行网络数据抓包【怎么跟踪微信请求】
  9. 使用WIFI连接android进行调试和adb操作

随机推荐

  1. 11种数据分析方法,别再说你不会了
  2. 认识Python中的闭包:闭包入门到自闭
  3. 用Python全自动下载抖音视频!
  4. 11个 Javascript 小技巧帮你提升代码质量
  5. Python数据可视化:豆瓣电影TOP250
  6. python入门教程12-05 (python语法入门之创
  7. Python数据科学:相关分析
  8. 一步步教你用CSS添加SVG过滤器[每日前端
  9. Python数据可视化:25年GDP之变
  10. Python数据科学:正态分布与t检验