將你的安卓手機(jī)屏幕投射到 Linux
使用 Scrcpy 可以把你的手機(jī)屏幕變成一個(gè)“應(yīng)用”,與在樹莓派或任何其他基于 Linux 的設(shè)備上的應(yīng)用一起運(yùn)行。
要遠(yuǎn)離我們?nèi)粘J褂玫碾娮赢a(chǎn)品是很難的。在熙熙攘攘的現(xiàn)代生活中,我想確保我不會(huì)錯(cuò)過手機(jī)屏幕上彈出的來自朋友和家人的重要信息。我也很忙,不希望迷失在令人分心的事情中,但是拿起手機(jī)并且回復(fù)信息往往會(huì)使我分心。
更糟糕的是,有很多的設(shè)備。幸運(yùn)地是,大多數(shù)的設(shè)備(從功能強(qiáng)大的筆記本電腦到甚至不起眼的樹莓派)都可以運(yùn)行 Linux。因?yàn)樗鼈冞\(yùn)行的是 Linux,所以我為一種設(shè)置找到的解決方案幾乎都適用于其他設(shè)備。
普遍適用
我想要一種無論我使用什么屏幕,都能統(tǒng)一我生活中不同來源的數(shù)據(jù)的方法。
我決定通過把手機(jī)屏幕復(fù)制到電腦上來解決這個(gè)問題。本質(zhì)上,我把手機(jī)變成了一個(gè)“應(yīng)用”,可以和我所有的其他程序運(yùn)行在一起。這有助于我將注意力集中在桌面上,防止我走神,并使我更容易回復(fù)緊急通知。
聽起來有吸引力嗎?你也可以這樣做。
設(shè)置 Scrcpy
Scrcpy 俗稱屏幕復(fù)制(Screen Copy),是一個(gè)開源的屏幕鏡像工具,它可以在 Linux、Windows 或者 macOS 上顯示和控制安卓設(shè)備。安卓設(shè)備和計(jì)算機(jī)之間的通信主要是通過 USB 連接和安卓調(diào)試橋(ADB)。它使用 TCP/IP,且不需要 root 權(quán)限訪問。
Scrcpy 的設(shè)置和配置非常簡單。如果你正在運(yùn)行 Fedora,你可以從 COPR 倉庫安裝它:
$ sudo dnf copr enable zeno/scrcpy
$ sudo dnf install scrcpy -y
在 Debian 或者 Ubuntu 上:
$ sudo apt install scrcpy
你也可以自己編譯 Scrcpy。即使是在樹莓派上,按照 Scrcpy 的 GitHub 主頁 上的說明來構(gòu)建也不需要很長時(shí)間。
設(shè)置手機(jī)
Scrcpy 安裝好后,你必須啟用 USB 調(diào)試并授權(quán)每個(gè)設(shè)備(你的樹莓派、筆記本電腦或者工作站)為受信任的控制器。
打開安卓上的“設(shè)置”應(yīng)用程序。如果“開發(fā)者選項(xiàng)”沒有被激活,按照安卓的 說明來解鎖它。
接下來,啟用“USB 調(diào)試”。
Enable USB Debugging option
然后通過 USB 將手機(jī)連接到你的樹莓派或者筆記本電腦(或者你正在使用的任何設(shè)備),如果可以選擇的話,將模式設(shè)置為 PTP。如果你的手機(jī)不能使用 PTP,將你的手機(jī)設(shè)置為用于傳輸文件的模式(而不是,作為一個(gè)疊接或者 MIDI 設(shè)備)。
你的手機(jī)可能會(huì)提示你授權(quán)你的電腦,這是通過它的 RSA 指紋進(jìn)行識(shí)別的。你只需要在你第一次連接的時(shí)候操作即可,在之后你的手機(jī)會(huì)識(shí)別并信任你的計(jì)算機(jī)。
使用 lsusb
命令確認(rèn)設(shè)置:
$ lsusb
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 011 Device 004: ID 046d:c21d Logitech, Inc. F310 Gamepad
Bus 005 Device 005: ID 0951:1666 Kingston Technology DataTraveler G4
Bus 005 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 004 Device 001: ID 18d1:4ee6 Google Inc. Nexus/Pixel Device (PTP + debug)
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
然后執(zhí)行 scrcpy
以默認(rèn)設(shè)置運(yùn)行。
Scrcpy running on a Raspberry Pi
性能和響應(yīng)能力取決于你使用什么設(shè)備來控制你的手機(jī)。在樹莓派派上,一些動(dòng)畫可能會(huì)變慢,甚至有時(shí)候會(huì)響應(yīng)滯后。Scrcpy 提供了一個(gè)簡單的解決辦法:降低 Scrcpy 顯示圖像的位速率和分辨率使得你的計(jì)算機(jī)能夠容易顯示動(dòng)畫。使用以下命令來實(shí)現(xiàn):
$ scrcpy --bit-rate 1M --max-size 800
嘗試不同的值來找到一個(gè)適合你的值。為了使鍵入更方便,在選定一個(gè)命令之后,可以考慮 創(chuàng)建自己的 Bash 別名。
剪斷連線
Scrcpy 開始運(yùn)行后,你甚至可以通過 WiFi 連接你的手機(jī)和計(jì)算機(jī)。Scrcpy 安裝過程也會(huì)安裝 adb
,它是一個(gè)與安卓設(shè)備通信的命令。Scrcpy 也可以使用這個(gè)命令與你的設(shè)備通信,adb
可以通過 TCP/IP 連接。
Scrcpy running on a computer
要嘗試的話,請(qǐng)確保你的手機(jī)通過 WiFi 連在與你的計(jì)算機(jī)所使用的相同的無線網(wǎng)絡(luò)上。依然不要斷開你的手機(jī)與 USB 的連接!
接下來,通過手機(jī)中的“設(shè)置”,選擇“關(guān)于手機(jī)”來獲取你手機(jī)的 IP 地址。查看“狀態(tài)”選項(xiàng)來獲得你的地址。它通常是 192.168 或者 10 開頭。
或者,你也可以使用 adb
來獲得你手機(jī)的IP地址:
$ adb shell ip route | awk '{print $9}'
To connect to your device over WiFi, you must enable TCP/IP connections. This, you must do through the adb command:
$ adb tcpip 5555
Now you can disconnect your mobile from USB.
Whenever you want to connect over WiFi, first connect to the mobile with the command adb connect. For instance, assuming my mobile's IP address is 10.1.1.22, the command is:
$ adb connect 10.1.1.22:5555
連接好之后,你就可以像往常一樣運(yùn)行 Scrcpy 了。
遠(yuǎn)程控制
Scrcpy 很容易使用。你可以在終端或者 一個(gè)圖形界面應(yīng)用 中嘗試它。