為什麼Android虛擬機器比iOS和WP7的虛擬機器要慢很多呢?原因如下:
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。
綜上所述,慢的一個主要原因就是虛擬機器不是跑在x86上而是類比的ARM,有沒有辦法弄個x86的Android呢?
答案是當然有———開源項目Android-x86,這個牛B的開源項目將Android移植到了x86平台,系統啟動並執行時候不再需要類比成ARM,這樣就能直接將Android裝在PC或虛擬機器上流暢的運行了。
萬事俱備,只欠東風了,下面我就來講一下我使用Android-X86和VirtualBox打造手機開發模擬器的整個流程
1:先下載Android-x86系統鏡像檔案 http://www.android-x86.org/download
這裡要提一點,如果你要下最新的4.0,請下載android-x86-4.0-eeepc-20111209.iso 這個版本,其他的都有bug,開機後會不斷的crash,注意是09
2.在VirtualBox上建立虛擬機器
作業系統選擇Linux,版本選擇Linux 2.6
建立虛擬硬碟
選擇第一就可 VDI
接下來:
建立好以後就ok了
建立好以後還需要一些配置:
如果希望聽到聲音,則這樣設定:
關鍵的網卡設定:
設定好以後就可以點啟動進行android的安裝了
選擇install,建議先選第一個進入android系統,如果進去不報錯再安裝,這樣保險一點
Create/Modify partitions
選擇 NEW 來建立磁碟
屬性請選擇Primary
預設即可
選擇Bootable
只管打yes就行,雖然s看不到
退出以後就能看到你剛才分的區了,然後把android裝到這個區裡就可以了
一路yes
選擇sd分配sd
然後重啟就行了
在設定裡把啟動順序調整一下,如果不想費勁,把光碟機裡的iso路徑去了就可以了,因為預設是先從光碟片載入的
搞定這些直接點擊 開始
選擇進入系統
這樣你的滑鼠就能進入到模擬器中了
模擬器和你真機滑鼠切換的快速鍵在這裡設定
這裡我選擇了左 ctrl
這樣就ok了
但是有朋友可能要問,如果我偵錯工具,怎麼讓eclipse自動打包到我們的x86虛擬機器上呢?
進入android系統的所有應用裡
有了ip就好辦了,很多人是不是和我一樣想到了adb connect
done,搞定,進到eclipse的DDM裡面
這樣就可以開發了,速度如飛啊,無論打包還是運行!