转http://www.eoeandroid.com/thread-23281-1-1.html
Android模拟器ndroidSDK自带一个移动设备模拟器 — 它是一个可以运行在你电脑上的虚拟设备.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:\Documents and Settings\<user>\Local
Settings\Android (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连接到控制台的端口号。
你可以使用下面的命令随时随地连接到任何一个运行中的模拟器实例:
假设第一个模拟器实例的控制台使用5554端口,下一个实例使用的端口号会加2,比如5556、5558……
等。你可以在启动模拟器是使用-verbose选项来检测该模拟器实例使用的端口号,在调试
输出的找到以”emulator console running on portnumber“这一行。 另外, 你可 以在命令行中使用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命令。下面是命令和输出的例子。
网络延迟模拟
模拟器允许你模拟多种网络延迟等级,
因此你可以在更接近真实情况的环境下测试你的应用程序。你
可以在模拟器启动时设置延迟等级或范围,也可以在模拟器运行期间通过控制台动态修改延迟。
要想在模拟启动时设置延迟,使用-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
- emulator -netspeed 14.4 80
要想在模拟器运行中动态改变网络传输速度,需要连接上控制台使用netspeed命令,后 面跟合法的<speed>值。下表中列出了合法的<speed>值
<speed>值的格式为下面的一种(单位为kb/s):
值 |
描述 |
注释 |
gsm |
GSM/CSD |
(Up:
14.4, down: 14.4) |
hscsd |
HSCSD |
(Up:
14.4, down: 43.2) |
gprs |
GPRS |
(Up:
40.0, down: 80.0) |
edge |
EDGE/EGPRS |
(Up:
118.4, down: 236.8) |
umts |
UMTS/3G |
(Up:
128.0, down: 1920.0) |
hsdpa |
HSDPA |
(Up:
348.0, down: 14400.0) |
full |
无限制 |
(Up:
0.0, down: 0.0) |
<num> |
设置一个上行和下行公用的准确速度 |
<up>:<down> |
分别为上行和下行设置准确的速度 |
电话功能模拟
Android模拟器拥有自己的GSM模块允许你在模拟器上模拟电话功能。例如,你可以模拟打入电话和建
立/终止数据连接。Android系统模拟电话呼叫跟真实情况一样。这个版本暂不支持电话录音。
你可以通过控制台访问模拟器的电话功能。连接上控制台后,你可以使用
来调用电话功能。
gsm命令支持下表列出的子命令。
子命令 |
描述 |
注释 |
call <phonenumber> |
模拟来自电话号码为<phonenumber>的呼叫 |
voice <state> |
修改GPRS语音连接的状态为<state> |
合法的<state>值为: unregistered— 无可用网络home— 处于本地网,无漫游roaming— 处于漫游网searching— 查找网络denied— 仅能用紧急呼叫off—
同’unregistered’on— 同’home’ |
data <state> |
修改GPRS数据连接的状态为<state>. |
合法的<state>值为: unregistered— 无可用网络home— 处于本地网,无漫游roaming— 处于漫游网searching— 查找网络denied— 仅能用紧急呼叫off—
同’unregistered’on— 同’home’ |
使用模拟器皮肤
你可以让模拟器使用下表介绍的4种皮肤之一。要想指定皮肤,在启动模拟器是使用-skin
<skinID>选项。
例如:
注意:<skinID>必须用大写(如果你的开发设备大小敏感)。
皮肤ID |
描述 |
|
QVGA-L |
320×240,
横屏 (默认) |
|
QVGA-P |
240×320,
竖屏 |
|
HVGA-L |
480×320,
横屏 |
|
HVGA-P |
320×480,
竖屏 |
|
运行多个模拟器实例
如果必要的话,你可以同时运行多个模拟器实例。每个模拟器实例使用独立的用户数据内存和不同的
控制台端口。这令你可以独立的管理每一个模拟器实例。
然而,如果你要运行多个模拟器实例,请注意每个实例存储跨会话的持久用户数据的能力—用户
设置和安装的应用程序—会受限制。具体如下:
- 只有第一个模拟器实例能根据会话保存用户数据。默认情况下它把用户数据保存在开发设备 的~/.android/userdata.img (on Linux and
Mac)或C:\Documents and
Settings\<user>\Local Settings\Android\userdata.img(on Windows)文件里。你可以 在启动模拟器时使用-data选项来控制用户数据的存储(和加载)位置(请参考启动选项)。
- 在第一个实例后启动的模拟器实例(并行的)在会话过程中也保存用户数据;但它们but they不为下一个会话保存它。这些实例将数据保存在临时文件中,当实例退出时,相应的临时文件会被删 除。
在模拟器上安装应用程序
要想在模拟器上安装应用程序安装,要用到adb工具。
注意:模拟器通过重启保存用户设置和安装的程序。默认情况下,模拟器将数据保存在开发设备的一
个文件里。在Linux和Mac操作系统下,模拟器将用户数据报讯在~/.android/userdata.img。在Windows下,模拟器将数据保存在C:\Documents and
Settings\<user>\Local
Settings\Android\userdata.img。模拟器用userdata.img文件的内容作为data/的 目录。
SD卡模拟
你可以创建磁盘镜像并在模拟器启动时加载它,来模拟设备中用户的SD卡。下面的章节将介绍如何创
建磁盘镜像、如何向磁盘镜像像拷贝文件和如何在模拟器启动时加载镜。
注意:只能在模拟器启动是加载磁盘镜像。同理,模拟器运行时不能移除SD卡。然而,你可以通过adb
或模拟器浏览、发送、拷贝和删除模拟SD卡上的文件。
同时还要注意,模拟SD卡的大小不能超过2GB。
创建磁盘镜像
你可以用SDK中的mksdcard工具来创建可以在模拟器启动时加载的FAT32磁盘镜像。你可以在SDK的
tools/目录下找到mksdcard,用下面的命令船检磁盘镜像:
- mksdcard <size> <file>
- 例句:
- mksdcard 512M SD.IMG//这样就会在tools目录下生成一个512M的sd.img文件
- 启动一个带有SD卡的模拟器:
- emulator -avd g2 -sdcard sd.img//g2是先前设置好的AVD名称
拷贝文件到磁盘镜像
一旦你创建了一个磁盘镜像,你就可以在模拟器加载它之前拷贝文件到镜像中。要拷贝文件,你可以
将镜像加载为循环设备然后向里面拷贝文件,或者你可以使用mtools工具包中的mcopy直接将文件拷贝到
镜像中。mtools包在Linux、Mac和Windows下均可用。
在模拟器启动时加载磁盘镜像
要想在模拟器中加载FAT32格式的磁盘,启动模拟器时带上-sdcard标记并指定镜像的名
称和路径(相对于当前工作目录):
- emulator -sdcard <filepath>
故障排除
adb工具把模拟器当成是一个真实的物理设备。因此,你需要在使用adb命令–例如install–时加上-d标记。-d
标记允许你在众多连接设备中指定使用哪一个设备作为命令 的目标。如果不指定-d,模拟器会选择列表中的第一个设备。向了解更多关于adb的信息,请参考 Android
Debug Bridge。
对于运行在Mac OS X上的模拟器,如果你在启动模拟器时遇到”Warning: No DNS servers
found”错误,请查/etc/resolv.conf文件是否存在。如果不存在,请在命令窗口中运行下面的命令 :
- ln -s /private/var/run/resolv.conf /etc/resolv.conf
模拟器的限制
这一版的模拟器存在如下限制:
- 不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)
- 不支持USB连接
- 不支持相机/视频捕捉
- 不支持音频输入(捕捉);但支持输出(重放)
- 不支持扩展耳机
- 不能确定连接状态
- 不能确定电池电量水平和交流充电状态
- 不能确定SD卡的插入/弹出
- 不支持蓝牙
分享到:
相关推荐
Android 模拟器命令详解收集 Android 模拟器是 Android SDK 自带的一个移动设备模拟器,可以在电脑上运行虚拟设备,模拟除接听和拨打电话外的所有移动设备上的典型功能和行为。 Android 模拟器提供了大量的导航和...
《Android模拟器命令详解》 Android模拟器是Android SDK中不可或缺的一部分,它为开发者提供了一个在计算机上模拟Android设备的功能,使得无需实体设备就能进行应用的预览、开发和测试。模拟器能模拟大部分移动设备...
"Android模拟器命令大全" Android模拟器是Android开发中一个非常重要的工具,能够模拟真实的Android设备,帮助开发者测试和调试应用程序。下面将对Android模拟器的命令进行详细的介绍。 一、模拟器和真机的不同之...
### Android模拟器端口映射详解 #### 一、引言 在开发Android应用程序时,开发者经常需要在模拟器上进行应用调试与测试工作。在某些特定场景下,如需在本地计算机与模拟器之间传输数据(特别是UDP协议的数据包),...
要在Android设备或模拟器上安装一个应用程序,必须将其安装包文件(.apk)传输到设备或模拟器上,并使用相应的安装命令来完成安装过程。 接下来,我们详细说明如何在Android模拟器上安装软件: 1. 下载apk软件文件...
Android 模拟器永久root工具------包含 (android for img.rar、Android SU文件更新包.zip、RootExplorer.apkSuperuser.apk) 1、用android for img.rar里的android for img.exe打开 E:\SDK\platforms\android-8\...
在Android开发过程中,Android模拟器扮演着至关重要的角色,它为开发者提供了一个可以在桌面系统上运行和测试Android应用的环境。然而,由于模拟器的网络配置与开发者的主机系统不一致,这可能导致通信问题,例如...
- 使用`adb shell`命令进入Android模拟器的命令行界面。确保已将`Android_SDK/tools`目录添加到环境变量中。 3. **检查设置数据库文件** - 执行`ls -l /data/data/...
android开发所使用的 模拟器系统源码,用于练习时需要跳转到模拟器自带页面时 ,设置隐式意图 , 查看意图过滤器等等。ceshiguo eclipse自带 AVD模拟器 和 genymotion模拟器
在IT领域,尤其是在移动应用开发过程中,Android模拟器扮演着至关重要的角色,它为开发者提供了在真实设备上可能无法实现的测试和调试环境。然而,在使用Android模拟器的过程中,难免会遇到各种各样的启动问题,这些...
压缩文件包含:Android模拟器快捷键大全.pdf、 Android模拟器也玩ping.pdf、 gsm call命令向Android模拟器打电话.pdf、 sms send命令向Android模拟器发短信.pdf、 让你的Android模拟器支持Cupcake屏幕键盘.pdf
然后,将 android123.apk 文件复制到 Android SDK 的 Tools 目录中(点击下载 Android123.apk 文件),使用 cmd 的 cd 命令定位到 Android 模拟器目录 Tools 中,执行 adb install android123.apk 命令,这时模拟器...
Android模拟器检测技术的研究与应用现状是模拟器躲避检测与应对的核心议题,其目的是为了揭示模拟器的检测方法和应对措施。随着Android模拟器的广泛应用,为了区分模拟器与真实设备,确保应用程序的安全性,开发者和...
在Android开发过程中,有时我们需要将文件从电脑复制到Android模拟器进行测试或调试。本文将详细介绍两种在Android Studio中将文件复制到模拟器的方法:一种是通过Android Studio的图形界面,另一种是使用命令行工具...
android模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Android...
在Android开发过程中,Android模拟器是一个非常重要的工具,它允许开发者在没有物理设备的情况下测试应用程序。APK(Android Package)是Android系统中的应用程序包文件格式,用于分发和安装移动应用。下面我们将...