Android编译x86-64选项

2,194 阅读1分钟

原因

选择x86_64的原因就是开启虚拟机的速度很快,当我们需要调试Android系统,比如打印了一些LOG或者是改了一些文件,使用x86_64选项编译的虚拟机要比arm64的虚拟机快了 很多,具体数据没有测试过,不同电脑的性能对于虚拟机启动时间会有影响, 如果没有固态硬盘的情况下,大致是一半的时间. 而且因为和宿主机的cpu架构相同,用的时候也不会很卡,我之前用arm64的时候有时甚至会卡直接重启虚拟机

编译

直接在lunch的时候选择aosp_x86_64-eng就可以了

lunch

开启CPU虚拟化

进入BIOS开启CPU虚拟化,intel的是叫Intel Virtual Technology, AMD是叫SVM mode, 开启之后重启, 用egrep -c '(svm|vmx)' /proc/cpuinfo进行检测, 如果不为0就是正确开启了

svm-check

安装KVM

sudo apt-get install qemu qemu-kvm, 安装之后用kvm-ok检测是否安装成功.

kvm-ok

问题

有个问题出现了

emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.
CPU acceleration status: This user doesn't have permissions to use KVM (/dev/kvm)

这个问题主要是因为我们当前用户没有权限导致的,运行以下的命令进行解决

sudo addgroup kvm
sudo usermod -a -G kvm username
sudo chgrp kvm /dev/kvm
sudo vim /etc/udev/rules.d/60-qemu-kvm.rules #在里面写入KERNEL=="kvm", GROUP="kvm", MODE="0660"

原文中有详细的解释