Android SDK內建的模擬器運行很慢,即使採用網上的一些方法為其分配比較大的記憶體仍舊無濟於事,這是由於其本身的構架而造成的:SDK內建的模擬器是運行在arm構架上的,那麼當模擬器運行在x86構架的Windows上的時候,這中間就多了一個轉換的過程,導致了SDK的模擬器在Windows上啟動並執行時候特別慢。那麼為了能流暢地運行模擬器,就可以想到使用基於x86的模擬器。筆者經過親身實驗,以下方法是可以的。
從http://www.android-x86.org下載Android x86的鏡像(可能需要翻牆)。(如果被牆,可以到android-x86下尋找相關下載)
從網站的Download頁面,可以選擇不同版本的Android鏡像,注意要選擇eeepc類型的鏡像才能在windows上運行。此處以Android 2.3 eeepc為例。
在Windows上安裝Virtual Box,筆者使用的是4.1.2的版本。
建立一個虛擬機器工程,類型選擇Linux,版本是Linux 2.6,自己定義一個名字代表工程名:
為虛擬機器分配記憶體,對於Android 2.x,一般512M足夠了。這裡筆者分配了1G的記憶體。
建立虛擬硬碟為HDD類型,一般用來開發的話,2G足夠了:
點擊“建立”,則可以在VirtualBox裡面看到建立好的虛擬機器檔案:
接下來編輯剛才建立好的虛擬機器,選擇該虛擬機器後,點擊“設定”按鈕,首先在“網路”頁面裡面,保證“啟用網路連接”被啟動,並選擇連線類型為“橋接網卡”,剩下的保持預設值好了,之所以這麼設定,是為了讓後面的eclipse調試時可以讓adb通過虛擬機器的ip進行串連。
和普通的安裝虛擬機器一樣,接下來需要載入Android iso:在“儲存”頁面中,選擇“控制器:IDE”下面的碟片標記,並從右邊“屬性”標籤內右側的按鈕中選擇一個虛擬光碟片,選擇剛剛下載的Android 2.3 eeepc的ISO:
完成後,啟動虛擬機器,等待虛擬機器視窗彈出,中間如果彈出其他的對話方塊,預設都先點擊“確定”好了:
從啟動菜單中,選擇最後一個,意即將Android x86系統安裝到虛擬機器硬碟上。開始的幾個選項都是讓你可以在不安裝Android的情況下,試用Android,類似Ubuntu的Live CD:
為Android x86系統建立分區:
建立一個Primary類型的sda分區,容量預設就最大(之前在VirtualBox中設定的HDD的容量--2G)好了:
並將其設定為Bootable,即可啟動模式:
設定完成後,最後不要忘記將上述設定寫入到當前的虛擬硬碟中(選擇Write後,輸入yes):
等待分區寫入完成後,就Quit:
返回分區建立頁面,選擇剛剛建立的分區,則Android x86將被安裝在這個分區上:
接下來一路Yes,等待Android系統寫入到虛擬硬碟中:
最後就是要為我們的Android系統建立一個虛擬SD卡了,注意,這裡分配的容量不要使用預設的最大容量,因為,這個容量中一部分已經被系統佔用了,如果你全部分配給SD卡,則之前的系統就白裝了。這裡筆者分配了一半的容量,即1024M:
待完成後就可以重啟了。當然如果你還記得剛才我們是在VirtualBox中通過載入iso引導安裝Android系統的話,這個時候你就必須修改VirtualBox的設定,使得虛擬機器的第一啟動是硬碟而不是光碟機:直接關閉當前的重啟視窗,在VirtualBox中修改虛擬機器的設定(在“系統”頁面中,勾選“啟動順序”中的選項,使得只有“硬碟”被選中即可):
完成後,即可啟動虛擬機器了,選擇HDPI或者MDPI,而Debug mode一般來說用不到:
啟動過程中彈出的對話方塊,預設都直接點擊“確定”即可,最終,Android的頁面出現了!
只不過,發現滑鼠無法點擊任何頁面。解決方案是,將滑鼠游標移動到Android螢幕內,然後按下鍵盤的Ctrl+Home按鍵組合,在彈出的菜單中選擇“控制”-〉“禁止自動獨佔滑鼠“。然後在螢幕內任意一處點擊一下,就可以出現滑鼠了。如果要從虛擬機器中出來,按下鍵盤右Ctrl鍵可。
現在建立的虛擬機器的解析度是寬屏的,且沒有像SDK模擬器一樣可以翻轉。如果想使得虛擬機器成為普通的手機豎屏,則需要修改VirtualBox的工程設定。請參考下篇。
參考文獻:
用Eclipse調試Android x86
android-x86 eclipse 網路設定(經驗)
Android-x86入門之--各類問題總結