如何创建可与Ubuntu VM通信的Android 10虚拟机及镜像获取方案
解决Android 10虚拟机与Ubuntu VM通信的方案
一、获取可用于VirtualBox的Android 10+ x86镜像
- 官方镜像源:Android-x86项目维护了全版本的x86架构ISO镜像,包括Android 10及以上版本,你可以从其官方托管的镜像库中找到对应版本的ISO文件,下载后直接导入VirtualBox创建虚拟机即可。
- 定制系统镜像:第三方适配的x86 Android系统(如PhoenixOS、RemixOS)提供Android 10及以上版本的ISO镜像,这类系统对VirtualBox兼容性较好,安装流程更简便。
- 转换Android Studio系统镜像:你之前下载的sys-img包是模拟器专用镜像,可通过工具转换成VirtualBox支持的格式:
- 解压包后找到
system.img等核心镜像文件 - 使用
qemu-img convert -f raw system.img -O vmdk android10.vmdk命令将raw格式转为VMDK格式 - 在VirtualBox中创建虚拟机,选择已生成的VMDK磁盘文件,再配置引导相关参数(需额外添加引导镜像或调整启动顺序,配置相对复杂)
- 解压包后找到
二、替代方案:Android Studio模拟器与Ubuntu VM实现通信
要让两者互通,核心是确保处于同一网络环境或通过端口转发中转:
- 统一虚拟网络模式:
- 将Ubuntu VM在VirtualBox中设置为「仅主机适配器」或「桥接网卡」模式,记录其IP地址
- 修改Android模拟器的网络配置:启动模拟器时通过命令行指定网络,例如
emulator -avd [你的AVD名称] -netdev user,id=mynet0 -device virtio-net-pci,netdev=mynet0,或者手动设置模拟器的静态IP,使其与Ubuntu VM处于同一网段(如Ubuntu IP为192.168.56.101,模拟器设为192.168.56.102,网关统一为192.168.56.1)
- 端口转发中转:
- 在VirtualBox的Ubuntu VM设置中添加端口转发规则,将Ubuntu的目标端口(如8080)转发到主机的对应端口
- 在Android模拟器中执行
adb reverse tcp:8080 tcp:8080,此时模拟器访问localhost:8080即可转发到Ubuntu VM的8080端口
- 直接互通验证:配置完成后,可在模拟器中ping Ubuntu VM的IP,或在Ubuntu中ping模拟器的IP,确认网络连通后即可进行服务通信。
内容的提问来源于stack exchange,提问作者Nivlem
相关产品推荐
相关产品推荐

