当前位置:首页 > 技术分享 > 正文内容

Docker中基于 Redroid 开源项目搭建android手机 提供Web访问环境 不支持KVM也可以

admin3个月前 (04-18)技术分享259

redroid(远程和Droid)是一款 GPU 加速的 AIC(Android In Cloud,云中安卓)解决方案。您可以在 Linux 主机(例如、等等)上启动多个实例。redroid支持Dockerpodman架构k8s。redroid适用于云 游戏、虚拟化手机、自动化测试等。arm64amd64

其GitHub地址为:https://github.com/remote-android/redroid-doc。

redroid不仅支持Docker部署,还能在Linux主机(如Podman等与k8s兼容的环境)中轻松启动多个实例。这款多架构的解决方案,既适用于arm64也适用于amd64架构,为云游戏、虚拟化电话以及自动化测试等领域提供了强大的支持。更为值得一提的是,redroid还融入了GPU加速技术,使其在AIC(Android In Cloud)领域中独树一帜。

关于开发版安装安卓Android的使用场景,以及本文所提及的Docker云手机应用场景,最为常见的便是云游戏领域。例如,通过手机玩原神等高配置游戏时,就可以充分利用这类技术来享受流畅的游戏体验。

官方文档https://gitee.com/newlan/redroid-doc/blob/master/README.md

接下来按照 redroid[2] 官方文档进行操作即可:

apt install linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

docker run -itd --rm --privileged \
--name=redroid \
--pull always \
-v ~/data:/data \
-p 5555:5555 \
redroid/redroid:11.0.0-latest

docker run -itd \
--name=redroid \
--memory-swappiness=0 \
--privileged --pull always \
-v ~/data:/data \
-p 5453:5555 \
redroid/redroid:13.0.0-latest \
androidboot.hardware=mt6891 ro.secure=0 ro.boot.hwc=GLOBAL ro.ril.oem.imei=861503068361145 ro.ril.oem.imei1=861503068361145 ro.ril.oem.imei2=861503068361148 ro.ril.miui.imei0=861503068361148 ro.product.manufacturer=Xiaomi ro.build.product=chopin \
redroid.width=720 redroid.height=1280

为了可以远程操作我们的云安卓手机,我们需要借助 Scrcpy 工具,Scrcpy 是一个开源的工具,功能点如下:

  • 通过 USB 进行屏幕镜像

  • 可以使用 Scrcpy 来远程控制你的 Android 设备

  • 使用鼠标和键盘来控制 Android 设备

  • 可以将文件在 Android 设备和电脑之间传输

  • 支持 Windows、macOS 和 Linux 系统

我们要使用的就是远程控制功能:
apt install scrcpy

scrcpy -s localhost:5555

效果如下:


   


至此,我们算是把云手机给搭建起来了,但这还只是开始,接下来我们还要做一些事情:

  • 如何让云手机随时随地都能访问

  • 如何安装应用程序

  • 如何做一些自动化的事情

  • 等等

这个可玩性可太多了,让我们一起探索吧。
Web 云手机
要想让云手机随时随地都能访问,不难想到就是直接将 redroid 进行 web 化,开源社区也有相关项目:ws-scrcpy,我们直接拿过来用就好了:

docker pull emptysuns/scrcpy-web

docker run --rm -itd --privileged -v /root/scrcpy-web/data:/data --name scrcpy-web -p 8090:8000/tcp --link redroid:howie_phone emptysuns/scrcpy-web:v0.1

# 连接前面部署的云手机
docker exec -it scrcpy-web adb connect howie_phone:5555

访问:ip:8090,可以看到页面如下:


   


点击 H264 Converter 就能在浏览器里面操作云手机了。
软件安装
通过 adb 即可安装软件:
# 下载 *.apk放到 /root/scrcpy-web/data 目录下
docker exec -it scrcpy-web adb install /data/*.apk
# 远程安装
adb -s ip:5555 install "*.apk"


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/664.html

分享给朋友:

相关文章

apicloud开发调试方法 nodejs [超低,超省内存占用] 兼容最新用友 you-cli

apicloud 开发 + 模拟器 +浏览器 +其它这些一开相当占用内存,让电脑不堪重负.于是我想到用命令行来实现调试这样可以不开启apicloud软件进行调试了 命令行+ 模拟器 就可以调试了准备1.检出项目.可以用svn检出,也可以直接...

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有: 1. 一些php的扩展与php版本兼容存在问题,实践证明 e...

linux centos svn搭建及网站同步更新

以前上线的项目都是用ftp来更新的.后来技术人员多了,ftp的弊端就出来了.所以在这里给大家介绍一下我们现在正在使用的svn同步修改更新的方案.原理很简单主要是用到了svn的hooks功能.即本地提交到服务器的svn服务器.然后svn服务器...

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创...

input search更改默认删除按钮的样式

改input输入框search属性下输入文字之后会在输入框最后出现一个默认样式的X不过这个样式不太好看想自定义怎么办呢方法一input[type="search"]::-webkit-search-cancel-butt...

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。