android模拟器相关

Name:自定义虚拟的名称,不能有空格或者其他非法字符,否则不能创建,即Creat AVD不能高亮点击。


Target:选择要运行的android版本(也可理解为内核?),此处有两个版本,取决于你在最初时下载的选择,个人理解这两个同样为2.2版本差异在从名称上不难理解,一个是优化后的内核包,一个是google原生态的,当然这两个都是Google原版本,未被做过其他改动,通过查看img以及表现在系统启动后安装的一些自带软件和功能上的差异,原生态的占用内存小;以及在皮肤,字体,地图等一些外在差异。


Size:就是要模拟卡存储卡的大小,视个人需求而定,推荐256MB以上,此处的KiB就是KB,MiB就是MB。如果有用过的映像文件可直接使用。文件存在::\Documents and Settings\Administrator\.android\avd\sdk2.2.avd\sdcard.img,如果分配太大则会占用更多的系统空间。如果有需要可以将其备份,以供以后直接使用,选择File直接载入即可。

Skin:Built-in其实就是定义屏幕尺寸的像素,可以使用由SDk直接提供的常见分辨率,具体的可查看(你的文件解压存放路径)android-sdk-windows\platforms\android-8\skins\;


HVGA      320*480像素;QVGA      320*240像素;WQVGA400  400*240像素;WQVGA432  432*240像素;WVGA800   800*480像素;WVGA854   854*480像素


Resolution就是自定义分辨率,除非有特殊需求,否则不建议自定义,因为自定义的尺寸没有对应的右侧界面,当然你也可以自己做对应的此存的皮肤。一般选择好尺寸后在Hardware中会自动增添一项abstracted lcd density,默认是160,下文解释此处。


Hardware:Abstracted Lcd Density默认160,最直接的表现就是手机图标和文字的大小,120最小,可根据分辨率的大小自定义,一般推荐使用默认值即可。


SD Card Support 是否支持插入/弹出闪存卡;


Dpad Support 是否要让手机支持DPad键,默认为yes,表示支持。DPad键就是手机上的那些Home键、返回键、电话键、电源键。不过测试表明即使no,皮肤上的那些键也可用,可以理解为外设之类的手柄,键盘等。


Accelerometer是否要让手机支持加速器功能,默认为yes,表示支持。


Maximum horizontal camera pixels若让手机支持照相机功能,接着会要求定义照相机的像素,默认水平像素为640。


Cache partition size要指定/cache分割区的大小,默认值为66 MB。


Audio playback support是否要让手机支持音乐播放功能,默认为yes,表示支持。


Track-ball support是否要让手机支持轨迹球功能,默认为yes,表示支持。


Maximum vertical camera pixels让手机支持照相机功能,接着会要求定义照相机的像素,默认垂直像素为480。


Camera support 手机是否支持照相功能,默认no。


Battery support是否要让手机支持电池功能,默认为yes,表示支持。


Touch-screen support是否要让手机支持触碰屏幕功能,默认为yes,表示支持。


Audio recording support是否要让手机支持音乐录制功能,默认为yes,表示支持。


GPS support 是否支持手机定位,默认yes。


Cache partition support是否要让Android手机系统支持额外的/cache分割区,这样放在/cache的暂存文件不会使用到Android系统空间,默认为yes,表示支持。


Keyboard support是否要让手机支持QWERTY键盘输入功能,默认为yes,表示支持。


Max VM application heap size最大虚拟机应用程序堆大小,就是系统最低内存阀值,当运行低于这个值,系统会结束一些进程,默认值16。


Device ram size是否要更改手机的内存容量,默认值为96 MB,建议更改为256 MB以上。


至此就完成搭载Android 2.2版的定制化AVD硬件装置设定了,但实际中有些硬件不受控制。
推荐定制设置:
Size:512MB
Skin:Built-in -> HVGA
Hardware:Abstracted Lcd Density 160 (可自定义,输入其他值也可比如200)
               Cache partition size 128MB
               Camera support yes
               Device ram size 512
语言设置为setting -> language & keyboard -> select language,界面中文在重启后生效。

至此发现:
1,C:\Documents and Settings\Administrator\.android\avd下即为配置文件,在下一节目录中可找到配置文件config.ini,进行相应参数的更改。更改配置文件后需要重新启动模拟器才行。 直接使用模拟器新建相同名称的,并选择进行覆盖,也可更改参数,可立即生效。
2,运行(你的文件解压存放路径)android-sdk-windows\tools\android.bat,放送到桌面快捷方式,可启动模拟器。
也发现一点小问题:
1,模拟器进程emulator.exe比较消耗CPU,运行程序时酷睿双核的常常占到30-40;
2,鼠标操作反应不好,延迟感严重,比较不爽。(待解决)

设置虚拟机屏幕的大小
运行(Start)虚拟机后,会弹出一个对话框,
Launch option,主要可以用来设置虚拟机屏幕与电脑屏幕的比例关系,以及重置虚拟机。
在电脑上安装Android模拟器-部分更新详解 - 安机网技术交流 - android.png

Scale display to real size:选中后可以自定义设置。
Screen size(in):虚拟机屏幕像素尺寸,默认值3。
Monitor dpi:电脑屏幕的每英寸像素点数,默认值96,点击问号可以设置电脑尺寸和分辨率,会自动算出当前电脑的dpi。
比如我的电脑屏幕尺寸14’,分辨率1600*900,对应的的dpi为131.,看起来就是一个精细程度。
Scale:该值表示虚拟机屏幕与实际屏幕的映射关系,值为1表示两者相对应,小于1,屏幕将被缩小,反之则放大。

Wipe user data:清除用户自定义数据,重置虚拟机。


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:\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连接到控制台的端口号。

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

  • 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
  • emulator -netspeed 14.4 80



要想在模拟器运行中动态改变网络传输速度,需要连接上控制台使用netspeed命令,后 面跟合法的<speed>值。下表中列出了合法的<speed>值

  • network speed 14.4 80



<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|data|voice>



来调用电话功能。
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>选项。
例如:

  • emulator -skin HVGA-L



注意:<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 模拟器的时候,那个窗口太大了,以至于你看不到标题栏和系统参数,我们可以通过-scale ­­选项来解决这个问题,用./emulator -scale 0.9来启动模拟器就没问题了

在eclipse中ADT的设置方法:

在 Run -> Run Configurations -> Target -> Additional Emulator Command Line Options” 里面可以填入-scale ­­,来缩放模拟器窗口。


Android模拟器默认的system分区是70M左右
在使用adb安装软件或者push部分动态so库的时候会出现提示说空间不足
Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]

解决办法是在启动模拟器的参数上加入-partition-size 512
就可以把system分区扩大为512M了


代理联网相关的:-http-proxy 10.16.32.64:8080


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值