现在换了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是否在运行:
1 2 |
jay@Jay-Air:~ $kextstat | grep intel 109 0 0xffffff7f820d3000 0x11000 0x11000 com.intel.kext.intelhaxm (1.0.6) <7 5 4 3 1> |
3. 启动和停止HAXM:
启动和停止HAXM的命令如下:
1 2 3 4 5 |
# Start: sudo kextload –b com.intel.kext.intelhaxm #Stop: sudo kextunload –b com.intel.kext.intelhaxm |
4. 在Eclipse(ADT)中使用HAXM加速:
如果已经确认HAXM模块已经加载,则Emulator就会默认使用它。
在Eclipse中使用Emulator运行App时,会看到“HAX is working and emulator runs in fast virt mode”的打印信息。
1 2 3 4 5 6 7 |
[2013-10-23 00:02:46 - App2] ------------------------------ [2013-10-23 00:02:46 - App2] Android Launch! [2013-10-23 00:02:46 - App2] adb is running normally. [2013-10-23 00:02:46 - App2] Performing com.jay.app2.MainActivity activity launch [2013-10-23 00:02:46 - App2] Automatic Target Mode: launching new emulator with compatible AVD 'Android-4.3' [2013-10-23 00:02:46 - App2] Launching a new emulator with Virtual Device 'Android-4.3' [2013-10-23 00:02:47 - Emulator] 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.