構建Android在Windows上的x86模擬器(上)


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入門之--各類問題總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM