Android模拟器:如何发现是否使用了硬件虚拟化功能



从Android SDK Tools版本17开始,Android模拟器支持使用硬件虚拟化功能(Intel VT、VT-x、vmx和AMD-V、SVM),这将大大加快基于x86的模拟器映像:http://developer.android.com/guide/developing/devices/emulator.html#accel-vm

我安装了所有必要的组件:

  • 最新的SDK工具
  • "英特尔硬件加速执行管理器"(并通过执行IntelHaxm.exe安装)
  • Intel Atom x86系统映像(提供API 10和API 15映像)

然后我用那个图像创建了一个新的AVD,但在执行速度方面我"感觉不到"任何差异。

因此,我的问题是:如何确定是否使用了硬件虚拟化功能

如果没有,需要做些什么才能使用它?

我知道它是由BIOS启用的,因为我可以在VirtualBox中运行Windows 64位虚拟机。此外,我已使用Microsoft®硬件辅助虚拟化检测工具对其进行了验证。

在模拟器加载过程中,您应该看到以下行:

〔2012-03-26 14:06:22-模拟器〕HAX正在工作,模拟器运行在快速virt模式

在OS X Lion上完成本教程之后,当启动模拟器时,我在控制台中看到以下内容:

./emulator-x86 -avd Test3                                                                                                              
HAX is working and emulator runs in fast virt mode

在使用Q6600 Intel处理器和相当过时的华硕P5E-VM SE主板的Windows 7 32位上也出现了同样的问题。主板甚至没有虚拟化开关,尽管英特尔工具:http://www.intel.com/support/processors/tools/piu/sb/CS-014921.htm表示启用了VT技术。罪魁祸首是数据执行阻止只对windows服务启用,我已经对所有程序启用了它,在计算机重新启动后,在Eclipse的Android控制台中收到了以下消息:HAX正在工作,模拟器在快速virt模式中运行

DEP设置位于:位于Windows/控制面板/系统&安全/系统/高级系统设置/高级选项卡/性能/数据执行预防选项卡

我在这里收到了检查的想法:https://developer.tizen.org/sdk/haxm虽然只使用了标准图像(而不是Tizen图像)。

不得不说,在虚拟化模式下加载模拟器并不像在英特尔宣传视频中那样令人印象深刻:http://www.youtube.com/watch?v=pt9IeJ777zw但应用程序的上传(我的相当大~5MB)和模拟器的总体响应性非常重要。不能说它像本地计算机一样工作(有时会有明显的滞后),但它明显更快。不过它消耗了很多内存(我有4GB,当模拟器运行时只有14MB可用)。

Windows平台的快速解决方案,以管理员身份启动CMD并键入以下命令

SC query INTELHAXM

你应该看到这样的输出(如果硬件加速已经启动并运行)

SERVICE_NAME: intelhaxm
    TYPE               : 1  KERNEL_DRIVER
    STATE              : 4  RUNNING
                            (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
    WIN32_EXIT_CODE    : 0  (0x0)
    SERVICE_EXIT_CODE  : 0  (0x0)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

相关内容

最新更新