我看到一篇文章声称:使用英特尔的硬件加速执行管理器(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的根目录。这样可以避免许多令人头痛的问题。

执行步骤

  1. 通过Android SDK Manager下载并安装相关的包。
  2. 创建一个安卓虚拟设备(AVD)。
  3. 在IntelliJ CE里建立一个Android Module Project。
  4. 用AVD测试部署安卓应用。

1、通过Android SDK Manager下载相关的包

启动SDK Manager并确认下面的东西已经安装就绪:

  • Intel x86 Atom System Images(下面显示的是Android2.3.3版本)
  • Intel x86 Emulator Accelerator (HAXM)

android manager

接下来,你需要手动安装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

Android Virtual Device Manager

3、在IntelliJ CE里建立一个Android Module Project

在IntelliJ里,新建一个Android Module类型项目。

在“bVb8P5Android 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%)是在还没有调整其它参数的情况下得到的。


原文 Turbo-charge your Android emulator for faster development
翻译 伯乐在线 - hanson


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity