為什麼Google提供的Android的模擬器沒有iOS和WP7模擬器那麼快?

技術牛人如林的Google為毛到現在還給我們提供了一款慢的讓你要崩潰Android模擬器?而蘋果微軟的iOS、WP7模擬器卻都能達到和真機一樣速度?


2012/3/25 更新:

這個問題已經不成立了,Android SDK 從版本號 17 開始,已原生支持針對 x86 架構的硬體虛擬化。請各位開發者儘快更新到最新版本的 SDK。

---------------------------------------------------------------------------

慢的原因有三:

1. Android 模擬器模擬的是 ARM 的體系結構(arm-eabi),而 iOS 和 WP7 的模擬器的目標體系結構是 x86 的,另外 iOS 的模擬器中運行的 App 也是編譯為 x86 的。這樣一來 Android 模擬器需要做一些額外的二進位翻譯工作。

2. Android 模擬器用的是 QEMU 的全系統模式(full system),也就說它模擬時需要啟動整個 GUEST 系統,初始化各種模擬設備。相反的,iOS 和 WP7 的模擬器只是 user-mode 的模擬。

3. 在 Android 模擬器之中還需要跑一個 Dalvik VM,用以執行 Android 應用的 bytecodes。

Android 模擬器的優點:

1. 全系統模擬,對目標設備的模擬更加精確,與真實設備更為接近。

2. 方便底層開發,包括 Android 系統中 kernel 和驅動的開發。

3. 移植應用到 Android 系統時,可以用以驗證和調試交差編譯的二進位文件。

相應的缺點:

1. 應用運行速度慢。

2. 模擬器啟動速度慢。

未來的可能:

1. 將 Android 系統移植到 x86 上,再用常見的各種虛擬機(VMWare, Virtual Box 等)對其進行模擬,但前提是你的應用中不涉及到 native code:http://www.android-x86.org/


推薦閱讀:

TAG:移動互聯網 | Android開發 | 谷歌Google | Android |