[转帖]Android基础知识之模拟器使用详解_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3419 | 回复: 0   主题: [转帖]Android基础知识之模拟器使用详解        下一篇 
huizai
注册用户
等级:少校
经验:933
发帖:83
精华:0
注册:2013-6-18
状态:离线
发送短消息息给huizai 加好友    发送短消息息给huizai 发消息
发表于: IP:您无权察看 2013-6-25 16:10:33 | [全部帖] [楼主帖] 楼主

负责人:Lesslie
原文链接:http://docs.eoeandroid.com/tools/devices/emulator.html

Android sdk中有一个可以运行在计算机上的虚拟的移动设备模拟器。它能让你不使用任何物理设备来规划成型、开发、测试你的android应用。

除了不能够打电话,android模拟器能够模拟一个实际移动设备的所有硬件和软件特性。模拟器提供了一系列的导航和控制键,你可以利用鼠标或键盘 “按”这些键来为你的应用程序触发一些事件。同时还提供了一个可以展示你开发的和其他正在运行的活动的android应用程序的屏幕。

http://docs.eoeandroid.com/images/emulator-wvga800l.png


为了更加便利开发和测试你的应用程序,你可以利用Android Virtual Device(AVD)配置模拟器。AVDs可以让你定义所模拟设备的某些硬件方面,也允许你创建多种配置以测试各种Android平台和硬件组合。一旦你的应用程序运行在模拟器上,该程序便可以通过Android平台的服务来调用其他应用程序、访问网络、播放视频和音频、存储或获取数据、通知用户、渲染图片切换和主题等。

模拟器同时也有各种调试功能,比如日志输出控制台、模拟应用程序的中断(像收到短信息或者电话呼入)、和模拟延迟效应以及网络数据损耗。

* Overview*


Android模拟器是一个提供可运行Android应用程序的虚拟移动设备的应用程序。它运行一个完整的底至内核层级的android系统栈,包括一系列可以通过你的应用程序访问的预装程序(比如打电话应用)。你可以通过配置AVD来选择所要运行的系统版本,同时也可以定制模拟器的皮肤和按键布局。在启动或是运行时,可以利用各种命令和选项来控制其行为。
通过SDK管理器获取的可用android系统镜像中包含Android Linux内核、本地库、Dalvik VM和各种android包(比如android框架和预装程序)的代码,模拟器能够提供机器码到开发机器操作系统和处理架构的动态转换。

Android模拟器支持很多常见于移动设备的硬件特性,包括:

  • 一个ARMv5 CPU和相应的内存管理单元(MMU)
  • 一个16位的液晶显示器
  • 一个或多个键盘(一个基于qwerty键盘和相关的Dpad /电话按钮)
  • 具有输出和输入功能的声音晶片
  • 闪存分区(在开发机器上通过磁盘映像文件模拟)
  • 一个包括一个模拟的SIM卡的GSM调制解调器
  • 一个相机,它使用一个网络摄像头连接到您的开发计算机
  • 诸如加速度的传感器,它使用来自一个用usb连接的Android设备的数据

以下部分为开发Android应用更详细地描述模拟器及其用法。

* Android Virtual Devices and the Emulator*


使用使用模拟器,您首先必须创建一个或多个AVD配置,在每一个配置,您要指定其运行在模拟器Android平台以及你想要使用的模拟器的硬件设置选项和皮肤。然后,当您启动模拟器,您可以指定您想要加载的AVD配置。

每个AVD作为一个独立的设备运行,有各自的私有存储用户数据,SD卡,等等。当你启动AVD配置的模拟器时,它会自动从AVD目录加载用户数据和SD卡数据。默认情况下,该模拟器将用户数据,SD卡数据和缓存存储在AVD目录。

您可以使用SDK里的 AVD Manager UI或android工具创建和管理AVD。关于如何设置AVD的完整信息,请参阅 Managing Virtual Devices。

* Starting and Stopping the Emulator*


在开发和测试应用程序期间,您可以在Android模拟器安装和运行您的应用程序。您可以从命令行将模拟器器作为一个独立的应用程序启动,或者你可以从您的Eclipse开发环境内部运行它。在这两种情况下,您可以像本文档中描述的那���指定所要加载的AVD配置和您想要使用的任何启动选项。

您可以在一个单独的实例仿真器运行您的应用程序,或者根据您的需要,您也可以启动多个模拟器实例来将您的应用程序运行在多个模拟设备上。您可以使用模拟器的内置命令在模拟器实例之间模拟GSM电话或短信,您可以设置网络重定向,允许模拟器彼此发送数据。有关更多信息,请参见Telephony EmulationSMS Emulation, 和Emulator Networking

从命令行中启动的一个模拟器,定位到SDK的tools/文件夹。输入emulator命令如下:

emulator -avd []


这初始化模拟器,加载AVD配置和显示模拟器窗口。更多有关用于模拟器的命令行选项信息,请参阅Android Emulator 工具参考。

* 注意* :您可以并发地运行多个模拟器实例,但是每个都有自己的AVD配置和用户数据的存储区域,SD卡,等等。

如果你用Eclipse中开发, 当您运行或调试应用程序时,Eclipse ADT插件自动地启动模拟器并安装您的应用程序。在在Run/Debug对话框中的Target选项卡中,您可以指定模拟器启动选项。当模拟器正在运行时,可以按照稍后描述发出控制台命令。

如果你不使用Eclipse,更多关于如何安装您的应用程序的信息参见Installing Applications on the Emulator 。

停止一个模拟器实例,关闭模拟器的窗口就可以了。

对于模拟器启动命令和键盘快捷键映射的参考,请参见Android Emulator

* Installing Applications on the Emulator*


如果你没有应用Eclipse或ADT插件,您可以使用adb工具安装将您的应用程序模拟器上。在安装应用程序之前,您需要像在 Building and Running Apps描述的一样构建和打包成一个.apk文件。一旦应用程序被��装,您可以如前面所描述的从命令行使用任何必要启动选项启动模拟器。当模拟器运行时,您还可以连接到模拟器实例的控制台,以根据需要发出命令。

当你更新你的代码,你定期打包并将其安装在模拟器。重新启动过程中,模拟器在用户和数据的磁盘分区保存应用程序和它的状态数据。为了确保应用程序正常运行你的更新,你可能需要删除模拟器的用户和数据。为此,用-wipe-data参数启动模拟器。更多关于用户和数据分区和其他模拟器存储的信息,参见Working with Emulator Disk Images

为了使Android模拟器运行得更快和更灵敏,你可以采用配置选项、具体的Android系统映像和硬件驱动结合来配置它进行硬件加速。

* Configuring Graphics Acceleration*


* 注意* :在SDK工具修订17,模拟器的图像加速仍不稳定,使用这个特性要注意不兼容和错误。

模拟器图形加速利用您的开发计算机的图形硬件,特别是它的图形处理单元(GPU),使屏幕绘图更快。使用图形加速特性,您必须安装有以下版本的Android开发工具:

  • Android SDK工具,修订17或更高
  • Android SDK平台API 15,修订3或更高

使用Android SDK管理器来安装这些组件:

* 注意* :并不是所有的应用程序都兼容图形硬件加速。特别是,浏览器应用程序和使用WebView组件的应用程序不兼容图形加速。

配置一个AVD使用图形加速:

  1. 确保你安装必需的SDK组件 (上面列出的)。
  2. 启动AVD管理器并用* Target_'值为'_Android 4.0.3 (API Level 15)* ,修订3或更高创建一个新的AVD 。
  3. 确保你安装有必需的SDK组件 (上面列出的)。
  4. 如果你想为这个AVD默认启用图形加速,在硬件部分,单击* New_',选择'''GPU emulation''' 并将值设置为'_Yes* * 注意* :你也可以启动模拟器时,按照在下一个部分中描述使用的命令行选项启用图形加速。
  5. 命名AVD并选择任何其他配置选项 注意:请不要选择* Snapshot: Enabled* 的选项。图形加速启用时模拟器不支持快照
  6. 单击* Create AVD* 保存模拟器配置。

如果您为你的AVD设置* GPU emulation_'为'''Yes''', 那么当您运行它时图形加速是自动启用。如果你不在您创建AVD中启用'_GPU emulation* ,你在运行时也可以启用它。

在运行时为AVD启用图形加速:

  • 如果您从命令行中运行模拟器,只需加上-gpu 参数:

emulator -avd -gpu on

* 注意* :您必须指定一个使用target 为Android AVD 4 0 3(API级别15,修订3)或更高的系统映像的配置。图形加速并不适用于早��系统映像。

  • 如果您从Eclipse运行仿真器, 使用一个 -gpu on 选项运行你的Android应用程序:
  • 在Eclipse中,点击你的Android项目文件夹,然后选择* Run > Run Configurations…*
  • 在* Run Configurations* 的对话框左边面板中,选择您的Android项目运行配置或创建一个新的配置。
  • 单击* Target* 选项卡。
  • 选择您在前面步骤中创建的AVD。
  • 在* Additional Emulator Command Line Options* 选项区域中,输入: -gpu on
  • 使用这个运行配置运行您的Android项目。

'Configuring Virtual Machine Acceleration'


* 注意* :在SDK工具修订17,模拟器的虚拟机加速特性处于试验阶段; 当使用这个特性时要注意不兼容和错误。
许多现代cpu提供高效运行虚拟机(VM)的扩展。利用这些Android模拟器的扩展需要一些额外的您的开发系统配置,但可以显著提高执行速度。在尝试使用这种类型的加速前,你应该首先确定您的开发系统的CPU支持以下虚拟化扩展技术之一:
* 英特尔虚拟化技术(VT,VT x、vmx)扩展
* AMD虚拟化(AMD v, SVM)扩展(只支持Linux)
你的CPU厂商的规范应该显示它是否支持虚拟化扩展。如果你的CPU不支持这些虚拟化技术,那么您不能使用虚拟机加速
* 注意* :虚拟化扩展通常是通过你的计算机的BIOS来启用和默认情况下是被关闭了的。检查您的系统主板的文档找出如何启用虚拟化扩展
一旦你确定你的CPU支持虚拟化扩展,确保你可以工作在加速虚拟机内运行模拟器这些额外的条件下:
* * x86 AVD Only* -你必须使用一个x86系统映像的AVD。基于arm系统映像AVD不能使用这里描述的模拟器配置加速。
* * Not Inside a VM* -你不能在另一个虚拟机运行一个vm加速模拟器,比如VirtualBox或vmware托管虚拟机。你必须直接在您的系统硬件运行模拟器。
* * Other VM Drivers* -如果您正在您的系统上运行另一个的虚拟化技术,比如VirtualBox或VMWare,你可能需要在运行一个加速模拟器之前卸载驱动这种虚拟机主机软件。
* * OpenGL® Graphics* -OpenGL ES图形模拟的表现也许不能作为一个实际的设备运行在同一层级上
使用模拟器虚拟机加速,您需要以下版本的Android开发工具。使用Android SDK管理器来安装这些组件:
* Android SDK工具,修订17或更高
* 基于x86的Android系统映像
如果您的开发环境中满足所有的运行一个vm加速模拟器的要求, ,您可以使用AVD管理器来创建一个基于x86的AVD配置:
1.Android SDK管理器中,确保你安装有一个基于x86系统映像。如果你没有安装一个x86系统映像,选择并安装
它。
* 提示* :系统映像之下在SDK管理器列出每个API级别。x86系统映像不得用于所有API级别。
2.启动AVD管理器并用* CPU/ABI '值为x86创建一个新的AVD。您可能需要选择一个特定的'''Target''' 值,或选择一个'''Target''' ,然后选择一个特定的'

CPU / ABI* 选项.
3.命名模拟器实例并选择任何其他配置选项。
4.单击创建AVD保存模拟器配置。

'Configuring VM Acceleration on Windows'


Windows虚拟机加速需要安装英特尔硬件加速执行管理器(英特尔HAXM)。该软件需要一个英特尔虚拟化技术(VT)支持的CPU和下列操作系统之一:

• Windows 7 (32/64-bit)
• Windows Vista (32/64-bit)
• Windows XP (32-bit only)


安装虚拟驱动程序:
1.启动Android SDK管理器,选择Extras,然后选择 Intel Hardware Accelerated Execution Manager。
2.下载完成后,执行/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe.
3.按照屏幕上的说明来完成安装。
4.安装完成后, 通过打开一个命令提示符窗口并运行以下命令确认虚拟驱动程序正确操作:

sc query intelhaxm


您应该看到一个包括以下信息的状态消息:

SERVICE_NAME: intelhaxm
...
STATE : 4 RUNNING
...


运行一个基于x86VM加速的模拟器:
* 如果您正在从命令行运行模拟器,就指定一个基于x86的AVD:

emulator -avd


* 注意* :您必须提供一个基于x86的配置名字,否则AVD配置VM加速将不会启用。
如果您正在从Eclipse运行模拟器, 用一个基于x86的AVD运行你的Android应用程序:
1.在Eclipse中,点击你的Android项目文件夹,然后选择* Run > Run Configurations...* .
2.在左边面板的 * Run Configurations* 对话框中,选择您的Android项目运行配置或创建一个新的配置。
3.单击* Target* 选项卡。
4.选择您在前面创建的基于x86的AVD。
5. 使用这个运行配置运行您的Android项目。
你可以通过再次运行安装程序调整可用的内存数量来适应英特尔HAXM内核扩展。
你可以通过卸载它来停止使用虚拟驱动程序。重新运行安装程序或使用控制面板删除该软件。

* Configuring VM Acceleration on Mac*


在Mac上虚拟机加速需要安装英特尔硬件加速执行管理器(英特尔HAXM)的内核扩展,以便Android模拟器使用CPU虚拟扩展。内核扩展兼容Mac OS X Snow Leopard(版本10.6.0)和更高的。
安装英特尔HAXM内核扩展:
1.启动Android SDK管理器,选择 Extras,然后选择* Intel Hardware Accelerated Execution Manager* 。
2.下载完成后,执行/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg.
3.双击* IntelHAXM.mpkg* 图标开始安装。
4.按照屏幕上的说明来完成安装。
5.安装完成后, 通过打开一个终端窗口并运行以下命令确认新的内核扩展正确操作:

kextstat | grep intel


您应该看到包含以下扩展名的一个状态消息,这表明内核扩展已被加载:

com.intel.kext.intelhaxm


运行一个基于x86的VM加速模拟器:
* 如果您正在从命令行运行模拟器,就指定一个基于x86的AVD:

emulator -avd


* 注意* :您必须提供一个基于x86的配置名称,否则AVD配置VM加速将不会启用.
如果您正在从Eclipse运行模拟器, 用一个基于x86的AVD运行你的Android应用程序:
1.在Eclipse中,点击你的Android项目文件夹,然后选择* Run > Run Configurations...* ,
在左边面板的Run Configurations对话框中,选择您的Android项目运行配置或创建一个新的配置。
2.单击* Target * 选项卡
3.选择您在前面创建的基于x86的AVD.
4.使用这个运行配置运行您的Android项目。
你可以通过重新运行安装程序调整可用的内存数量适应英特尔HAXM的内核扩展。
你可以通过卸载它来停止使用虚拟内核驱动程序。删除它之前,关闭任何运行x86模拟器。卸载虚拟化内核驱动程序, 在一个终端窗口运行以下命令:

sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh
* Configuring VM Acceleration on Linux*


基于linux的系统通过KVM软件包支持虚拟机加速。遵循 您的Linux系统的instructions for installing KVM说明,并验证KVM是启用的。除了遵循安装指令,要注意这些配置要求:
* KVM需要特定的用户权限运行, 根据KVM安装说明确保您有足够的权限。
* 如果你在您的Linux平台使用了另一个虚拟技术, 在运行x86模拟器前卸载它的内核驱动程序。例如,驱动程序是vboxdrv。
运行一个基于x86模拟器的VM加速度:
* 如果你从命令行正在运行模拟器,用一个基于x86 AVD和包括KVM参数启动模拟器:

emulator -avd -qemu -m 512 -enable-kvm


* 注意* :您必须提供一个基于x86的配置名称,否则AVD配置VM加速将不会启用。
如果您正在从Eclipse运行模拟器, 用一个基于x86AVD和包括KVM选项运行你的Android应用程序:
1.在Eclipse中,点击你的Android项目文件夹,然后选择* Run > Run Configurations...*
2.在左边面板的* Run Configurations* 对话框中,选择您的Android项目运行配置或创建一个新的配置。
3.单击* Target* 选项卡。
4.选择您在前面创建的基于x86的AVD。
5.在* Additional Emulator Command Line Options* 字段中,输入:

-qemu -m 512 -enable-kvm


使用这个运行配置运行您的Android项目。
* 重要* :当使用-qemu命令行选项,确保它是最后一个参数在您的命令。所有后续的选项将被解释为qemu特定的参数。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论