Scrcpy
這個應(yīng)用程序提供了USB(或TCP/IP)上連接的Android設(shè)備的顯示和控制。它不需要任何根訪問篮赢,它適用于GNU/Linux炬太、Windows和macOS
它專注于:
- 精致 (本機(jī)魂务,僅顯示設(shè)備屏幕)
- 性能 (30 ~ 60 fps)
- 質(zhì)量 (1920 × 1080或以上)
- 低延遲 (35 ~ 70毫秒)
- 快速啟動 (顯示第一張圖片約1秒)
- 非侵入性 (不在設(shè)備上安裝任何軟件)
需求
Android設(shè)備至少需要API 21 (Android 5.0)
確保在設(shè)備上啟用adb調(diào)試
在某些設(shè)備上炎疆,還需要啟用一個附加選項來使用鍵盤和鼠標(biāo)控制它
獲取
Linux
關(guān)于Debian和Ubuntu (20.04)
apt install scrcpy
也可以自己編譯
Windows
對于Windows,為了簡單起見勾拉,可以使用預(yù)構(gòu)建的存檔煮甥,其中包含所有依賴項(包括adb)
也可以使用Chocolatey進(jìn)行安裝
choco install scrcpy
choco install adb # 如果你還沒有
在Scoop中
scoop install scrcpy
scoop install adb # 如果你還沒有
macOS
該應(yīng)用程序可以在Homebrew中使用,可以直接安裝它
brew install scrcpy
您需要ADB藕赞,并且可以從系統(tǒng)路徑PATH
訪問它成肘,如果你還沒有
brew cask install android-platform-tools
運(yùn)行
插入一個Android設(shè)備,然后執(zhí)行
scrcpy
它接受命令行參數(shù)
scrcpy --help
特性
獲取配置
減少尺寸
有時斧蜕,將Android設(shè)備鏡像成低分辨率是很有用的艇劫,可以提高性能
將寬度和高度限制為某個值 (例如1024)
scrcpy --max-size 1024
scrcpy -m 1024 # 短的版本
計算另外一邊以保證設(shè)備的高寬比被保留,例如 1920×1080的設(shè)備鏡像為1024×576
改變碼率
默認(rèn)的比特率是8mbps惩激,改變視頻比特率 (例如:2mbps)
scrcpy --bit-rate 2M
scrcpy -b 2M # 短的版本
限制幀率
捕獲幀速率可以被限制
scrcpy --max-fps 15
這是Android 10以來的官方支持店煞,但在更早的版本上可能也可以工作
裁切
設(shè)備屏幕可以裁剪成只反映屏幕的一部分
這是有用的,例如反映只有一只眼睛的虛擬現(xiàn)實(shí)眼鏡
scrcpy --crop 1224:1440:0:0 # 1224x1440 偏移量 (0,0)
如果--max-size
也指定了风钻,則在裁剪之后應(yīng)用調(diào)整大小
鎖定視頻方向
鎖定鏡像的方向
scrcpy --lock-video-orientation 0 # 自然方向
scrcpy --lock-video-orientation 1 # 逆時針90°
scrcpy --lock-video-orientation 2 # 180°
scrcpy --lock-video-orientation 3 # 順時針90°
這會影響錄制方向
錄屏
可以在鏡像時錄屏
scrcpy --record file.mp4
scrcpy -r file.mkv
在錄屏?xí)r禁用鏡像
scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
# 用Ctrl+C中斷錄制
“跳過的幀”被記錄顷蟀,即使它們沒有實(shí)時顯示(出于性能原因)
幀是設(shè)備上的時間戳,因此包延遲變化不會影響記錄的文件
連接
無線
Scrcpy使用adb與設(shè)備通信骡技,adb可以通過TCP/IP連接到設(shè)備
- 將設(shè)備連接到與計算機(jī)相同的Wi-Fi
- 獲取設(shè)備IP地址(設(shè)置→關(guān)于手機(jī)→狀態(tài))
- 在設(shè)備上通過TCP/IP啟用adb
adb tcpip 5555
- 拔掉設(shè)備
- 連接到您的設(shè)備
adb connect DEVICE_IP:5555
鸣个,其中DEVICE_IP為設(shè)備ip地址 - 像往常一樣運(yùn)行scrcpy
減少比特率可能會有用
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 # 短的版本
多設(shè)備
如果adb設(shè)備中列出了多個設(shè)備羞反,則必須指定序列
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef # 短的版本
如果設(shè)備通過TCP/IP連接
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 # 短的版本
可以為多個設(shè)備啟動多個scrcpy實(shí)例
SSH隧道
要連接到遠(yuǎn)程設(shè)備,可以將本地adb客戶機(jī)連接到遠(yuǎn)程adb服務(wù)器 (前提是它們使用相同版本的adb協(xié)議)
adb kill-server # 在5037端口上關(guān)閉本地adb服務(wù)器
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
# 保持開放
從另一個終端
scrcpy
為了避免啟用遠(yuǎn)程端口轉(zhuǎn)發(fā)囤萤,可以強(qiáng)制一個轉(zhuǎn)發(fā)連接 (注意 -L
而不是 -R
)
adb kill-server # 在5037端口上關(guān)閉本地adb服務(wù)器
ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
# 保持開放
從另一個終端
scrcpy --force-adb-forwrad
就像無線連接一樣昼窗,降低視頻質(zhì)量或許會更好用
scrcpy -b2M -m800 --max-fps 15
窗口配置
標(biāo)題
默認(rèn)情況下,窗口標(biāo)題是設(shè)備模型涛舍,它是可以改變的
scrcpy --window-title 'My device'
位置和大小
可以指定初始窗口位置和大小
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
無邊界
禁用窗口裝飾
scrcpy --window-borderless
總是置頂
保持scrcpy窗口總是在頂部
scrcpy --always-on-top
全屏
應(yīng)用程序可以直接在全屏啟動
scrcpy --fullscreen
scrcpy -f # 短的版本
然后可以用 ctrl + f
動態(tài)切換全屏
旋轉(zhuǎn)
窗口可以旋轉(zhuǎn)
scrcpy --rotation 1
-
0
: 不旋轉(zhuǎn) -
1
: 逆時針旋轉(zhuǎn)90度 -
2
: 旋轉(zhuǎn)180度 -
3
: 順時針旋轉(zhuǎn)90度
還可以通過 Ctrl + ←
和 Ctrl + →
動態(tài)更改旋轉(zhuǎn)
其他鏡像選項
只讀
禁用控件 (可以與設(shè)備交互的所有東西澄惊,如輸入鍵、鼠標(biāo)事件富雅、拖放文件)
scrcpy --no-control
scrcpy -n
顯示
如果有多個顯示器可用掸驱,可以選擇要鏡像的顯示器
scrcpy --display 1
可以檢索顯示id列表
adb shell dumpsys display # 在輸出中查找我的顯示id
只有當(dāng)設(shè)備至少運(yùn)行Android 10時才能控制輔助顯示(否則以只讀方式鏡像)
關(guān)閉屏幕
可以使用命令行選項關(guān)閉設(shè)備屏幕
scrcpy --turn-screen-off
scrcpy -S
或在任何時候按 Ctrl + o
按 Ctrl + Shift + o
(或者 POWER
, Ctrl + p
) 恢復(fù)
它還可以防止設(shè)備休眠
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
顯示觸摸
對于演示,顯示物理觸摸(在物理設(shè)備上)可能很有用
Scrcpy提供了一個選項來在啟動時啟用該特性没佑,并在退出時恢復(fù)初始值
scrcpy --show-touches
scrcpy -t
輸入控制
旋轉(zhuǎn)設(shè)備的屏幕
按 Ctrl + r
在縱向和橫向模式之間切換
注意毕贼,它只在前臺應(yīng)用程序支持所請求的方向時才旋轉(zhuǎn)
復(fù)制粘貼
可以在計算機(jī)和設(shè)備之間雙向同步剪貼板
-
Ctrl + c
將設(shè)備剪貼板復(fù)制到計算機(jī)剪貼板 -
Ctrl + Shift + v
將電腦剪貼板復(fù)制到設(shè)備剪貼板(如果設(shè)備運(yùn)行Android >= 7則粘貼) -
Ctrl + v
將計算機(jī)剪貼板粘貼為文本事件序列
此外,每當(dāng)Android剪貼板發(fā)生變化時蛤奢,它都會自動同步到計算機(jī)剪貼板
文件拖動
安裝APK
要安裝APK鬼癣,請將APK文件(以.apk結(jié)尾)拖放到scrcpy窗口
推送文件到設(shè)備
要將文件推送到設(shè)備上的 /sdcard/,請將一個(非apk)文件拖放到scrcpy窗口
目標(biāo)目錄可以在啟動時更改
scrcpy --push-target /sdcard/foo/bar/
快捷鍵
Action | 快捷鍵 | 快捷鍵 (macOS) |
---|---|---|
切換全屏模式 |
Ctrl +f
|
Cmd +f
|
向左旋轉(zhuǎn)屏幕 |
Ctrl +← (left)
|
Cmd +← (left)
|
向右旋轉(zhuǎn)屏幕 |
Ctrl +→ (right)
|
Cmd +→ (right)
|
將窗口大小調(diào)整為1:1 |
Ctrl +g
|
Cmd +g
|
調(diào)整窗口大小以移除黑色邊框 |
Ctrl +x | Double-click1
|
Cmd +x | Double-click1
|
點(diǎn)擊 HOME
|
Ctrl +h | Middle-click
|
Ctrl +h | Middle-click
|
點(diǎn)擊 BACK
|
Ctrl +b | Right-click2
|
Cmd +b | Right-click2
|
點(diǎn)擊 APP_SWITCH
|
Ctrl +s
|
Cmd +s
|
點(diǎn)擊 MENU
|
Ctrl +m
|
Ctrl +m
|
點(diǎn)擊 VOLUME_UP
|
Ctrl +↑ (up)
|
Cmd +↑ (up)
|
點(diǎn)擊 VOLUME_DOWN
|
Ctrl +↓ (down)
|
Cmd +↓ (down)
|
點(diǎn)擊 POWER
|
Ctrl +p
|
Cmd +p
|
開機(jī) | Right-click2 | Right-click2 |
關(guān)閉設(shè)備屏幕 |
Ctrl +o
|
Cmd +o
|
點(diǎn)亮設(shè)備屏幕 |
Ctrl +Shift +o
|
Cmd +Shift +o
|
旋轉(zhuǎn)設(shè)備屏幕 |
Ctrl +r
|
Cmd +r
|
展開通知面板 |
Ctrl +n
|
Cmd +n
|
折疊通知面板 |
Ctrl +Shift +n
|
Cmd +Shift +n
|
將設(shè)備剪貼板復(fù)制到計算機(jī) |
Ctrl +c
|
Cmd +c
|
將電腦剪貼板粘貼到設(shè)備上 |
Ctrl +v
|
Cmd +v
|
將計算機(jī)剪貼板復(fù)制到設(shè)備并粘貼 |
Ctrl +Shift +v
|
Cmd +Shift +v
|
啟用/禁用幀率顯示 |
Ctrl +i
|
Cmd +i
|
自定義路徑
要使用特定的adb二進(jìn)制文件啤贩,在環(huán)境變量adb中配置其路徑
ADB=/path/to/adb scrcpy
要覆蓋scrcpy-server文件的路徑待秃,需要在SCRCPY_SERVER_PATH中配置它的路徑