简介
前几天需要学习通进行考试,还指定了只能在手机上考试,废了我好多脑细胞,最后想到电脑有虚拟机手机也可以啊,但是在电脑上安装了安卓模拟器之后发现运行不起来学习通,直接闪退,后面就在雷电云手机开通了一个体验包,0.89元两个小时,在后面就想着能不能自己搭建一个,谷歌了一下果然有方法,但是不知道是我的电脑是X86架构的所以跑起来结果和安卓模拟器一样直接闪退还是什么其他原因,也没有深究。
反正就是没有事想自己折腾一下玩玩可以,但是没必要,直接安装一个安卓模拟器多简单省事。
准备
我是在VM虚拟机里面安装了一个20.04的ubuntu,虚拟机里面装虚拟机在装虚拟机,无限套娃,其实试过22.04,也可以,但是安装步骤不太一样,后面会说的。
然后就是开源的项目Redroid
开源地址:https://github.com/remote-android/redroid-doc
开始
安装Ubuntu的步骤跳过,这个很简单的,网上教程也很多的,主要的是我的博客是针对我自己记录的,这个我会,没必要重复记录【滑稽】
首先更新系统
sudo apt upgrade
更新完成后重启一下,这个应该不用教吧
切换到root身份
sudo su - root
安装 Docker 组件
apt-get install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
先执行第一条命令,然后在复制剩下的命令一起粘贴进去执行
安装内核模块
apt install -y linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux
这里就是22.04和20.04的区别,22.04的内核已经有ashmem_linux了,所以不需要执行modprobe ashmem_linux
检查模块状态
lsmod | grep -e ashmem_linux -e binder_linux
安装 ADB 工具
apt install -y adb
拉取 Redroid 容器镜像,可以在https://github.com/remote-android/redroid-doc查看Redroid支持的镜像,然后把redroid/redroid:15.0.0_64only-latest
换成你想要的镜像
docker pull redroid/redroid:15.0.0_64only-latest
docker images
可以看到我这边拉取镜像的时候报错了,这个是因为我的ubuntu有ipv6,把ipv6禁用了就可以了,下面是ipv6临时禁用的方法,重启之后恢复,如果提示权限不足则在前面加sudo
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6=1
启动 Redroid 容器
docker run -itd --privileged \
-v ~/data:/data -p 5555:5555 \
redroid/redroid:15.0.0_64only-latest \
androidboot.redroid_width=1920 \
androidboot.redroid_height=1080 \
androidboot.redroid_dpi=320
启动参数
名称 | 用途 | 参数 |
---|---|---|
redroid/redroid:15.0.0_64only-latest | 启动的容器名称 | 填写刚刚拉取的镜像 |
androidboot.redroid_width= | 屏幕宽度 | 数值类型,例如1080 |
androidboot.redroid_height= | 屏幕高度 | 数值类型,例如1920 |
androidboot.redroid_dpi= | dpi | 一般320 |
查看启动的容器
docker ps -a
连接
可以看到已经启动好了,现在就可以连接了,连接使用的是QtScrcpy这个工具,也是开源的
地址:https://github.com/barry-ran/QtScrcpy
下载解压然后打开
在右下角的无线选项里面填写你ubuntu的ip地址,端口是5555
填写好之后点【无线连接】
左上角出现设备之后双击连接
连接成功
安装软件
安装软件使用adb安装,进入刚刚解压出来的QtScrcpy工具的文件夹
把下载好的apk软件放进这里面来
在上面的地址栏输入cmd并回车打开cmd窗口
输入安装命令
adb install ka.apk
后面的ka.apk是需要安装的软件的名称
安装成功
连接云手机打开就可以看到刚刚安装的了
总结
在Ubunt上跑安卓可以跑起来,但是不知道是处理器是X86的原因还是什么原因,导致了大部分软件打开失败,直接闪退,想尝试玩玩的可以折腾一下,我个人感觉没必要。