[size=14.399999618530273px]分别针对VMWare和Virtual Box两种虚拟机介绍安装配置方法,并描述了如何使用eclipse进行调试。 [size=14.399999618530273px]VMware Workstation 9.0正式版下载(附注册机+序列号激活码):http://www.linuxidc.com/Linux/2012-11/73743.htm 一、安装Android-x86虚拟机1、使用vmware安装Android-x86[size=14.399999618530273px]在http://www.android-x86.org/download下载安装包,下载eeepc版本的iso文件,本例以4.0RC2版本为例。 [size=14.399999618530273px]运行vmware新建虚拟机:将内存调到512M。 2、virtualbox安装Android-x86[size=14.399999618530273px]在 Virtual Box 中创建一台新的机器: - target OS(目标 OS): 选择 Linux
- target OS version(目标 OS 版本): others
- 我选择了 1GB 内存和 1 个 CPU(其他选项保留默认值)
- 增加一个新的硬盘:VDI drive,动态大小,512M
- 在 storage(存储)选项中添加一个指向所下载 iso 镜像的 CDROM
3、开始安装[size=14.399999618530273px] [size=14.399999618530273px]从 boot(启动)菜单中选择 install to hard disk(安装到硬盘)。 [size=14.399999618530273px]接下来创建分区,依次选择new、primary、bootable、write创建一个可引导的主分区。 [size=14.399999618530273px]接下来两步选择yes,其中第二步为开启GRUB管理模式,可以用于调试程序。 二、Android-x86 有内建的快捷键[size=14.399999618530273px]较常用的有: - 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设置[size=14.399999618530273px]a、安装虚拟机时需要使用nat模式 [size=14.399999618530273px]b、如果/data/misc/dhcp目录不存在,则进入console模式创建 [size=14.399999618530273px]# mkdir /data/misc/dhcp
[size=14.399999618530273px] [size=14.399999618530273px]c、关闭虚拟机及vmware,修改vmx文件 [size=14.399999618530273px]ethernet0.virtualDev = "vlance"
[size=14.399999618530273px] [size=14.399999618530273px]d、开启虚拟机,进入console模式 [size=14.399999618530273px]# su # dhcpcd eth0
[size=14.399999618530273px] [size=14.399999618530273px]e、设定dns,或者设置为与宿主机的dns一致的地址 [size=14.399999618530273px] [size=14.399999618530273px]# setprop net.dns1 8.8.8.82、virtualbox设置:
使用桥接模式:
a、使用netcfg命令查看eth0设备是否已经分配ip地址
b、开启虚拟机,使用ALT+F1进入console模式,输入su切换root用户
c、指定ip地址,执行如下脚本,ip地址需要和物理主机在同一个网段中[size=14.399999618530273px]# ifconfig eth0 192.168.120.200 netmask 255.255.255.0 up
将物理主机网关加入路由表[size=14.399999618530273px]# route add default gw 192.168.120.254 dev eth0
d、设定dns,或者设置为与物理主机的dns一致的地址,如202.106.196.115[size=14.399999618530273px]# setprop net.dns1 8.8.8.8
另外需要特别注意的是,如果豌豆荚等进程处于启动状态,网络设置会失败,使用netcfg命令会发现根本没有eth0设备。
所以在安装虚拟机之前一定要停止豌豆荚等软件。
如果使用NAT模式,需要使用dncpcd自动分配ip地址,dns要和物理主机一样,示例如下:[size=14.399999618530273px]# dhcpcd # ifconfig eth0 up # setprop net.dns1 202.107.117.11
另外还需要配置端口转发
端口转发也可以在物理主机virtual box目录下使用如下命令:[size=14.399999618530273px]# VBoxManage modifyvm "Your Android VB name" --natpf1 adb,tcp,*,5555,*,5555
3、使设置长期生效
在console模式下的配置信息似乎不会保存,使用以下方法可以保证设置一直生效[size=14.399999618530273px]# Vi /etc/init.sh
在文件末尾增加如下配置:[size=14.399999618530273px]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文件的“”下新开一行,添加以下内容[size=14.399999618530273px]<</span>ExtraDataItem name="CustomVideoMode1" value="480x800x16"/> <</span>ExtraDataItem name="CustomVideoMode2" value="320x480x16"/>
方法二:执行命令,其中“VM name”替换为你自己的虚拟机的名字
在dos模式下进入VirtualBox安装目录,默认为C:Program FilesAndroid-x86 480×800x16”,在“kernel”后加上:[size=14.399999618530273px]UVESA_MODE=480x800
320×480的分辨率也类似进行。3、在debug mode下重启Android-x86
运行命令[size=14.399999618530273px]# /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目录下:[size=14.399999618530273px]# adb kill-server # adb start-server
重新启动后可以看到虚拟机设备已经在列表中了3、配置项目run或debug参数运行或调试程序时就可以选择虚拟机作为调试设备了
如果eclipse找不到虚拟机设备,请检查系统是否安装豌豆荚等Android连接程序,如果安装需要停止相关进程。
六、配置SD卡[size=14.399999618530273px]配置SD卡可以使用多种方式。 1、将文件伪装成 SD 卡[size=14.399999618530273px]在console模式下执行如下脚本: [size=14.399999618530273px]# dd if=/dev/zero of=/data/sdcard.img bs=1024 count=65536# losetup /dev/block/loop7 /data/sdcard.img# newfs_msdos /dev/block/loop7
[size=14.399999618530273px] [size=14.399999618530273px]其中65536表示64MB的SD卡,可以修改此数字增大SD卡大小 [size=14.399999618530273px]重新启动虚拟机进入debug模式,以 RW模式重新挂载分区 [size=14.399999618530273px]# mount -o remount,rw /mnt
[size=14.399999618530273px] [size=14.399999618530273px]编辑文件: [size=14.399999618530273px]# vi /mnt/grub/menu.lst
[size=14.399999618530273px] [size=14.399999618530273px]向 kernel 中添加一个参数: [size=14.399999618530273px]SDCARD=/data/sdcard.img
2、使用独立的分区[size=14.399999618530273px]首先需要在 VirtualBox 中创建一个新的硬盘,然后将其配属给 VM: [size=14.399999618530273px]然后以debug模式启动VM,新建的分区默认挂载为/dev/sdb文件 [size=14.399999618530273px]创建分区前可以查询分区情况: [size=14.399999618530273px]# fdisk -l /dev/sdb
[size=14.399999618530273px] [size=14.399999618530273px]使用 fdisk 创建一个新的分区。分区创建完成后,对它进行格式化: [size=14.399999618530273px]# fdisk /dev/sdb
[size=14.399999618530273px] [size=14.399999618530273px]该命令后续操作包含如下参数: - 输入 m 显示所有命令列示。
- 输入 p 显示硬盘分割情形。
- 输入 a 设定硬盘启动区。
- 输入 n 设定新的硬盘分割区。
- 输入 e 硬盘为[延伸]分割区(extend)。
- 输入 p 硬盘为[主要]分割区(primary)。
- 输入 d 删除硬盘分割区属性。
- 输入 q 结束不存入硬盘分割区属性。
- 输入 w 结束并写入硬盘分割区属性
[size=14.399999618530273px]
[size=14.399999618530273px]七、安装应用1、安装应用
如果未连接设备,可以在物理主机的命令行模式下使用如下命令连接[size=14.399999618530273px]# adb connect 192.168.11.12
可以使用如下命令安装apk:[size=14.399999618530273px]# adb install -r HelloWorld.apk
但有时安装的时候报如下错误:
more than one device and emulator
可以使用如下方法:
查找设备:[size=14.399999618530273px]# adb devicesList of devices attachedemulator-5554 device
安装[size=14.399999618530273px]# adb -s emulator-5554 install -r HelloWorld.apk
2、卸载[size=14.399999618530273px]adb uninstall HelloWorld.apk
或者直接删除文件[size=14.399999618530273px]# adb -s emulator-5554 shell# cd /data/app# rm HelloWorld.apk# exit
删除系统应用:[size=14.399999618530273px]adb remount (重新挂载系统分区,使系统分区重新可写)。adb shellcd system/apprm *.apk
|