AndroidDebugBridgeAndroid调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分:*客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端
*服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信
*守护进程部分,运行于模拟器或手机的后台
当启动adb客户端时,客户端首先检测adb服务端进程是否运行,如果没有运行,则启动服务端
当服务端启动时,它会绑定到本地的TCP5037端口,并且监听从adb客户端发来的命令——所有的adb客户端都使用5037端口与adb服务端通信
接下来服务端与所有正在运行的模拟器或手机连接
它通过扫描5555-5585之间的奇数号端口来搜索模拟器或手机,一旦发现adb守护进程,就通过此端口进行连接
需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于adb连接,例如:Emulator1,console:5554Emulator1,adb:5555Emulator2,console:5556Emulator2,adb:5557
即如果模拟器与adb在5555端口连接,则其与控制台的连接就是5554端口
当服务端与所有的模拟器建立连接之后,就可以使用adb命令来控制或者访问了
因为服务端管理着连接并且可以接收到从多个adb客户端的命令,所以可以从任何一个客户端或脚本来控制任何模拟器或手机设备
下文介绍了可以用来管理模拟器或手机的这些adb命令
如果是在Eclipse并且安装了ADT插件的环境下开发Android应用程序,就不需要从命令行使用adb了,ADT插件已经提供了透明的集成
不过,还是可以在调试等需要的时候直