You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Android Emulator使用本地非捆绑版QEMU运行ARM架构AVD?

解决方法

首先明确:Android官方模拟器是基于QEMU做了大量定制修改的,直接让它调用你本地安装的标准QEMU几乎无法正常工作,两者的参数、补丁适配差异极大。不过你可以手动使用本地的qemu-system-arm直接加载AVD的镜像文件,具体步骤如下:

  • 找到AVD存储目录
    通常AVD默认存在~/.android/avd/[你的AVD名称].avd/路径下,比如你的AVD叫hd2,对应路径就是~/.android/avd/hd2.avd/

  • 收集AVD关键文件与配置
    该目录下的system.img是系统镜像,userdata.img是用户数据镜像,ramdisk.img是启动ramdisk,config.ini里记录了AVD的硬件配置(如内存大小、CPU核心数等)

  • 构造本地QEMU启动命令
    参考以下格式(根据你的实际配置调整参数):

    qemu-system-arm \
      -machine virt \
      -cpu cortex-a9 \
      -m 1024 \ # 对应AVD配置里的内存大小
      -drive file=~/.android/avd/hd2.avd/system.img,format=qcow2,if=none,id=system \
      -device virtio-blk-pci,drive=system \
      -drive file=~/.android/avd/hd2.avd/userdata.img,format=qcow2,if=none,id=userdata \
      -device virtio-blk-pci,drive=userdata \
      -drive file=~/.android/avd/hd2.avd/ramdisk.img,format=raw,if=none,id=ramdisk \
      -device virtio-blk-pci,drive=ramdisk \
      -kernel ~/.android/avd/hd2.avd/kernel-qemu \ # 如果AVD目录下存在该文件
      -append "console=ttyAMA0 root=/dev/vda rw init=/init" \
      -serial stdio \
      -display gtk # 或使用你需要的显示后端
    
  • 注意事项

    • 不同Android版本的镜像对应的QEMU参数可能有差异,需根据config.ini调整CPU型号、内存、存储驱动等参数
    • 若你的AVD是64位ARM架构,需使用qemu-system-aarch64替代qemu-system-arm
    • 这种方式无法使用Android模拟器的特有功能(如虚拟摄像头、Google Play服务集成等),仅能实现基础系统启动

另外,如果你想尝试让Android Emulator调用本地QEMU,可以试试以下hack方式,但不保证正常运行:

  • 备份Android自带的QEMU二进制文件(比如$ANDROID_HOME/emulator/qemu/linux-x86_64/qemu-system-armel)
  • 将本地的qemu-system-arm复制到上述路径,并重命名为原文件名
  • 启动模拟器,观察是否能正常运行(大概率会因参数不兼容崩溃)

内容的提问来源于stack exchange,提问作者Drew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:02:32