——
到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口
一个偶数端口用
来 相 应 控 制 台 的 连 接 , 和 一 个 奇 数 端 口 用 来 响 应 adb 连 接 。 比 如 说 :
模
拟
器
1
,
控
制
台
:
端
口
5554
模
拟
器
1
,
Adb
端
口
5555
控
制
台
:
端
口
5556
Adb
端
口
5557...
如上所示,模拟器实例通过 5555 端口连接 adb,就如同使用 5554 端口连接控制台一样.
一旦服务器与所有模拟器实例建立连接,就可以使用 adb 命令控制和访问该实例。因为服务
器管理模拟器/设备实例的连接,和控制处理从来自多个 adb 客户端来的命令,你可以通过任
何 客 户 端 ( 或 脚 本 ) 来 控 制 任 何 模 拟 器 或 设 备 实 例 .
以下的部分描述通过命令使用 adb 和管理模拟器/设备的状态。要注意的是如果你用,装有
ADT 插件的 Eclipse 开发 Android
程序,你就不 需要通过命令行使用 adb。ADT 插件已经透
明的把 adb 集成到 Eclipse 中了,当然,如果必要的话你也可以仍然直接使用 adb,比如说调
试
.
发
出
adb
命
令
发出 Android
命令: 你可以在你的开发机上的命令行或脚本上发布 Android 命令,使用方法:
adb
[-d|-e|-s
<serialNumber>]
<command>
当你发出一个命令,系统启用 Android 客户端。客户端并不与模拟器实例相关,所以如果双
服务器/
设备是运行中的,你需要用 -d 选项去为应被控制的命令确定目标实例。关于使用这
个 选 项 的 更 多 信 息 , 可 以 查 看 模 拟 器 /
设 备 实 例 术 语 控 制 命 令
.
查
询
模
拟
器
/
设
备
实
例
在发布 adb 命令之前,有必要知道什么样的模拟器/设备实例与 adb 服务器是相连的。可以通
过 使 用 devices 命 令 来 得 到 一 系 列 相 关 联 的 模 拟 器 / 设 备 :
adb
devices
• 作 为 回 应 , adb 为 每 个 实 例 都 制 定 了 相 应 的 状 态 信 息 :
•
— —
序 列 号
由 adb 创 建 的 一 个 字 符 串 , 这 个 字 符 串 通 过 自 己 的 控 制 端 口 <type>-
<consolePort> 唯一地识别一个模拟器/
设备实例。下面是一个序列号的例子: emulator-5554
实
例
的
连
接
状
态
有
三
种
状
态
:
offline — 此 实 例 没 有 与
adb
相 连 接 或 者 无 法 响 应 .
device — 此实例正与 adb 服务器连接。注意这个状态并不能百分之百地表示在运行和操作
Android 系统,因此这个实例是当系统正在运行的时候与 adb 连接的。然而,在系统启动之
后 , 就 是 一 个 模 拟 器 / 设 备 状 态 的 正 常 运 行 状 态 了 .
每
个
实
例
的
输
出
都
有
如
下
固
定
的
格
式
:
[serialNumber]
[state]
下
面
是
一
个
展
示
devices
命
令
和
输
出
的
例
子
:
$
adb
devices
List
of
devices
attached
emulator-5554
device
emulator-5556
device
emulator-5558
device
如 果 当 前 没 有 模 拟 器 / 设 备 运 行 , adb
则 返 回
no
device
.
给
特
定
的
模
拟
器
/
设
备
实
例
发
送
命
令
如果有多个模拟器/设备实例在运行,在发布 adb
命令时需要指定一个目标实例。 这样做,
请
使
用
-s
选
项
的
命
令
。
在
使
用
的
-s
选
项
是
adb
-s
<serialNumber>
<command>
如上所示,给一个命令指定了目标实例,这个目标实例使用由 adb 分配的序列号。你可以使
用
devices 命 令 来 获 得 运 行 着 的 模 拟 器 / 设 备 实 例 的 序 列 号
示
例
如
下
:
adb
-s
emulator-5556
install
helloWorld.apk
注意这点,如果没有指定一个目标模拟器/
设备实例就执行 -s 这个命令的话,adb 会产生一个
错
误
.
安
装
软
件
你可以使用 adb 从你的开发电脑上复制一个应用程序,并且将其安装在一个模拟器/设备实例。
像这样做,使用 install 命令。这个 install 命令要求你必须指定你所要安装的.apk 文件的路径: