我看到一篇文章聲稱:使用英特爾的硬體加速執行管理器(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%)是在還沒有調整其它引數的情況下得到的。