background image

——

到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口

一个偶数端口用

 

来 相 应 控 制 台 的 连 接 , 和 一 个 奇 数 端 口 用 来 响 应 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 文件的路径: