我看到一篇文章声称:使用英特尔的硬件加速执行管理器(HAXM)驱动可以对安卓模拟器进行加速。这让我很兴奋,所以决定去验证这个说法。这篇博文就是我验证的过程。
我使用的工具:
– Andorid SDK r20.0.3
– Intellij Community Edition 11.1.3
根本上说,这个特别的“加速”来自Intel一个特别的“x86 Atom System Image”,这个东西利用HAXM驱动可以让模拟器有更好的表现。在这里我不会重复一些技术的细节,你可以进入下面的链接查看更多信息。
警告:这个技巧仅在Intel的硬件下实现,而且需要同时启用“Virtualization Technology for Directed I/O (VT-d)”(一般通过BIOS进行设置)。
此外, “x86 Atom System Image”目前(这篇博客发布的时候)仅支持下列安卓版本,2.3.3 (Gingerbread), 4.0.3 (ICD)以及4.1 (Jelly Bean)
在开始前,请将环境变量ANDROID_SDK_HOME设置为对应Android SDK的根目录。这样可以避免许多令人头痛的问题。
执行步骤:
- 通过Android SDK Manager下载并安装相关的包。
- 创建一个安卓虚拟设备(AVD)。
- 在IntelliJ CE里建立一个Android Module Project。
- 用AVD测试部署安卓应用。
1、通过Android SDK Manager下载相关的包
启动SDK Manager并确认下面的东西已经安装就绪:
- Intel x86 Atom System Images(下面显示的是Android2.3.3版本)
- Intel x86 Emulator Accelerator (HAXM)
接下来,你需要手动安装HAXM driver。在Android SDK的根目录下,找到extras\intel\Hardware_Accelerated_Execution_Manager,执行
IntelHaxm.exe进行安装。
2、创建一个安卓虚拟设备(AVD)
启动AVD Manager并创建两个配置相同但安卓版本不同的AVD:
- DefaultAVD233 – Android 2.3.3 – API Level 10
- IntelAVD233 – Intel Atom x86 System Image (Intel Corporation) – API Level 10
3.在IntelliJ CE里建立一个Android Module Project
在IntelliJ里,新建一个Android Module类型项目。
在”Android SDK”下选择合适的Android platform。你需要指向你Android SDK下的根目录才能选择合适的构建版本,如下图所示选择Android2.3.3
确保“Target Device”选项设置成模拟器,然后点击“finish”完成。
4、使用AVD测试部署安卓应用
首先使用默认的Android2.3.3 AVD。
在IntelliJ的菜单栏上,选择”Run’>‘Edit Configurations…”,找到”Target Device”,在”Prefer Android Virtual Device”选项上选择”DefaultAVD233″。
然后运行这个安卓应用。过一会就可以看到虚拟器窗口显示”Hello World”信息。
要用Intel AVD来运行应用,就选择”IntelAVD233″。
让人兴奋的是,模拟器启动的速度(包括从IntelliJ点击”Run”到显示”Hello World”信息到模拟器上)发生了改变。下面是我用笔记本(Intel i3 380M、3GB RAM)记录的大致时间:
- DefaultAVD233:1分7秒
- IntelAVD233:35秒
哇,这样的提升(大约快了50%)是在还没有调整其它参数的情况下得到的。