本文轉(zhuǎn)載自:android開源投屏工具scrcpy簡介
1.初識scrcpy
1.1 scrcpy介紹
??首先锰蓬,我們來認(rèn)識一下Scrcpy掖鱼。Scrcpy 是一個開源的命令行工具軟件萌朱,被設(shè)計用于使計算機用戶能通過android adb或通過usb數(shù)據(jù)線控制其Android設(shè)備,支持通過鼠標(biāo)和鍵盤對Android設(shè)備操作,更重要的是無需root權(quán)限。
??開源地址:https://github.com/Genymobile/scrcpy
1.2 scrcpy特點
免費開源
無需root權(quán)限
可以運行在Linux,Window和Mac系統(tǒng)上
可以共享剪貼板
輕量(原生燃辖,僅顯示設(shè)備屏幕)
性能(30~60fps)
質(zhì)量(分辨率可達1920x1080或更高)
低延遲 (35-70ms)
快速啟動(數(shù)秒內(nèi)即能開始顯示)
無侵入性(不需要在安卓設(shè)備上安裝任何程序)
2.scrcpy指令說明
2.1 畫面設(shè)置
2.1.1 縮小分辨率
??有時候,將設(shè)備屏幕鏡像分辨率降低可以有效地提升性能网棍。我們可以將高度和寬度都限制在一定大小內(nèi)(如 1024):
scrcpy --max-size 1024
scrcpy -m 1024 // short version
較短的一邊會被按比例縮小以保持設(shè)備的顯示比例。這樣妇智,1920x1080的設(shè)備會以1024x576的分辨率顯示滥玷。
2.1.2 修改畫面比特率
??默認(rèn)的比特率是8Mbps。如果要改變畫面的比特率 (比如說改成2Mbps):
scrcpy --bit-rate 2M
scrcpy -b 2M // short version
2.1.3 限制畫面幀率
??畫面的幀率可以通過下面的命令被限制:
scrcpy--max-fps15
這個功能僅在Android 10和以后的版本被Android官方支持巍棱,但也有可能在更早的版本可用惑畴。
2.1.4 畫面裁剪
??設(shè)備畫面可在裁切后進行鏡像,以顯示部分屏幕航徙。這項功能可以用于:例如如贷,只顯示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° 逆時針旋轉(zhuǎn)
scrcpy --lock-video-orientation 2 // 180°
scrcpy --lock-video-orientation 3 // 90° 順時針旋轉(zhuǎn)
該設(shè)定影響錄制。
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來與安卓設(shè)備連接纹蝴。同時,adb能夠通過TCP/IP連接到安卓設(shè)備:
將您的安卓設(shè)備和電腦連接至同一Wi-Fi踪少。
獲取安卓設(shè)備的IP地址(在設(shè)置-關(guān)于手機-狀態(tài)信息)塘安。
打開安卓設(shè)備的網(wǎng)絡(luò)adb功能adb tcpip 5555。
將您的設(shè)備與電腦斷開連接援奢。
連接到您的設(shè)備:adb connect DEVICE_IP:5555(用設(shè)備IP替換 DEVICE_IP)兼犯。
運行scrcpy。
降低比特率和分辨率可能有助于性能:
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 # short version
2.3.2 多設(shè)備
??如果多個設(shè)備在執(zhí)行adb devices后被列出,您必須指定設(shè)備的序列號 :
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef // short version
??如果設(shè)備是通過TCP/IP方式連接到電腦的:
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 // short version
您可以同時啟動多個scrcpy實例以同時顯示多個設(shè)備的畫面免都。
2.4 窗口設(shè)置
2.4.1 標(biāo)題
??窗口的標(biāo)題默認(rèn)為設(shè)備型號锉罐。您可以通過如下命令修改它:
scrcpy --window-title 'Mydevice'
2.4.2 位置和大小
??您可以指定初始的窗口位置和大小:
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
2.4.3 無邊框
??關(guān)閉邊框:
scrcpy --window-borderless
2.4.4 保持窗口在最前面
??您可以通過如下命令保持窗口在最前面:
scrcpy --always-on-top
2.4.5 全屏
??您可以通過如下命令直接全屏啟動scrcpy:
scrcpy --fullscreen
scrcpy -f // short version
全屏狀態(tài)可以通過MOD+f實時改變绕娘。
2.4.6 旋轉(zhuǎn)
??通過如下命令脓规,窗口可以旋轉(zhuǎn):
scrcpy --rotation 1
可選的值有:
0: 無旋轉(zhuǎn)
1: 逆時針旋轉(zhuǎn)90°
2: 旋轉(zhuǎn)180°
3: 順時針旋轉(zhuǎn)90°
這同樣可以使用MOD+← (左) 和 MOD+→ (右) 的快捷鍵實時更改。需要注意的是险领, scrcpy 控制三個不同的朝向:
MOD+r 請求設(shè)備在豎屏和橫屏之間切換(如果前臺應(yīng)用程序不支持所請求的朝向侨舆,可能會拒絕該請求)。
--lock-video-orientation 改變鏡像的朝向(設(shè)備鏡像到電腦的畫面朝向)绢陌。這會影響錄制挨下。
--rotation (或MOD+←/MOD+→) 只旋轉(zhuǎn)窗口的畫面。這只影響顯示脐湾,不影響錄制臭笆。
2.5 其它設(shè)置
2.5.1 只讀
??關(guān)閉電腦對設(shè)備的控制(如鍵盤輸入、鼠標(biāo)移動和文件傳輸):
scrcpy --no-control
scrcpy -n
2.5.2 顯示屏
??如果有多個顯示屏可用秤掌,您可以選擇特定顯示屏進行鏡像:
scrcpy --display 1
??您可以通過如下命令找到顯示屏的id:
adb shell dumpsys display //在回顯中搜索“mDisplayId=”
第二顯示屏可能只能在設(shè)備運行Android 10或以上的情況下被控制(它可能會在電腦上顯示愁铺,但無法通過電腦操作)。
2.5.3 保持常亮
??防止設(shè)備在已連接的狀態(tài)下休眠:
scrcpy --stay-awake
scrcpy -w
程序關(guān)閉后闻鉴,設(shè)備設(shè)置會恢復(fù)原樣茵乱。
2.5.4 關(guān)閉設(shè)備屏幕
??在啟動屏幕鏡像時,可以通過如下命令關(guān)閉設(shè)備的屏幕:
scrcpy --turn-screen-off
scrcpy -S
或者在需要的時候按MOD+o孟岛。
要重新打開屏幕的話瓶竭,需要按MOD+Shift+o.
在Android上,電源按鈕始終能把屏幕打開渠羞。
為了方便斤贰,如果按下電源按鈕的事件是通過 scrcpy 發(fā)出的(通過點按鼠標(biāo)右鍵或MOD+p),它會在短暫的延遲后將屏幕關(guān)閉堵未。
物理的電源按鈕仍然能打開設(shè)備屏幕腋舌。
??同時,這項功能還能被用于防止設(shè)備休眠:
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
2.5.5 關(guān)閉屏保
??Scrcpy不會默認(rèn)關(guān)閉屏幕保護渗蟹。關(guān)閉屏幕保護:
scrcpy --disable-screensaver
2.6 文件傳輸
2.6.1 安裝APK
??如果您要安裝APK块饺,請拖放APK文件(文件名以.apk結(jié)尾)到scrcpy窗口。該操作在屏幕上不會出現(xiàn)任何變化雌芽,而會在控制臺輸出一條日志授艰。
2.6.2 將文件推送至設(shè)備
??如果您要推送文件到設(shè)備的/sdcard/,請拖放文件至(不能是APK文件)scrcpy窗口世落。該操作沒有可見的響應(yīng)淮腾,只會在控制臺輸出日志。在啟動時可以修改目標(biāo)目錄:
scrcpy --push-target /sdcard/foo/bar/