[閒聊] 三個開源的電腦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