Android模拟器ndroid SDK自带一个移动设备模拟器 — 它是一个可以运行在你电脑上的虚拟设备. Android模 拟器可以让你不需使用物理设备即可预览、开发和测试Android应用程序.

  Android模拟器能够模拟除了接听和拨打电话外的所有移动设备上的典型功能和行为. 如右图所示, Android模拟器提供了大量的导航和控制键,你可以通过鼠标或键盘点击这些按键来为你的应用程序产生 事件. 同时它还有一个屏幕用于显示Android自带应用程序和你自己的应用程序.

  为了便于模拟和测试应用程序, Android模拟器允许你你的应用程序通过Android平台服务调用其他程 序、访问网络、播放音频和视频、保存和**数据、通知用户、渲染图像过渡和场景.

  Android模拟器同样具有强大的调试能力,例如能够记录内核输出的控制台、模拟程序中断(比如接受 短信或打入电话)、模拟数据通道中的延时效果和遗失。

  下面的章节将提供关于模拟器的详细信息,以及如何在开发应用程序中使用模拟器。

  启动和关闭模拟器

  要启动Android模拟器,首先进入SDK的tools/文件夹,然后输入 emulator 或 ./emulator。这个操作将初始化Android系统,你将会在屏幕 上看到模拟器窗口。

  要关闭模拟器,只需要关闭模拟器窗口即可。

  操作模拟器

  你可以通过模拟器的启动选项和控制台命令来控制模拟环境的行为和特性。一旦模拟器启动,你就可以通过键盘和鼠标来”按” 模拟器的按键,从而操作模拟器。

  下面的表格总结了模拟器按键可键盘按键之间的映射关系。

  模拟器按键 键盘按键

  后退 ESC

  菜单 F1 或 PgUp

  开始 F2 或 PgDn

  呼叫 F3

  挂断 F4

  — F5, F6 未分配

  电源按键 F7

  禁用/启用所有网络 F8

  开始跟踪 F9 (当且仅当有-trace标记时有效)

  停止跟踪 F10 (当且仅当有-trace标记时有效)

  主页 HOME

  方向键 左/上/右/下 小键盘 4/8/6/2

  方向键 中心建 小键盘 5

  调低音量 小键盘 负号(-)

  调高音量 小键盘 加号(+)

  模拟器启动选项

  Android模拟器提供了很多启动选项,你可以在启动模拟器时指定,来控制其外观和行为。下面是用命 令行的方式启动模拟器并指定参数的语法:

* emulator [-option [value]] ... [-qemu args]

  下表总结了所有有效的选项。

  类型 选项 描述 注释

  帮助 -help 以列表的形式打印模拟器的所有命令

  数据 -data [file] 使用< file>当作用户数据的磁盘镜像 如果没有-data,模拟器会在~/.android (Linux/Mac) 或C

ocuments and Settings< user>Local SettingsAndroid (Windows)中查找文件名为”userdata.img”的文件。

  如果使用了-data < file>但< file>不存在,模拟器会在那个位置创建一个文件

  -ramdisk < file> 使用< file>作为RAM镜像 默认值为< system>/ramdisk.img

  -sdcard < file> 使用< file> 作为SD卡镜像 默认值为< system>/sdcard.img

  -wipe-data 启动前清除用户磁盘镜像中的所有数据(参考-data)

  调试 -console 允许当前中断使用控制台Shell

  -debug-kernel 将内核输出发送到控制台

  -logcat < logtags> 允许根据给定的标签为输出分类 如果定义了环境变量ANDROID_LOG_TAGS并且不为空,

  它的值将被作为logcat的默认值。

  -trace < name> 允许代码剖析(按F9键开始)

  -verbose 允许详细信息输出

  -verbosekeys 允许详细输出按键信息

  媒体 -mic < device or file> 使用设备或者WAV文件作为音频输出

  -noaudio 禁用Android的音频支持 默认禁用

  -radio < device> 将无线调制解调器接口重定向到主机特征设备

  -useaudio 启用Android音频支持 默认不启用

  网络 -netdelay < delay> 设置网络延迟模拟的延迟时间为< delay>. 默认值是none。请参考[url=http:/#.E7.BD.91.E9.80.9F.E6.A8.A1.E6.8B.9F]网络延迟模拟 [/url]中表”支持的< delay>值”

  -netfast -netspeed full -netdelay none的快捷方式

  -netspeed < speed> 设置网速模拟的加速值为< speed>. 默认值为full。请参考[url=http:/#.E7.BD.91.E9.80.9F.E6.A8.A1.E6.8B.9F]网速模拟[/url]中表”支持的< speed>值”

  系统 -image < file> 使用< file>作为系统镜像 默认值为< system>/system.img

 -kernel < file> 使用< file> 作为模拟器内核

  -nojni

  -qemu 传递qemu参数

  -qemu -h 显示qemu帮助信息

  -system < dir> 在< dir>目录下查找系统、RAM和用户数据镜像

  UI -flashkeys 在设备皮肤上闪烁按下的键

  -noskin 不使用任何模拟器皮肤

  -onion < image> 在屏幕上使用覆盖图 不支持JPEG格式图片,仅支持PNG格式图片

  -onion-alpha < percent> 指定onion皮肤的半透明值(单位%). 默认值为50

  -skin < skinID> 用指定皮肤启动模拟器 SDK提供了4个可选皮肤:

  QVGA-L (320×240, 风景) (默认)QVGA-P (240×320, 肖像)HVGA-L (480×320, 风景)HVGA-P (320×480, 肖像)

  -skindir < dir> 在< dir>目录下查找皮肤

  使用模拟器控制台

  每一个运行中的模拟器实例都包括一个控制台,你可以利用控制台动态的查询和控制模拟设备的环境 。例如,你可以利用控制台动态的管理端口映射和网络特性,还可以模拟电话时间。要想进入控制台输入 命令,你需要使用telnet连接到控制台的端口号。

  你可以使用下面的命令随时随地连接到任何一个运行中的模拟器实例:

  * telnet localhost < port>

  假设第一个模拟器实例的控制台使用5554端口,下一个实例使用的端口号会加2,比如5556、5558…… 等。你可以在启动模拟器是使用-verbose选项来检测该模拟器实例使用的端口号,在调试 输出的找到以”emulator console running on port number“这一行。 另外, 你可 以在命令行中使用adb devices来查看模拟器实例和他们的端口列表。最多可以有16个模拟 器实例同时运行控制台。

  注意:模拟器**端口5554-5587的来自任何电脑的连接。将来发布的版本将只接受本 机的连接,但目前,你需要用防火墙阻断外部对你开发设备的5554-5587这些端口的连接。

  一旦连接上控制台, 你可以输入help [command]来查看命令列表和指定命令的教程。

  要离开控制台会话, 使用quit 或 exit 命令。

  下面的章节将介绍控制台的主要功能区域。

  端口重定向

  你可以在模拟器运行期间添加和删除端口重定向。连接上控制台后,你可以通过下面的方法管理端口 重定向:

* redir < list|add|del>redir

  支持下表列出的子命令:

  子命令 描述 注释

  list 列出当前的端口重定向 (min 150, max 550)

  add < protocol>:< host-port>:< guest-port> 添加新的端口重定向 < protocol> 必须是”tcp” 或 “udp”< host-port> 是主机上开启的端口号< guest-port> 是向模拟器/设备发送数据的端口号

  del < protocol>:< host-port> 删除端口重定向 < protocol> and < host-port>的含义同上

  网络状况

  你可以利用控制台检测网络状况和当前延迟、加速特性。要想检测网络状态需要连接到控制台,使用 netstatus 命令。下面是命令和输出的例子。

  * network status

  网络延迟模拟

  模拟器允许你模拟多种网络延迟等级, 因此你可以在更接近真实情况的环境下测试你的应用程序。你 可以在模拟器启动时设置延迟等级或范围,也可以在模拟器运行期间通过控制台动态修改延迟。

  要想在模拟启动时设置延迟,使用-netdelay选项,后面跟一个合法的 < delay>值。这里给出一些例子:

  * emulator -netdelay gprs

  * emulator -netdelay 40 100

  要想在模拟器运行期间动态修改网络延迟,需要连接上控制台使用netdelay命令,后面 跟合法的 < delay>值。下表中列出了合法的< delay>值

  * network delay gprs< delay>

  值的格式为下面的一种(单位为毫秒):

  值 描述 注释

  gprs GPRS (min 150, max 550)

  edge EDGE/EGPRS (min 80, max 400)

  umts UMTS/3G (min 35, max 200)

  none 没有延迟 (min 0, max 0)

  < num> 模拟一个准确的延迟(毫秒)

  < min>:< max> 模拟一个指定的延迟范围(min, max 毫秒)

  网速模拟

  模拟器同样允许你模拟多种网络传输速度。你可以在模拟器启动时指定传输速度或范围,也可以在模 拟器启动后通过控制台动态修改传输速度。

  要想在模拟器启动时设置网络传输速度,使用-netspeed选项,后面跟合法的 < speed>值。下面是一些例子:

  *

  * emulator -netspeed gsm