本文轉載自:android開源投屏工具scrcpy簡介
1.初識scrcpy
1.1 scrcpy介紹
??首先,我們來認識一下Scrcpy。Scrcpy 是一個開源的命令行工具軟件,被設計用于使計算機用戶能通過android adb或通過usb數據線控制其Android設備,支持通過鼠標和鍵盤對Android設備操作,更重要的是無需root權限。
??開源地址:https://github.com/Genymobile/scrcpy
1.2 scrcpy特點
免費開源
無需root權限
可以運行在Linux,Window和Mac系統上
可以共享剪貼板
輕量(原生,僅顯示設備屏幕)
性能(30~60fps)
質量(分辨率可達1920x1080或更高)
低延遲 (35-70ms)
快速啟動(數秒內即能開始顯示)
無侵入性(不需要在安卓設備上安裝任何程序)
2.scrcpy指令說明
2.1 畫面設置
2.1.1 縮小分辨率
??有時候,將設備屏幕鏡像分辨率降低可以有效地提升性能。我們可以將高度和寬度都限制在一定大小內(如 1024):
scrcpy --max-size 1024
scrcpy -m 1024 // short version
較短的一邊會被按比例縮小以保持設備的顯示比例。這樣,1920x1080的設備會以1024x576的分辨率顯示。
2.1.2 修改畫面比特率
??默認的比特率是8Mbps。如果要改變畫面的比特率 (比如說改成2Mbps):
scrcpy --bit-rate 2M
scrcpy -b 2M // short version
2.1.3 限制畫面幀率
??畫面的幀率可以通過下面的命令被限制:
scrcpy--max-fps15
這個功能僅在Android 10和以后的版本被Android官方支持,但也有可能在更早的版本可用。
2.1.4 畫面裁剪
??設備畫面可在裁切后進行鏡像,以顯示部分屏幕。這項功能可以用于:例如,只顯示Oculus Go的一只眼睛。
scrcpy --crop 1224:1440:0:0 // 1224x1440 at offset(0,0)
如果--max-size在同時被指定,分辨率的改變將在畫面裁切后進行。
2.1.5 鎖定屏幕朝向
scrcpy --lock-video-orientation 0 // 自然朝向
scrcpy --lock-video-orientation 1 // 90° 逆時針旋轉
scrcpy --lock-video-orientation 2 // 180°
scrcpy --lock-video-orientation 3 // 90° 順時針旋轉
該設定影響錄制。
2.2 屏幕錄制
??可以在屏幕鏡像的同時錄制視頻:
scrcpy --record file.mp4
scrcpy -r file.mkv
在不開啟屏幕鏡像的同時錄制:
scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
// 按Ctrl+C以停止錄制
在顯示中“被跳過的幀”會被錄制,雖然它們由于性能原因沒有實時顯示。在傳輸中每一幀都有時間戳 ,所以包時延變化 并不影響錄制的文件。
2.3 連接方式
2.3.1 無線
??Scrcpy使用adb來與安卓設備連接。同時,adb能夠通過TCP/IP連接到安卓設備:
將您的安卓設備和電腦連接至同一Wi-Fi。
獲取安卓設備的IP地址(在設置-關于手機-狀態信息)。
打開安卓設備的網絡adb功能adb tcpip 5555。
將您的設備與電腦斷開連接。
連接到您的設備:adb connect DEVICE_IP:5555(用設備IP替換 DEVICE_IP)。
運行scrcpy。
降低比特率和分辨率可能有助于性能:
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 # short version
2.3.2 多設備
??如果多個設備在執行adb devices后被列出,您必須指定設備的序列號 :
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef // short version
??如果設備是通過TCP/IP方式連接到電腦的:
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 // short version
您可以同時啟動多個scrcpy實例以同時顯示多個設備的畫面。
2.4 窗口設置
2.4.1 標題
??窗口的標題默認為設備型號。您可以通過如下命令修改它:
scrcpy --window-title 'Mydevice'
2.4.2 位置和大小
??您可以指定初始的窗口位置和大?。?/p>
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
2.4.3 無邊框
??關閉邊框:
scrcpy --window-borderless
2.4.4 保持窗口在最前面
??您可以通過如下命令保持窗口在最前面:
scrcpy --always-on-top
2.4.5 全屏
??您可以通過如下命令直接全屏啟動scrcpy:
scrcpy --fullscreen
scrcpy -f // short version
全屏狀態可以通過MOD+f實時改變。
2.4.6 旋轉
??通過如下命令,窗口可以旋轉:
scrcpy --rotation 1
可選的值有:
0: 無旋轉
1: 逆時針旋轉90°
2: 旋轉180°
3: 順時針旋轉90°
這同樣可以使用MOD+← (左) 和 MOD+→ (右) 的快捷鍵實時更改。需要注意的是, scrcpy 控制三個不同的朝向:
MOD+r 請求設備在豎屏和橫屏之間切換(如果前臺應用程序不支持所請求的朝向,可能會拒絕該請求)。
--lock-video-orientation 改變鏡像的朝向(設備鏡像到電腦的畫面朝向)。這會影響錄制。
--rotation (或MOD+←/MOD+→) 只旋轉窗口的畫面。這只影響顯示,不影響錄制。
2.5 其它設置
2.5.1 只讀
??關閉電腦對設備的控制(如鍵盤輸入、鼠標移動和文件傳輸):
scrcpy --no-control
scrcpy -n
2.5.2 顯示屏
??如果有多個顯示屏可用,您可以選擇特定顯示屏進行鏡像:
scrcpy --display 1
??您可以通過如下命令找到顯示屏的id:
adb shell dumpsys display //在回顯中搜索“mDisplayId=”
第二顯示屏可能只能在設備運行Android 10或以上的情況下被控制(它可能會在電腦上顯示,但無法通過電腦操作)。
2.5.3 保持常亮
??防止設備在已連接的狀態下休眠:
scrcpy --stay-awake
scrcpy -w
程序關閉后,設備設置會恢復原樣。
2.5.4 關閉設備屏幕
??在啟動屏幕鏡像時,可以通過如下命令關閉設備的屏幕:
scrcpy --turn-screen-off
scrcpy -S
或者在需要的時候按MOD+o。
要重新打開屏幕的話,需要按MOD+Shift+o.
在Android上,電源按鈕始終能把屏幕打開。
為了方便,如果按下電源按鈕的事件是通過 scrcpy 發出的(通過點按鼠標右鍵或MOD+p),它會在短暫的延遲后將屏幕關閉。
物理的電源按鈕仍然能打開設備屏幕。
??同時,這項功能還能被用于防止設備休眠:
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
2.5.5 關閉屏保
??Scrcpy不會默認關閉屏幕保護。關閉屏幕保護:
scrcpy --disable-screensaver
2.6 文件傳輸
2.6.1 安裝APK
??如果您要安裝APK,請拖放APK文件(文件名以.apk結尾)到scrcpy窗口。該操作在屏幕上不會出現任何變化,而會在控制臺輸出一條日志。
2.6.2 將文件推送至設備
??如果您要推送文件到設備的/sdcard/,請拖放文件至(不能是APK文件)scrcpy窗口。該操作沒有可見的響應,只會在控制臺輸出日志。在啟動時可以修改目標目錄:
scrcpy --push-target /sdcard/foo/bar/