鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 手机系统开发 > android > >

Android Debug Bridge(ADB)学习总结

来源:互联网 作者:佚名 时间:2013-04-24 12:09
Android Debug Bridge Android调试桥(ADB)是一种多用途的命令行工具。通过它我们可以和模拟器或者设备通信。ADB是一个客户端-服务器程序,包括三个组成部分: 你可以在sdk/platform-tools下面找到adb工具。 当你启动一个adb客户端,客户端首先检测是否已有

Android Debug Bridge

Android调试桥(ADB)是一种多用途的命令行工具。通过它我们可以和模拟器或者设备通信。ADB是一个客户端-服务器程序,包括三个组成部分:

你可以在sdk/platform-tools下面找到adb工具。

当你启动一个adb客户端,客户端首先检测是否已有一个adb服务器进程正在运行。如果没有,则启动服务器进程。当服务器运行,adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令——所有的adb客户端都是通过TCP端口5037与adb服务器进行通信。

接下来,服务器将所有运行中的模拟器或设备实例建立连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到了adb守护进程,它将建立一个到该端口的连接。请注意每个模拟器或设备实例都会取得两个连续的端口——偶数端口响应控制台连接,香港服务器,奇数端口响应adb连接。例如:

  Emulator 1, console: 5554

  Emulator 1, adb: 5555

  Emulator 2, console: 5556

  Emulator 2, adb: 5557

如上所示,通过5555端口连接adb的模拟器实例和通过5554端口连接控制台的实例是相同的。

一旦服务器与所有模拟器实例建立连接,就可以使用adb命令来访问该实例。因为服务器管理模拟器或设备实例的连接,而且处理来自多个adb客户端的命令,你可以通过任何客户端(或脚本)来控制任何模拟器或设备实例。

你可以在PC的命令行或脚本上发布Android命令,使用方法:

语法

adb [-d|-e|-s <serialNumber>] <command>

如果仅有一个模拟器运行或一个设备连接,adb命令默认发送给这个设备。如果有多个模拟器运行或多个设备连接,香港虚拟主机,你就需要使用-d, -e, -s选项来指定接收命令的目标设备。

ADB常用命令

实例演练

上面的学习总结都是铺垫,或者说都是废话,因为在其他技术博客也能看到相关的介绍。接下来才是文章的重点:"adb server is out of date. killing..."

这里我忍不住吐槽一下,网上关于"adb server is out of date. killing..."的介绍都是关于神马“豌豆荚”之类的,没有一篇文章从深层原理发出,解释为什么会出现这种情况。吐槽完毕。。。

 

为了解决公司里多客户端通过tftp公用adb server造成相互“杀死”对方的情况,我进行了如下测试:

场景:两个DMP Board,服务器空间,三个tftp用户。

1. 查看A,B,C三个用户的adb路径

macan@BG2BLT06:~$ which adb /home/macan/Android_Eclipse/adt-bundle-linux-x86_64-20130219/sdk/platform-tools/adb

网友评论
<