文章目錄
- 1、在虛擬機器添加自訂解析度
- 2、修改grub的menu.lst
- 3、在debug mode下重啟Android-x86
- 1、安裝應用
- 2、卸載
Android-x86虛擬機器安裝配置網上有很多,但是全部說明白的確不多,希望這篇文章能把主要的配置介紹給您,協助您少走一些彎路。
本文分別針對VMWare和Virtual Box兩種虛擬機器介紹安裝配置方法,並描述了如何使用eclipse進行調試。
一、安裝Android-x86虛擬機器1、使用vmware安裝Android-x86
在http://www.android-x86.org/download下載安裝包,下載eeepc版本的iso檔案,本例以4.0 RC2版本為例。
運行vmware建立虛擬機器:
2、virtual box安裝Android-x86
在 Virtual Box 中建立一台新的機器:
- target OS(目標 OS): 選擇 Linux
- target OS version(目標 OS 版本): others
- 我選擇了 1GB 記憶體和 1 個 CPU(其他選項保留預設值)
- 增加一個新的硬碟:VDI drive,動態大小,512M
- 在 storage(儲存)選項中添加一個指向所下載 iso 鏡像的 CDROM
3、開始安裝
從 boot(啟動)菜單中選擇 install to hard disk(安裝到硬碟)。
接下來建立分區,依次選擇new、primary、bootable、write建立一個可引導的主要磁碟分割。
接下來兩步選擇yes,其中第二步為開啟GRUB管理員模式,可以用於偵錯工具。
二、Android-x86 有內建的快速鍵
較常用的有:
- Alt-F1 = 進入 console 模式
- Alt-F7 = 回到 GUI 模式
- Alt-F9 = 圖形介面
- Alt-F10 = 畫面旋轉 180 度
- Alt-F11 = 畫面向左旋轉 90 度
- Alt-F12 = 畫面向右旋轉 90 度
- Ctrl-P = 開啟Android設定畫面
- "Windows 鍵"相當於 Android 的 Home 按鈕。
- "Esc" 相當於 Android 的 Back 按鈕
- F3 相當於 Android 的 Search 按鈕
- 右邊的菜單鍵(win和ctrl中間的鍵) = Android菜單鍵
三、設定虛擬機器網路1、vmware設定
a、安裝虛擬機器時需要使用nat模式
b、如果/data/misc/dhcp目錄不存在,則進入console模式建立
# mkdir /data/misc/dhcp
c、關閉虛擬機器及vmware,修改vmx檔案
ethernet0.virtualDev = "vlance"
d、開啟虛擬機器,進入console模式
# su# dhcpcd eth0
e、設定dns,或者設定為與宿主機的dns一致的地址
# setprop net.dns1 8.8.8.8
2、virtual box設定:
使用橋接模式:
a、使用netcfg命令查看eth0裝置是否已經分配ip地址
b、開啟虛擬機器,使用ALT+F1進入console模式,輸入su切換root使用者
c、指定ip地址,執行如下指令碼,ip地址需要和物理主機在同一個網段中
# ifconfig eth0 192.168.120.200 netmask 255.255.255.0 up
將物理主機網關加入路由表
# route add default gw 192.168.120.254 dev eth0
d、設定dns,或者設定為與物理主機的dns一致的地址,如202.106.196.115
# setprop net.dns1 8.8.8.8
另外需要特別注意的是,如果豌豆莢等進程處於啟動狀態,網路設定會失敗,使用netcfg命令會發現根本沒有eth0裝置。
所以在安裝虛擬機器之前一定要停止豌豆莢等軟體。
如果使用NAT模式,需要使用dncpcd自動分配ip地址,dns要和物理主機一樣,樣本如下:
# dhcpcd# ifconfig eth0 up# setprop net.dns1 202.107.117.11
另外還需要配置連接埠轉寄
連接埠轉寄也可以在物理主機virtual box目錄下使用如下命令:
# VBoxManage modifyvm "Your Android VB name" --natpf1 adb,tcp,*,5555,*,5555
3、使設定長期生效
在console模式下的配置資訊似乎不會儲存,使用以下方法可以保證設定一直生效
# Vi /etc/init.sh
在檔案末尾增加如下配置:
ifconfig eth0 192.168.120.200 netmask 255.255.255.0 uproute add default gw 192.168.120.254 dev eth0setprop net.dns1 202.106.196.115
四、配置解析度,可以分別類比手機和平板行動裝置
Virtual box可以配置解析度,vmware還沒有很好的辦法,因此以Virtual box為例。
1、在虛擬機器添加自訂解析度
在虛擬機器關閉以後進行。
方法一:對應的虛擬機器的vbox檔案的“<ExtraData>”下新開一行,添加以下內容
<ExtraDataItem name="CustomVideoMode1" value="480x800x16"/><ExtraDataItem name="CustomVideoMode2" value="320x480x16"/>
方法二:執行命令,其中“VM name”替換為你自己的虛擬機器的名字
在dos模式下進入VirtualBox安裝目錄,預設為C:\Program Files\Oracle\VirtualBox,執行如下命令
# VBoxManage setextradata "VM name" "CustomVideoMode1" "480x800x16"# VBoxManage setextradata "VM name" "CustomVideoMode2" "320x480x16"
2、修改grub的menu.lst
啟動虛擬機器,到debug mode下
以 RW 模式重新掛載分區
# mount -o remount,rw /mnt
編輯檔案:
# vi /mnt/grub/menu.lst
如果是手機解析度則複製MDPI的幾行,平板解析度則複製HDPI的內容。把title改為自己想要的啟動項名字,如“Android-x86 480×800x16”,在“kernel”後加上:
UVESA_MODE=480x800
320×480的解析度也類似進行。
3、在debug mode下重啟Android-x86
運行命令
# /system/bin/reboot
即可
五、配置eclipse允許使用虛擬機器遠端偵錯開發1、查詢ip地址
進入cosole模式,使用netcfg或ip命令查詢虛擬機器的ip地址:
其中eth0表示虛擬機器的網路裝置,後面的ip地址即為虛擬機器的ip地址。
2、配置eclipse
使用Alt+F7返回圖形介面。
開啟eclipse,進入android開發外掛程式的設定介面,選擇ddms,勾選 Use ado host, 並在ADT host value 一欄填寫虛擬機器的ip地址,具體介面請參看:
開啟devices視圖,如果未載入devices視圖,可以使用如下方法開啟devices視圖
在devices視圖中選擇重啟adb:
或者也可以使用命令列重啟adb,新版的adb命令位於platform-tools目錄下:
# adb kill-server# adb start-server
重新啟動後可以看到虛擬機器裝置已經在列表中了
3、設定項目run或debug參數
運行或偵錯工具時就可以選擇虛擬機器作為調試裝置了
如果eclipse找不到虛擬機器裝置,請檢查系統是否安裝豌豆莢等android串連程式,如果安裝需要停止相關進程。
六、配置SD卡
配置SD卡可以使用多種方式。
1、將檔案偽裝成 SD 記憶卡
在console模式下執行如下指令碼:
# dd if=/dev/zero of=/data/sdcard.img bs=1024 count=65536# losetup /dev/block/loop7 /data/sdcard.img# newfs_msdos /dev/block/loop7
其中65536表示64MB的SD卡,可以修改此數字增大SD卡大小
重新啟動虛擬機器進入debug模式,以 RW 模式重新掛載分區
# mount -o remount,rw /mnt
編輯檔案:
# vi /mnt/grub/menu.lst
向 kernel 中添加一個參數:
SDCARD=/data/sdcard.img
2、使用獨立的分區
首先需要在 VirtualBox 中建立一個新的硬碟,然後將其配屬給 VM:
然後以debug模式啟動 VM,建立的分區預設掛載為/dev/sdb檔案
建立分區前可以查詢分區情況:
# fdisk -l /dev/sdb
使用 fdisk 建立一個新的分區。分區建立完成後,對它進行格式化:
# fdisk /dev/sdb
該命令後續操作包含如下參數:
- 輸入 m 顯示所有命令列示。
- 輸入 p 顯示硬碟分割情形。
- 輸入 a 設定硬碟啟動區。
- 輸入 n 設定新的硬碟分割區。
- 輸入 e 硬碟為[延伸]分割區(extend)。
- 輸入 p 硬碟為[主要]分割區(primary)。
- 輸入 d 刪除硬碟分割區屬性。
- 輸入 q 結束不存入硬碟分割區屬性。
- 輸入 w 結束並寫入硬碟分割區屬性
輸入n開始建立分區
輸入p建立主要磁碟分割
此步驟詢問分區的序號,因為sdb還沒有分區,因此可以選擇1
輸入開始的塊地址,預設即可
設定結束的塊地址,該地址決定分區的大小,具體可以根據分區總大小以及此處提供的塊數量
輸入w寫入分區並退出。
使用fat32位格式化分區:
# newfs_msdos /dev/sdb1
編輯 menu.lst 檔案
# vi /mnt/grub/menu.lst
添加kernel參數:
SDCARD=sdb1
七、安裝應用1、安裝應用
如果未串連裝置,可以在物理主機的命令列模式下使用如下命令串連
# adb connect 192.168.11.12
可以使用如下命令安裝apk:
# adb install -r HelloWorld.apk
但有時安裝的時候報如下錯誤:
more than one device and emulator
可以使用如下方法:
尋找裝置:
# adb devicesList of devices attachedemulator-5554 device
安裝
# adb -s emulator-5554 install -r HelloWorld.apk
2、卸載
adb uninstall HelloWorld.apk
或者直接刪除檔案
# adb -s emulator-5554 shell# cd /data/app# rm HelloWorld.apk# exit
刪除系統應用:
adb remount (重新掛載系統磁碟分割,使系統磁碟分割重新可寫)。adb shellcd system/apprm *.apk