ws scrcpy是一款遠端控制Android手機的開源軟體,由NetrisTV開發。
背後使用了GenyMobile開發的 Scrcpy技術,這款軟體透過WebAssembly,把Scrcpy搬到瀏覽器執行。
WS scrcpy可以大大降低客戶端的需求,不需要安裝軟體,只要有瀏覽器就能跑。
這樣的話能夠遠端控制Android雲手機並在瀏覽器玩遊戲了。
1. 方案架構#
參考 建置開源雲手機
首先需要一台帶有GPU的Linux伺服器,比如Ubuntu。
Android系統部份,準備一台實體Android機,或是用 Linux Android模擬器方案。只要Android裝置跟Linux伺服器位於同一個網段下面就行。
將ws scrcpy部署到跟同一個網段的Linux伺服器上
透過 內網穿透軟體,從外部網路存取遠端Android系統畫面。
鑑於ws scrcpy沒有任何加密機制,可能要另外搞個HTTPS認證。
2. 安裝ws scrcpy#
Docker#
這是非官方打包的映像檔。
使用以下指令執行:
docker run --name ws-scrcpy -d -p 8000:8000 scavin/ws-scrcpy
手動安裝NodeJS套件#
- 根據 Gitub指示,下載NodeJS、nodejs-gyp、ADB
sudo apt install nodejs adb
npm install -g node-gyp
- 複製原始碼,安裝NPM依賴套件
git clone https://github.com/NetrisTV/ws-scrcpy.git
cd ws-scrcpy
npm install
- 開放防火牆
sudo ufw allow 8000
sudo ufw reload
- 執行ADB,跟Android裝置配對。由於我使用Waydroid,因此直接跟本機的連線:
adb connect 192.168.0.200:5555
- 啟動ws scrcpy伺服器服務,隨後用瀏覽器開啟
https://伺服器IP:8000
npm start
3. ws scrcpy操作#
網頁界面可以看到目前連線的裝置
點選Configure stream調整連線設定,解碼器部份通常用Broadway.js就夠了。接著依照你的網速,設定解析度和FPS。完成後點選Save,再按Open。
控制的時候需要點選鍵盤圖示才可以使用本機鍵盤,否則一律都是觸控輸入。
如果需要旋轉螢幕,點選Rotate device。額不過ws scrcpy網頁排版寫的不太好,縮放常常出問題,要手動放大。
4. 評價#
ws scrcpy 介面設計不太好,畢竟Github專案頁面寫明這是prototype嘛…
手機瀏覽器操作不直覺,比較適合在電腦瀏覽器用,難道真是上班偷玩手機之用?
且雲手機聲音不會傳過來,需要另外想辦法 用PulseAudio串流到手機。
如果堅持手機用Scrcpy遠端控制的話,閉源軟體「甲殼蟲ADB助手」和開源的 scrcpy-mobile可能做的還比較好。