在Mac OS X上使用HAXM加速Android Emulator

现在换了Mac Air作为工作笔记本,偶尔还是会在Mac上使用Android Emulator跑跑Android App之类的;为了解决Emulator启动和运行很慢的问题,当然使用以前同事对Mac上android emulator进行加速的软件HAXM(Hardware Accelerated Execution Manager)。HAXM利用硬件上的Intel VT技术,加速emulator的运行,类似于KVM加速QEMU。
本文中的Mac系统是10.8.4;HAXM版本是1.0.6。
注意:目前最新的HAXM版本在最新的(2013.10.22发布的)Mac OS X 10.9 “Mavericks”不能正常运行哦,得等HAXM的新版本吧。(2013.11.13:Intel已经推出了最新版本的HAXM,针对Mac OS X 10.9做了一个hotfix,已经可以正常使用了,可以到官方网站下载:http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/ )

使用的基本步骤如下(更详细的,请阅读本文后面的参考资料):
1. 下载和安装HAXM
下载地址为:http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/
(或者使用Andorid SDK Manager来选择下载)
其安装步骤,也没啥特别的,和多数Mac程序一样,一步一步安装即可。

2. 查看HAXM:
安装好HAXM后,默认就是真长使用了,可以使用如下命令查看HAXM是否在运行:


3. 启动和停止HAXM:
启动和停止HAXM的命令如下:

4. 在Eclipse(ADT)中使用HAXM加速:
如果已经确认HAXM模块已经加载,则Emulator就会默认使用它。
在Eclipse中使用Emulator运行App时,会看到“HAX is working and emulator runs in fast virt mode”的打印信息。

用命令行启动Emulator也是一样可以默认使用HAXM的。

根据本人的体验,在Mac上我的一个image在emualtor启动中不用HAXM,启动时间超过2分钟,使用HAXM时,启动时间约20~30秒。可见HAXM的加速功能还是很明显的;不过,我感觉还是我在Ubuntu上使用KVM加速Android Emulator更快一些,启动时间一般在10秒左右。

注意:使用HAXM的Emulator可能出现卡住,不能弹出模拟器窗口,这可能是与本机运行的VirtualBox冲突的问题(我就遇到了问题),将VirtualBox关闭即可正常了。后来发现Intel官方网站已经对该问题进行了描述。
Known issue:
The Android Emulator may freeze when HAXM and VirtualBox v4.2.14 and newer are run in parallel on the same machine. Our testing shows that previous versions of VirtualBox, v4.2.12 and earlier, don’t exhibit the issue.

参考资料:
http://software.intel.com/en-us/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-mac-os-x
http://developer.android.com/tools/devices/emulator.html#accel-vm

master

Stay hungry, stay foolish.

5 Comments

  1. kextstat | grep intel
    128 0 0xffffff7f82185000 0x11000 0x11000 com.intel.kext.intelhaxm (1.0.8)
    $ sudo kextload –b com.intel.kext.intelhaxm

    failed to load – (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8).
    com.intel.kext.intelhaxm failed to load – (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8).

    • 前面你已经查到了haxm已经load,就不需要再load它了,另外你的这个错误,我没遇见过,自己网上google一下吧。是不是你得重启一下Mac。

发表评论

电子邮件地址不会被公开。 必填项已用*标注