Vmware 安装 Android 虚拟机

原文摘录于
https://www.bbsmax.com/A/kvJ3eg7Adg/
https://blog.csdn.net/Iamzhouyd/article/details/122796439
https://www.cnblogs.com/ztxd/articles/14928034.html

1.获取镜像-百度云盘

链接:https://pan.baidu.com/s/1YaZK6czjcnFNecttuB1yLQ
提取码:flzl

2.安装·VMware WorkStation 或者vSphere
这一步将不再赘述,具体教程请另查资料。

3.创建虚拟机,WorkStation或者vSphere
在主页面按下组合键Ctrl+N,将会弹出新建虚拟机向导。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大功告成!

点击完成,创建虚拟机的步骤就OK了!

vSphere 创建虚拟机
在这里插入图片描述
安装Android x86_64 9.0
开启虚拟机。
在这里插入图片描述
选择第三项Installation - Install Android-x86 to harddisk,按下Enter键.
在这里插入图片描述
为了正常启动,磁盘格式不选择GPT。
选择.
在这里插入图片描述在这里插入图片描述
按下→选择到New,再按下Enter。
在这里插入图片描述
选择Primary,回车。
在这里插入图片描述
直接一整块磁盘的空间淦上,按下Enter.
在这里插入图片描述
选择Bootable,回车。
在这里插入图片描述

按下→选择到Write,再按下Enter。
在这里插入图片描述
输入yes,其中yes的s显示不出来,回车。

在这里插入图片描述
选择Quit,回车。
在这里插入图片描述
选择OK,回车。
在这里插入图片描述
为了避免其他格式出现Bug,我们选择ext4的格式。
选择,回车。
在这里插入图片描述
选择,回车。
在这里插入图片描述
更改ing…
在这里插入图片描述
选择,回车。
在这里插入图片描述
写入ing…
因为这一步是在安装,比较关键,所以会比较慢。
在这里插入图片描述
选择,再回车选择。

解决Console界面问题
WARNING!现在是比拼手速的时候!
启动到grub引导界面的时候,只有5秒的时间。发个呆,就启动到Console界面了。
在这里插入图片描述

emmm……由于发呆而启动到这个界面的朋友们,请输入reboot,接着回车。
在这里插入图片描述
选择第二项,回车。
在这里插入图片描述
输入:

mount -o remount,rw /mnt

回车。

再输入

vi /mnt/grub/menu.lst
# 注:此部分不必复制。
# vi进入后,必须先按下 i 键,才能编辑。
# 编辑完成后,先按 esc 键,再输入 :wq 或 :x 回车后即可保存并退出。

回车。
在这里插入图片描述
改成
在这里插入图片描述
即把quiet改成nomodeset xforcevesa_.
在这里插入图片描述

重启客户机。
在这里插入图片描述
可以看到,已经成功启动Android了。
在这里插入图片描述
到了这里,恭喜!Android x86_64 9.0已经安装成功了。

二、Android-x86 有内建的快捷键
较常用的有:

Alt-F1 = 进入 console 模式
Alt-F7 = 回到 GUI 模式
Alt-F9 = 图形界面
Alt-F10 = 画面旋转 180 度
Alt-F10 = 画面旋转 180 度
Alt-F11 = 画面向左旋转 90 度
Alt-F12 = 画面向右旋转 90 度
Ctrl-P = 开启Android设定画面
"Windows 键"相当于 Android 的 Home 按钮。
“Esc” 相当于 Android 的 Back 按钮
F2 相当于 Android 的 Menu 按钮
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

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 up
route add default gw 192.168.120.254 dev eth0
setprop net.dns1 202.106.196.115

四、配置分辨率,可以分别模拟手机和平板移动设备

Virtual box可以配置分辨率,vmware还没有很好的办法,因此以Virtual
box为例。

1、在虚拟机添加自定义分辨率
在虚拟机关闭以后进行。

方法一:对应的虚拟机的vbox文件的“”下新开一行,添加以下内容

<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)。
输入 t 改变硬盘分割区属性。
输入 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 devices
List of devices attached
emulator-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 shell
cd system/app
rm *.apk
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐