
如果您想知道是否 虚拟机可以在安卓系统上使用。简而言之,答案是肯定的……但有一些注意事项。如今,在手机上运行其他操作系统的方法有很多种:从安卓系统自带的安卓系统,到Linux发行版,甚至在某些特定设备上还可以运行Windows 11 ARM。
本文中我们将看到 在 Android 上使用虚拟机的所有实际选项VMOS 类型的应用程序可以像其他应用程序一样安装;Android 13 为 Pixel 6 等手机带来的虚拟化支持;以及反向方法(在 PC 虚拟机中使用 VMware 或 VirtualBox 运行 Android);还有用于开发的官方模拟器。如果您是 Android 新手,或者只是对技术感兴趣,这里有很多内容可以供您学习。
Android 中的虚拟机是什么?它能做什么?
在深入探讨之前,有必要先澄清一些概念: 虚拟机是指运行在另一个操作系统内部的完整操作系统。单独使用虚拟机。在台式机上,使用 VMware、VirtualBox 或 Hyper-V 等虚拟机非常常见,但在移动设备上,这听起来比较少见。在 Android 设备上,你可能需要虚拟机来进行实验、开发,或者运行一些你的“普通”系统无法或不应该运行的应用程序。
在安卓移动设备上,虚拟机允许您: 拥有第二个完全独立的环境它拥有独立的桌面、账户、存储空间,在很多情况下甚至拥有root权限,但这些权限都仅限于该虚拟机内部。你在虚拟机内部进行的任何操作都不会直接影响宿主机系统,这让你可以毫无顾虑地进行各种实验。
然而,需要明确的是: 在手机上运行虚拟机是有成本的。该设备的硬件需要同时运行两个系统;建议使用相关工具来实现这一点。 衡量绩效在配置较低的或较旧的手机上,体验可能一般;在中高端和高端手机上,情况会大大改善,但仍然称不上“神奇”。
在实际应用中,Android 系统主要会遇到以下两种情况: 通过应用程序实现用户级虚拟化(VMOS 及类似应用)以及系统本身在最新版本(例如 Android 13)中支持的“严肃”虚拟化,Android 13 就是使用 QEMU 将 Windows 11 ARM 安装到 Pixel 6 上的版本。
VMOS及其公司:以应用程序形式呈现的Android系统。
Android 中最著名的虚拟机示例之一是 VMOS,一个像应用程序一样安装的虚拟安卓系统。奇特的是,它运行在你的真实 Android 系统之上,加载自己的 ROM(例如 Android 5.1 Lollipop),该 ROM 可以在窗口或全屏模式下启动。
VMOS 的行为实际上就像 如果你手机里还有另一部手机的话这个虚拟安卓系统拥有独立的桌面、独立的存储空间和独立的应用程序。你在其中安装或删除的任何内容都不会影响外部系统,这在你想要进行一些修改而又不想冒任何风险的情况下非常有用。
其中一项主要论点是: 只需按一下按钮即可对 VMOS 虚拟机进行 root 操作。无需在主手机上刷入任何特殊程序:激活虚拟安卓系统的开发者选项,选择 ROOT 选项,重启虚拟机,超级用户应用就会出现并管理权限……但这种 root 权限仅存在于虚拟机中,并不存在于真正的安卓设备上。
这种方法在日常生活中有很多有趣的用途。你可以 克隆应用以同时使用两个帐户 (WhatsApp、Facebook 等)维护一个“私人”空间,存放你不想混在一起的照片或联系人;在正常使用手机时,让游戏或任务在后台运行;或者测试旧版应用程序在旧版 Android 上的运行情况。
关于安装,VMOS 已下载。 可从 Google Play 应用商店或其官方网站下载该应用程序会请求大量权限(例如访问文件、位置信息、设备数据,如 IMEI 等),以便模拟系统能够“伪装”成真实设备。然后,它会下载自己的内部 ROM(通常几百 MB),并执行初始启动,这可能需要五到十分钟,具体时间取决于手机的处理能力。
从那时起,每次打开 VMOS 时,您都会看到 您的虚拟安卓设备已准备就绪,可以使用了。比第一次启动时快得多。您可以使用悬浮按钮以全屏或画中画模式运行它,这样您就可以在做其他事情的同时,始终保持第二个会话在手边。
VMOS的主要特点:安全性、多系统支持和文件复制
VMOS 的魅力在于它不仅仅是一项技术奇观: 它提供了一系列高度注重安全性和多任务处理的功能。由于这是一个隔离系统,内部发生的事情不会影响主机手机,这非常适合进行高风险测试。
VMOS团队将其作为一种环境进行推广, 独立保护开发、测试和隐私通过在虚拟机中安装应用程序,即使这些应用程序是恶意的,损害也仅限于这台“虚拟手机”,而不会直接影响真实系统。这是一种增强型沙箱,非常适合经常从不可信来源安装 APK 文件或想要测试一些不常见的应用程序的用户。
另一个引人注目的点是…… 您可以并行运行多个虚拟机。在后台运行。这使得创建不同的虚拟配置文件成为可能:一个用于 root 测试,一个更简洁的配置文件用于复制消息应用程序,一个用于自动化任务或机器人等等。每个配置文件都有自己的桌面和设置。
VMOS 还包括一个系统 在物理手机和虚拟机之间传输文件和应用程序 而且,如果您使用的是电脑,您可以看到如何 在 Windows 和 Android 之间同步文件 为了方便文件共享,您可以轻松地将照片、文档或 APK 文件复制到虚拟 Android 设备,而无需了解过于复杂的技术细节。最终,您可以将虚拟机用作一个额外的工作空间。
最后,该应用程序还允许您修改虚拟机特有的某些参数: 分辨率设置、系统外观、内部设置即使你对安卓系统没有深入的了解,该界面的设计也使得任何用户都能相对轻松地进行操作。
Android 13 和“严肃的”虚拟化:Pixel 6 上的 Windows 11 ARM

除了VMOS之类的解决方案之外,最近还出现了一种功能更强大的技术: Android 13 中的底层集成虚拟化谷歌一直在改进系统的安全性和隔离基础设施,其中一些工作已经实现了对虚拟机运行更原生化的支持;您可以查看…… 用于查看详细硬件信息的工具 有助于评估兼容性。
一个很好的例子是,一位在社交媒体上名为 kdrag0n 的开发者设法…… 在 Google Pixel 6 上以虚拟机方式启动 Windows 11 ARM 使用的是 Android 13 开发者预览版 1 和 QEMU。我们说的不是流媒体播放或远程桌面:而是直接在手机上运行的 Windows 系统。
这项实验最令人惊讶的地方在于,据开发者本人所说, Pixel 6 上的 Windows 11 ARM 版本完全可用它没有 GPU 加速(这限制了图形和动画),但整体性能相当流畅,甚至可以在虚拟机内玩传奇游戏《毁灭战士》。
这种虚拟化机制并非Windows系统独有。作者本人也进行了演示。 多个适用于 ARM 的 Linux 发行版以虚拟机的形式运行 在移动设备上,它的性能几乎与原生主机版本完全相同。换句话说,就如同直接在设备上安装了 Linux 系统一样。
这一切开启了一种非常有趣的可能性:将手机连接到外部显示器、键盘和鼠标, 像使用迷你电脑一样使用你的智能手机 你可以选择运行 Windows 11 ARM 系统,或者在虚拟机中运行完整的 Linux 发行版。随着这些技术的进步,下一代台式电脑变成你的手机的想法变得更加合理了。
Android模拟器和AVD:用于PC开发的虚拟机
到目前为止,我们讨论的都是运行中的虚拟机。 在手机的安卓系统中但如果你对开发应用程序感兴趣,通常的做法是反过来:使用模拟器或经典虚拟机在你的计算机上以客户系统的形式运行 Android。
谷歌官方的专用工具是 Android模拟器,运行在虚拟Android设备上这些被称为 AVD(Android 虚拟设备)。每个 AVD 都包含一个完整的系统映像 (ROM),其中包含完整的 Android 软件栈,并且其行为就像一个物理设备:屏幕、 Android 上的虚拟内存存储、虚拟传感器等。
Android 模拟器是标准开发环境的一部分,并与 Android Studio 集成。它的架构正是基于此。 在虚拟机中运行安卓操作系统它们各自拥有独立的系统镜像。您可以启动不同分辨率、Android 版本和屏幕尺寸的 AVD,这非常适合在各种配置下测试您的应用。
如果您想更进一步,SDK 本身也允许这样做。 为这些AVD编译自定义系统映像该过程与为物理设备生成 ROM 非常相似:下载 Android 源代码,准备构建环境,并为模拟器生成相应的映像。
例如,您可以创建一个图像 适用于 64 位 AVD 的 Android x86_64 版本基本工作流程包括:使用 `repo` 初始化代码仓库,同步源代码(`repo sync`),使用 `build/envsetup.sh` 设置构建环境,选择目标平台(例如使用 `lunch` 命令选择 `sdk_phone_x86_64`),以及使用 `make` 启动构建。镜像准备就绪后,即可通过命令行在 Android 模拟器中运行它。
分享和分发自定义 AVD 图像
如果你在团队中工作,或者希望其他开发人员使用与你相同的设置,这是可以实现的。 打包您的AVD系统镜像并分享它们 这样它们就可以与 Android Studio 和其他用户的 SDK 管理器集成。
在现代版本的 Android 系统中(从 Android 13 开始),构建系统允许生成 包含模拟器镜像的 SDK 仓库包 使用特定的构建命令,例如 make emu_img_zip。结果是一个包含系统镜像的压缩文件,可供部署。
在之前的版本中,例如 Android 12 及更早版本,您可以使用 使用命令 make sdk sdk_repo 生成软件包这会在 SDK 输出目录中创建一个包含图像的 ZIP 文件(例如,sdk-repo-linux-system-images-eng..zip)和一个元数据 XML 文件(repo-sys-img.xml)。
流程生成后,就很简单了: 您将 ZIP 文件托管在可访问的服务器上。 然后,您需要修改 XML 文件,使其指向该 URL 作为下载源。之后,该 XML 文件还会发布到公共位置,并在 SDK 管理器中用作自定义“更新站点”。
通过 Android Studio,任何用户都可以 将该自定义存储库的 URL 添加到 SDK 管理器中。要查找系统镜像,请前往“系统镜像”部分,并像下载任何官方镜像一样下载它。这样,每个人都可以基于同一个特定的 ROM 创建 AVD,而无需手动来回传输文件。
Android模拟器中的多屏模拟
随着 Android 10 及更高版本的到来,谷歌将大量精力投入到…… 支持多屏显示、可折叠设备和类似桌面模式Android 模拟器已经适应了这种现实,允许模拟连接到同一虚拟设备的多个屏幕,这对于测试需要在这些场景中表现良好的应用程序至关重要。
在自定义图像中启用多屏兼容性涉及 在您构建的产品中集成多屏提供程序在配置级别,模拟器的 x86 产品(例如 sdk_phone_x86)会进行调整,以将特定库(例如 32 位和 64 位的 libemulator_multidisplay_jni)和 MultiDisplayProvider APK 打包到系统中。
除了添加必要的软件包之外,还需要 在配置文件中启用多显示器功能 这是通过虚拟设备的高级配置文件 (advancedFeatures.ini) 中的一个参数来实现的,该参数指示多显示功能是否处于活动状态。
通过这些更改,Android 模拟器允许 创建具有多个虚拟屏幕的测试环境模拟额外显示器或可折叠面板的窗口。这样,您无需使用相应的物理硬件,即可测试应用程序在屏幕间移动内容时的行为、管理窗口或尝试不同的桌面模式。
在 PC 虚拟机中运行 Android 系统:VMware 和 VirtualBox
另一种非常有用的方法,尤其适用于开发和测试: 在桌面虚拟机上安装 Android 作为客户操作系统除了使用谷歌模拟器之外,你还可以在 VMware Workstation、VMware Player、ESXi 或 VirtualBox 中创建一个虚拟机,并将 Android-x86 镜像或其他适配 x86-64 的变体放入其中。
此选项具有以下几个优点: 您可以创建快照、克隆虚拟机并管理测试环境的生命周期。 就像使用其他服务器或实验室系统一样。此外,您还可以利用电脑的硬件(强大的 CPU、更大的内存、更快的存储),获得非常流畅的 Android 体验,这在最新版本的系统中尤为重要。
在 VMware ESXi 或 Workstation 环境中,典型的流程始于下载。 ISO 安装 Android x86-64例如,基于 Android 8.1 Oreo 的镜像。这些镜像并非为移动设备设计,而是为 x86 硬件(例如笔记本电脑或虚拟机)设计,因此非常适合桌面虚拟机管理程序和服务器。
有了 ISO 文件后,您就可以创建 一个新的虚拟机,指定 Linux 作为客户系统通常使用通用配置文件,例如“其他 Linux 3.xo 及更高版本(64 位)”。分配合理的资源(例如,1 个虚拟 CPU、2 GB 内存和 8 GB 或更大的虚拟磁盘),并将 ISO 文件作为虚拟 CD/DVD 驱动器连接,并标记为在启动时启动。
从 ISO 启动虚拟机时,请按照 Android-x86 安装程序中的步骤操作: 使用 cfdisk 创建一个新分区,将其标记为可引导分区,并将其格式化为 ext4。安装 GRUB 作为引导管理器,并允许以读写模式挂载 /system 目录。安装完成后,重启系统,应该会出现包含 Android 启动选项的 GRUB 菜单。
VMware 上的 Android-x86 的启动、网络和性能设置
在某些情况下,尝试 首次在虚拟机中启动 Android-x86系统无法加载图形界面,并保持在控制台模式。通常可以通过编辑 GRUB 启动选项来解决此问题:将 `quiet` 参数替换为类似 `nomodeset xforcevesa` 的参数,以强制使用兼容的图形模式。
为了避免每次启动时都要重复进行该更改,您可以 编辑虚拟机内的 GRUB 配置文件在 Android 控制台中,将虚拟磁盘(例如 /dev/block/sda1)挂载到挂载点,使用 vi 编辑器打开 /mnt/sda/grub/menu.lst 文件,并修改内核行,添加 nomodeset xforcevesa。保存更改并重启,系统即可自动加载图形环境。
虚拟机中的初始 Android 设置向导与手机上的设置向导类似:您可以选择 语言、日期和时间、网络连接以及 Google 帐户在 VMware 环境中,网络通常以虚拟 Wi-Fi 网络的形式出现,例如 VirtWiFi,它实际上连接到虚拟机的虚拟以太网接口。您也可以尝试将物理 USB Wi-Fi 适配器直接连接到虚拟机,以体验其他网络拓扑结构。
系统启动运行后,建议禁用主动睡眠模式并进行检查。 性能选项,例如 VM 3D 图形加速 如果虚拟机管理程序允许的话。请注意,Android 系统没有官方的“VMware Tools”,因此集成效果可能不如其他平台那样无缝,但对于开发和测试而言通常绰绰有余。
如果您在 PC 上使用 ESXi 以及 vCenter 或 Workstation,您也可以 备份安卓虚拟机,克隆实例,并在主机之间迁移它们这样你就可以拥有一个小型 Android 实验室,其中包含不同的配置、ROM 或完全可控的测试状态。
VirtualBox 中的 AndroVM / Android-x86:模拟器的快速替代方案
另一个历史悠久的解决方案(而且作为一种思路至今仍然有效) 在您的电脑上运行非常灵活的安卓系统 这涉及到使用专门为 VirtualBox 设计的镜像,就像 AndroVM 那样。这类项目最初基于 Android-x86,但打包成 OVA 格式,可以直接导入。
操作步骤非常简单:您下载 OVA 文件(例如,适用于手机的 vbox86p 版本、适用于平板电脑的 vbox86t 版本,或适用于具备手机功能的平板电脑的 vbox86tp 版本), 你直接把它导入到 VirtualBox 中了。 使用“导入虚拟化服务”选项。该软件包包含 VMDK 磁盘和一个包含所有预定义配置的 OVF 描述符。
这些图像的特殊之处在于它们融合了…… Google 应用、Flash 支持以及用于运行 ARM 二进制文件的 Houdini 转换器 必要时,可以在 x86 架构之上运行。这使得许多原本期望使用 ARM CPU 的应用程序能够运行,这对于保持与常用应用程序的兼容性至关重要。
为了提升图形体验,AndroVM 添加了自己的播放器 AndroVM Player,该播放器允许 利用主机的 OpenGL 加速功能该组件连接到虚拟机,并以比标准软件帧缓冲区更好的性能渲染 Android 界面,即使在平板电脑分辨率下也能轻松工作而不会感到崩溃。
网络配置也至关重要:网络通常处于启用状态。 VirtualBox 中带有 DHCP 服务器的仅主机适配器虚拟机的第二个网卡连接到了该网络,从而可以轻松地从主机进行通信。这样,您就可以使用 `adb connect` 命令连接到虚拟机的 IP 地址,并像调试通过 USB 连接的物理设备一样调试您的应用程序。
另一个有趣的优势是它对……的支持 VirtualBox 共享文件夹自动挂载 在虚拟 Android 环境中,文件存储在类似 /mnt/shared 的路径下。这使得文件、APK 和开发资源的交换变得容易,而无需采用更繁琐的解决方案。
很清楚 是的,可以在 Android 系统内外使用虚拟机。但正确的方法取决于你想要做什么:是摆弄手机本身,以最高安全性测试应用程序,在 PC 上设置强大的开发环境,还是将手机连接到外部屏幕,将其变成袖珍迷你 PC 的大脑。