环境准备

项目基于开源 Redroid: 传送门
腾讯云服务器,Ubuntu 系统选择与Redroid要求一致即可(我是 20.04)一般 2 核+4G就可以满足要求,配置如下:

在这里插入图片描述

部署

按如下步骤执行即可

  1. 容器创建成功后执行,先更新本地软件包索引列表
sudo apt update 
  1. 安装 ADB
sudo apt install adb -y  
  1. 安装 Docker 容器
sudo apt install docker.io -y
  1. 配置 Redroid 环境
sudo apt install linux-modules-extra-`uname -r`
sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
sudo modprobe ashmem_linux
  1. 配置 Docker 镜像源,不然 AOSP 源码下载慢
sudo mkdir -p /etc/docker # 创建配置文件
sudo vim /etc/docker/daemon.json # 进入编辑
#粘贴以下内容保存
{
  "registry-mirrors": [
    "https://docker.nju.edu.cn",
    "https://docker.m.daocloud.io",
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.ccs.tencentyun.com"
  ]
}
# 重启 Docker 容器
sudo systemctl daemon-reexec
sudo systemctl restart docker
# 验证是否配置成功
docker info | grep -A 5 "Registry Mirrors"
  1. 下载 AOSP 镜像并启动,以 Android 12 版本为例:
docker run -itd --rm --privileged \
    --name redroid-dev \
    -p 5555:5555 \
    redroid/redroid:12.0.0-latest \
    androidboot.redroid_gpu_mode=auto \
    androidboot.redroid_fps=30 \
    androidboot.redroid_width=720 \
    androidboot.redroid_height=1280
  1. 验证
    端口启动时设置为: 5555,所以通过服务器外网 IP 直接访问成功(adb connect xxx.xxx.xxx:5555),如图:
    在这里插入图片描述

常见问题

  1. Docker启动 Redroid有问题,一般终止容器,重启即可:
sudo docker ps # 先查询 docker 容器 id 然后重启

查询结果如图所示,ID为 a76045d8aa71:
在这里插入图片描述

执行 sudo docker stop a76045d8aa71

然后参考部署一章中第 6 节重启 redroid 即可

  1. Redroid版本差异
    如果需要在外网通过 scrcpy 投屏,不要使用 64only-latest 结尾的版本 scrcpy 无法投屏,区别如下:
镜像标签 (Tag) 支持的 ABI (指令集) 核心特性
16.0.0-latest arm64-v8a + armeabi-v7a 双架构支持。既能运行 64 位应用,也能运行较老的 32 位应用。
16.0.0_64only-latest 仅 arm64-v8a 纯 64 位环境。完全砍掉了 32 位运行时(Runtime),无法运行仅支持 32 位的应用。
  1. 简化 Docker 指令
    目标是简化每次执行 Docker 都需要加sudo指令
# 1. 给 root 用户设置密码
sudo passwd root
# 2. 切换到 root
su - root
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐