VMware安装Android x86_64 8.1 虚拟机

2023-11-14

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VMware安装Android x86_64 8.1 虚拟机 的相关文章

  • java:为什么主线程等待子线程完成

    我有一个简单的java程序 主线程 main 创建并启动另一个线程t class T extends Thread Override public void run while true System out println Inside
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • Android 中的 BLE Gatt onConnectionStateChanged 失败,状态为 257

    我正在开发一个同时连接到多个BLE设备的Android应用程序 之后我从这些设备永久读取特征 但过了一会儿 我在onConnectionStateChanged 函数中得到状态257 android文档没有解释错误的原因是什么 或者如何修复
  • 我怎样才能实现CoverFlow视图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想用点线布局实现溢出视图 目前我正在使用 polidea 封面流库 URL github https
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • 始终将双精度舍入

    我怎么总是能把一个double to an int 并且永远不要将其四舍五入 我知道Math round double 但我希望它始终向上舍入 所以如果是的话3 2 四舍五入为 4 您可以使用Math ceil method 请参阅Java
  • 在约束验证器中使用 Guice 进行依赖注入

    我有一个在 ConstraintValidator 的实现中注入类的用例 我正在使用 Google guice 进行依赖项注入 目前无法在验证器内注入 我的场景的简化形式 内部模块 Provides Singleton public Ser
  • 如何在 JASPIC 中保存经过身份验证的用户?

    我开发了一个安全认证模块 SAM 并实现了validateRequest方法 我还有一个简单的 Web 应用程序配置为使用此 SAM In my validateRequest方法 我检查 clientSubject 并设置一个Caller
  • log4j.properties 在 Wildfly 上无法正常工作

    我的类路径中有一个 log4j properties 文件 它位于 APP XX jar log4j properties 位置 我注意到在ear文件中我还可以在lib文件夹中找到log4j 1 2 17 jar 但无论我在 log4j p
  • 在 Spring MVC 中将请求写入文件

    我希望能够将整个请求写入 Spring MVC 控制器中的文件 我已尝试以下操作 但即使我使用大量参数发出 POST 请求 文件也始终为空 RequestMapping method RequestMethod POST value pay
  • Spring 如何在运行时获取有关“强类型集合”的泛型类型信息?

    我在 Spring 3 0 文档中阅读了以下内容 强类型集合 仅限 Java 5 在 Java 5 及更高版本中 您可以使用强类型集合 使用泛型类型 也就是说 可以声明一个 Collection 类型 使其只能包含 String 元素 例如
  • 使用 Hibernate Envers 的复合表

    我有一个带有复合表的应用程序 其中包含一个额外的列 一切正常 直到我们添加 Hibernate Envers Audited org hibernate MappingException 无法读取 no pack response Resp
  • Android 模拟器提示和技巧 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 如何检查设备上是否安装了电子邮件客户端

    我需要检查设备上是否安装了电子邮件客户端 我使用了以下代码 但它对我不起作用 public boolean isIntentAvailable final PackageManager packageManager getApplicati
  • AsyncTask的并行执行

    An 异步任务单击时执行 List
  • Android 可扩展列表视图随机播放子项

    你好 我正在使用 Android Expandable listview 并用不同的视图在其中膨胀子视图 我遇到的问题是 当我展开视图然后打开另一个父视图时 布局中的子视图会变得混乱并在代码中膨胀错误的布局 这是我的两个项目的示例代码 这是
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所

随机推荐

  • 学了那么多年设计模式依然不会用!那可真蠢!

    什么是设计模式 设计模式 Design Pattern 代表了最佳的实践 通常被有经验的面向对象的软件开发人员所采用 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和
  • 调试最长的一帧(第21天)

    看看全流程 主要讲sceneview cull 跟过去 重点在cullstage 状态树与渲染树的构建都是在pushStateSet和popStateSet函数中完成的 而CullVisitor apply函数 在遍历节点时调用 则负责根据
  • vnc远程管理kvm,在办公室连接kvm服务器

    文章目录 vnc远程管理kvm vnc远程管理kvm vnc概念图 首先试试服务器装了VNC没 rpm q tigervnc tigervnc server 没安装的话会直接出现 package tigervnc is not instal
  • getopt()与getopt_long()的使用简介

    感性认识 getopt 与getopt long 是专门处理命令行参数的两个函数 getopt 处理短参数 getopt long 处理长参数 还不明白请看下面这张图 解析 t yiqi 就是这两个函数做的事 下面我们一起来看看究竟如何使用
  • 查看电脑连接的wifi密码

    一 常规方法查看电脑连接的wifi密码 1 使用电脑连接需要查看的WiFi 鼠标右击电脑桌面右下角 WiFi图标 在弹出的菜单中点击 打开 网络和internet 设置 2 在弹出的设置窗口中点击 网络和共享中心 如下图所示 3 在弹出的网
  • MSP430F149小系统开发板实现RS232串口通信

    程序功能 MCU不停向PC机发送数据 在屏幕上显示0 127对应 的ASCII字符 通信格式 N 8 1 2400 测试说明 打开串口调试精灵 正确设置通信格式 观察屏幕 调试说明 该程序通过USB口 在sscom32上可以观察到现象 用的
  • 2022年十月份电赛OpenMV巡线方案详细代码分析(1)

    前言 1 马上要进行电赛了 机器识别是铁定会使用到的 为了防止出现去年十月份那种特殊的巡线方案 我在此分享出OpenMV巡线方案 并且进行讲解和分析如何更改 2 学习本文之前 需要学习 OpenMV串口通讯详解 OpenMV图像处理之后给单
  • Java的多重循环

    多重循环 1 打印图案 经过打印分析 外层循环控制行数 内层循环控制列数 打印三角形 第一行元素的个数决定了计数器的初始值 如果元素是越来越多 那么计数器变化为 当计数器为 我们必须设置一个上限 也就是判断条件必须小于或者小于等于某个值 如
  • 5款优秀的开源 CSS3 动画库,助你轻松地实现各种动画效果,让网页不再单调

    CSS 动画主要通过Transition 过渡 和Animation 关键帧动画 实现 是一种非常实用和流行的网页设计技术 可以帮助用户实现丰富多彩的动画效果 提升用户体验和页面互动性 CSS 动画具有简单 轻量 易用等特点 可以在不依赖
  • 【网络原理】UDP和TCP协议重点知识汇总

    目录 1 UDP协议 2 TCP协议 1 UDP协议 UDP协议的特点 无连接 不可靠传输 面向数据报和全双工 UDP报文最大长度是2个字节 2个字节表示的范围就是0 65535 也就是64kb 所以如果需要使用UDP传输一个比较大的数据
  • html+css实现3D相册

  • VSCode执行Python程序出错:vscode conda activate激活失败

    VSCode执行Python程序出错 vscode conda activate激活失败 1 vscode conda activate激活失败 C Users 17316 gt conda activate CommandNotFound
  • Android 11 添加系统服务SystemService

    添加自定义的systemservice 到时候就可以直接getSystemService这样使用了 1 添加AIDL 在frameworks base core java android os 下新建一个aidl文件 package and
  • 我整理了十套 SpringBoot 项目完整教程「源码+视频+讲义」

    1 基于Springboot Vue的音乐项目 源码 详细视频 视频原创 系统的演示 系统的视频非常详细 都是我们自己录制的 也都免费分享 2 基于SSM的商城系统 源码 详细视频 系统的教程如下所示 免费分享 系统的界面如下所示 3 基于
  • AI夏令营(第三期)NLP 任务二

    在阿里云的机器学习平台PAI上跑的 机器学习PAI 机器学习建模训练部署 智能推荐 人工智能 阿里云 aliyun com 获取预训练模型时出现问题 error 104 Connection reset by peer 所以修改部分代码 前
  • jsp+ssm计算机毕业设计教务系统【附源码】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP SSM mybati
  • 【工作笔记】从零开始学ExtJs6(三)—— 首页搭建

    首页搭建就是需要3层 上面板 项目名称和工具栏等 做面板 树形菜单 中间面板 变换的内容 分成三层的代码 很简单 关键代码如下 extend Ext container Viewport layout border defaults col
  • 常见数据库面试题整理

    本文主要转载自 http www cnblogs com remember forget p 6140112 html 一 什么是存储过程 有哪些优缺点 存储过程是一些预编译的SQL语句 更加直白的理解 存储过程可以说是一个记录集 它是由一
  • av_frame_free释放全部和av_frame_unref释放数据

    AVFrame结构 av frame alloc申请内存 av frame free释放内存 容易混淆的是av frame unref 它的作用是释放音视频数据资源 而av frame free是释放所有资源 包括音视频数据资源和结构体本身
  • VMware安装Android x86_64 8.1 虚拟机

    Vmware 安装 Android 虚拟机 原文摘录于 https www bbsmax com A kvJ3eg7Adg https blog csdn net Iamzhouyd article details 122796439 ht