作者ivon852 (内容农场杀手)
看板Linux
标题[闲聊] 三个开源的电脑Android「模拟器」方案
时间Sat Oct 22 17:44:32 2022
市面上已经有很多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框架就
完美了。
--
想办法在开源系统跑闭源游戏
https://i.imgur.com/FUrYLxA.png
Arch是真爱
https://i.imgur.com/0ja0Tx8.png
论使用Gentoo的好处
https://i.imgur.com/QjvfLfR.png
是言论自由,不是免费啤酒
https://i.imgur.com/sNmNm9x.png
流量密码
https://i.imgur.com/rXERMcM.png
删除user? 我不记得有这功能
https://i.imgur.com/xcml0xN.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.138.37.210 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1666431874.A.115.html
※ 编辑: ivon852 (223.138.37.210 台湾), 10/22/2022 17:50:48
1F:推 Bencrie: 还在 Android 10 不是缺点吧 XD10/22 20:06
2F:→ Bencrie: AOSP 都是越新版越难改,会动就阿密陀佛了 XD10/22 20:07
Android-x86很稳没错啦,但Waydroid那个版本的ARM转译器就处於要稳不稳,要新不新的状
态,所以一直有人建议换成Android 11
3F:→ Bencrie: 图形效能要最好就是跑容器然後图形硬体用 mesa driver10/22 20:09
4F:→ Bencrie: Anbox/QEMU 走 libOpenglRender 那套会变慢10/22 20:10
5F:推 jerejesse: 感谢整理10/22 22:30
6F:推 tennyleaz: BlissOS那种直接安装,可能还是性能最好的10/22 22:43
Dual-boot也是个选项啦,但有些游戏还是要自行处理没有触控操作的问题。我个人还是希
望能像Windows用模拟器那样使用Android APP
7F:推 drm343: 原来现在已经发展到这样了10/22 22:43
※ 编辑: ivon852 (36.236.238.193 台湾), 10/22/2022 23:14:52
※ 编辑: ivon852 (36.236.238.193 台湾), 10/22/2022 23:19:52
8F:推 idisnothing: 推实测分享10/23 15:40
9F:推 s9209122222: 可是我之前去 Google play 下载游戏都打不开耶10/23 16:27
10F:→ s9209122222: 我是说 Waydroid10/23 16:27
11F:推 s9209122222: 我只有装 libhoudini 没装 libndk 会怎样?10/23 16:33
没装libhoudini前,Play商店只会显示x86架构程式,应该都开的起来。至於装了後也没用
,因为Android 10不论libhoudini还是libndk(就算二个都装)都十分不稳定,几乎没一个AR
M架构的游戏开的起来。
※ 编辑: ivon852 (36.236.238.193 台湾), 10/24/2022 02:13:02
12F:推 idisnothing: 那像全家便利商店或麦当劳APP在QEMU+Android-x86 9.010/24 06:01
13F:→ idisnothing: 下会显示与此装置不相容是因为Safetynet没过吗? 10/24 06:02
14F:→ idisnothing: 刚把网路上下载来的APK直接装进去也还是不行 要在非 10/24 12:13
15F:→ idisnothing: 原厂ROM使用这类APP确实挺累人的 10/24 12:13
16F:推 Bencrie: 那是 houdini 版本的问题吧10/24 13:02
17F:推 Bencrie: 不然 intel 要怎麽拐人去做 android cloud gaming 10/24 13:10
18F:→ idisnothing: 应该是APP写得比较严谨造成的 全家APP执行後画面如下 10/24 13:17
19F:→ idisnothing: 应该是侦测到系统root过所以就不执行了 10/24 13:17
21F:→ idisnothing: 至於麦当劳APP点进去後只会得到白画面 我在装有 10/24 13:20
22F:→ idisnothing: LineageOS的手机执行麦当劳APP也是这样 10/24 13:20
我执行一些中国的APP更是直接闪退,看来他们很不爽虚拟机
23F:推 s9209122222: 我 libhoudini 是用 github 上面那个脚本装的 10/24 16:34
对,然後那个脚本的作者叫问他app崩溃的人去找测试版Android 11的Waydroid来用...但An
droid 11在最新版Arch上开不起来
※ 编辑: ivon852 (223.139.141.84 台湾), 10/25/2022 20:44:20
24F:推 Bencrie: intel 没公开新版 houdini 出来,arm 转译就没救吧 10/26 01:57
25F:推 sppmg: 感谢整理,一直想在linux 上装淘宝app(当然要外加隔离)。 10/27 05:46
26F:推 sppmg: 发现知乎上好像有人说不能用…… 10/27 05:51