[闲聊] 三个开源的电脑Android“模拟器”方案比

楼主: ivon852 (ASUS)   2022-10-22 17:44:32
市面上已经有很多Android模拟器,花样很多,不外乎就是能在x86电脑上玩x86/ARM架构的
手机游戏,甚至多开、挂机都不是难事,多半也支援键盘映射。
但他们只支援Windows,有些可能还有MacOS,但支援Linux的是少之又少。在比较有名的模
拟器中,只有面向开发人员的Genymotion和Android Studio模拟器有提供Linux版。
所以,Linux用户想在电脑上跑Android甚至打游戏,可以找开源软件组成的解决方案,达成
类似“模拟器”的效果,顺便摆脱常规模拟器的各种业配和广告置入。
下表是目前2022年,在x86 Linux电脑跑Android游戏的3个开源方案,支援GPU加速和ARM转
译,有些方案Windows和MacOS也可以使用。
https://i.imgur.com/mbfxwRu.png
主要在Gentoo和Arch上测试,且Nvidia对Wayland和VirGL相性不好,使用Intel内显测试图
形效能。
## 1. Android-x86 + QEMU VirGL
https://i.imgur.com/oqxvnaY.jpg
用QEMU安装Android-x86的虚拟机,虚拟出完整环境。透过Linux的KVM核心模组,加上独显G
PU直通可大幅改善虚拟机的效能。或者编译支援VirGL的QEMU让虚拟机使用半虚拟化的GPU加
速。
此外Android 9的ARM转译器还算稳定,要执行手游是没问题的。ROM还可以尝试BlissOS团队
修改的版本。
由于QEMU可以只靠指令运作,写个指令稿多开是有可能的。Windows和MacOS也能执行QEMU,
甚至有人在Windows上成功跑过VirGL。
有些游戏虚拟机鼠标按了没反应,可以用QtScrcpy解决。
缺点同样明显,VirGL跟Nvidia(目前的)显示卡相性不合,且不一定每个发行版都有提供Vir
GL。不然一般发行版提供的QEMU就剩内建的QXL显示卡可以用,效能很差。
## 2. Waydroid
https://i.imgur.com/rfulVs3.jpg
从Anbox修改而来的容器方案,需要桌面环境使用Wayland显示协定才能运作。透过指令稿可
安装Magisk和GApps。
Waydroid比较省资源,玩游戏也最流畅。Waydroid甚至可以用在ARM架构的Linux装置上(如P
inePhone),使其支援Android APP。
缺点是Waydroid还在Android 10,ARM转译器问题一堆,导致目前只能稳定运作x86架构的AP
K,其架构也不适合多开。此外Waydroid不支援Nvidia显示卡也是个大问题。
## 3. ReDroid
https://i.imgur.com/FQXt3GC.jpg
透过Docker执行Android容器,再用Scrcpy连线到桌面,提供x86/ARM架构的映像档,可用来
架设云手机。其支援使用Nvidia的GPU加速,再用dockefile方式安装ARM转译器。
Docker容器的特性使其能够快速部署在服务器上,要多开也是有可能的。算是大部份Linux
发行版比较能正常运作的方案。
缺点是目前没有内建Google框架(专有软件),作者给的Google框架编译过程又有问题。某些
游戏在转译ARM指令时会吃掉大量RAM。
结论,Android-x86最稳固但难度高,Waydroid跨架构又省资源,ReDroid只差Google框架就
完美了。
作者: Bencrie   2022-10-22 20:06:00
还在 Android 10 不是缺点吧 XDAOSP 都是越新版越难改,会动就阿密陀佛了 XD图形效能要最好就是跑容器然后图形硬件用 mesa driverAnbox/QEMU 走 libOpenglRender 那套会变慢
作者: jerejesse (淡岚)   2022-10-22 22:30:00
感谢整理
作者: tennyleaz (tenny)   2022-10-22 22:43:00
BlissOS那种直接安装,可能还是性能最好的
作者: drm343 (一卡)   2022-10-22 22:43:00
原来现在已经发展到这样了
作者: idisnothing   2022-10-23 15:40:00
推实测分享
作者: s9209122222 (海海海)   2022-10-23 16:27:00
可是我之前去 Google play 下载游戏都打不开耶我是说 Waydroid我只有装 libhoudini 没装 libndk 会怎样?
作者: idisnothing   2022-10-24 06:01:00
那像全家便利商店或麦当劳APP在QEMU+Android-x86 9.0下会显示与此装置不相容是因为Safetynet没过吗?
作者: Bencrie   2022-10-24 13:02:00
那是 houdini 版本的问题吧不然 intel 要怎么拐人去做 android cloud gaming
作者: idisnothing   2022-10-24 13:17:00
应该是APP写得比较严谨造成的 全家APP执行后画面如下应该是侦测到系统root过所以就不执行了https://i.imgur.com/aUVjsIW.png至于麦当劳APP点进去后只会得到白画面 我在装有LineageOS的手机执行麦当劳APP也是这样
作者: s9209122222 (海海海)   2022-10-24 16:34:00
我 libhoudini 是用 github 上面那个脚本装的
作者: Bencrie   2022-10-26 01:57:00
intel 没公开新版 houdini 出来,arm 转译就没救吧
作者: sppmg (sppmg)   2022-10-27 05:46:00
感谢整理,一直想在linux 上装淘宝app(当然要外加隔离)。发现知乎上好像有人说不能用……

Links booklink

Contact Us: admin [ a t ] ucptt.com