博客 / 詳情

返回

華為小米都在佈局的多屏協同,其實Android早就有了!只是你不知道...

哈嘍,我是老劉

雙11可能不少朋友在置辦手機、筆記本。

如果你是衝着多設備協同辦公去的,先別急着下單,老劉給你推薦一款我們日常工作中常用的開源工具,看看能不能滿足你多設備協同的需求。

看完這篇文章,你將學會如何用scrcpy解鎖手機的隱藏技能,徹底改變你的工作和娛樂方式!

接下來我們先説有哪些使用場景,最後再介紹其背後的原理。

使用場景

1. 準備工作

  • 下載並安裝scrcpy 3.0以上版本。

下載完成後,根據你的操作系統選擇對應的安裝方式:

  • Windows:直接解壓即可使用。
    你可以在GitHub上找到scrcpy的最新版本。

    https://github.com/Genymobile/scrcpy/releases/tag/v3.3.3

  • Mac:使用Homebrew安裝,命令如下:

    brew install scrcpy
  • Linux:通過包管理器安裝,例如Ubuntu用户可以運行:

    sudo apt install scrcpy
  • 確保手機和電腦通過USB連接,並開啓開發者模式。

    開啓開發者模式的方法如下:

    1. 打開手機的"設置"。
    2. 找到"關於手機"或"關於設備"。
    3. 連續點擊"版本號"7次,直到提示"您已進入開發者模式"。
    4. 返回設置,進入"開發者選項"。
    5. 啓用"USB調試"。

    完成以上步驟後,用數據線將手機連接到電腦,確保連接穩定。

2. 實現屏幕鏡像

完成準備工作後,我們可以先體驗scrcpy的基礎功能——屏幕鏡像。

只需運行以下命令:

scrcpy

手機屏幕就會實時投射到電腦上。

你可以直接用鼠標和鍵盤操作手機,就像操作電腦上的應用一樣。

比如:

  • 在電腦上回復手機消息,打字速度更快。
  • 用大屏幕查看手機上的圖片或文檔,細節更清晰。

更重要的事是,這一切都非常流暢,幾乎沒有延遲。

如果你是第一次使用scrcpy,可能會驚歎於它的流暢度和高效性。

如果在屏幕鏡像的時候希望手機本身的屏幕是關閉的,也可以使用以下命令:

scrcpy --turn-screen-off

總結來説,屏幕鏡像是scrcpy最基礎但非常實用的功能,值得一試!

3. 多設備協同操作

如果你覺得屏幕鏡像已經夠強大了,那接下來的功能會讓你更加驚喜。

scrcpy支持通過--new-display參數,為手機創建多個虛擬顯示窗口。

每個窗口都可以獨立運行一個應用,真正實現多任務協同操作。

下面列舉幾種老劉自己常用的多窗口操作場景:

  • 在一個窗口中打開閲讀應用,同時在另一個窗口中打開聊天應用。
    這樣你可以一邊閲讀,一邊回覆消息,效率直接拉滿。

    scrcpy --new-display --start-app=com.tencent.weread --window-title="微信讀書" 
    
    scrcpy --new-display --keyboard=uhid  --display-ime-policy=local --start-app=com.tencent.mm --window-title="微信" 

    參數説明:

    • --new-display:為手機創建一個新的虛擬顯示窗口。
    • --start-app:指定要在窗口中運行的應用包名。
    • --window-title:為窗口指定一個標題,方便識別。
    • --keyboard=uhid:啓用物理鍵盤輸入,避免在窗口中輸入時被遮擋。
    • --display-ime-policy=local:將輸入法設置為本地輸入法,避免在窗口中輸入時被遮擋。

  • 如果你是開發者,可以通過--new-display參數為應用指定不同的分辨率和刷新率,方便調試應用在不同屏幕上的適配情況。

    scrcpy --new-display --start-app=com.example.flutter_test_1 --window-title="原始分辨率" 

    --new-display參數默認使用手機本身的分辨率創建虛擬顯示窗口。

scrcpy --new-display=1080x1080 --start-app=com.example.flutter_test_1 --window-title="特殊分辨率" 
通過`--new-display=1080x1080`參數,我們可以為應用創建一個1080x1080的虛擬顯示窗口。

比如老劉這邊也經常會用這種方式給運營展示產品海報在不同手機上的顯示效果。

  • 看短劇時,將窗口調整為適合視頻比例的寬高比,避免畫面被裁剪。
    不知道大家發現沒有,最近很火的短劇,在手機端和ipad上都會被裁剪,手機端一般是裁剪兩邊,而ipad端是裁剪上下部分。

    這兩種方式裁剪都有可能導致畫面內容被裁掉一部分。

    原因是短劇的視頻比例一般是9:16,而手機端常見的分辨率是1080x2400左右,ipad常見的分辨率是3:4左右。

    這種情況下,我們可以通過--new-display=1080x1920參數,為應用創建一個1080x1920的虛擬顯示窗口,保證視頻的畫面完整顯示。

    這裏用番茄讀書中的短劇作為展示:

    scrcpy --new-display=1080x2000 --start-app=com.dragon.read --window-title="短劇" 

    這裏1080x2000分辨率多出來的部分是底部選集的區域,不會影響視頻的顯示。

怎麼樣,無論是工作還是娛樂,多設備協同操作都能讓你的體驗更上一層樓!

想象一下你可以打開多個不同分辨率的應用同時操作,是不是和直接操作電腦一樣方便?

是不是比不少廠商的多設備協同操作功能更加強大?

其實不少廠商的多設備協同功能和scrcpy使用的是相同的技術。

有些是把底層代碼拿來改了改,有些甚至直接是scrcpy外面套了個殼。

下面我們就來看看scrcpy為啥這麼強大,它的運行原理是什麼?


原理

scrcpy 的強大之處在於它充分利用了 Android 系統的虛擬顯示功能。

當你使用 --new-display 參數時,scrcpy 會通過 Android 的 DisplayManager API 創建一個新的虛擬顯示器。

每個虛擬顯示器都相當於一個獨立的屏幕,系統會為其分配一個獨立的顯示端口。

你的手機可以同時運行多個應用,並將它們的畫面分別投射到不同的虛擬顯示器上。

而且 scrcpy 允許你為每個虛擬顯示器設置不同的分辨率和刷新率。

這背後的原理是,Android 系統本身支持多顯示器模式,廠商的多設備協同功能也是基於這一特性開發的。

scrcpy 則是將這一功能開放給了普通用户,並通過簡單的命令行參數,讓你可以輕鬆實現這些功能。

此外,scrcpy 的高效性得益於它的使用了串流方式,將手機屏幕內容實時編碼後,通過 USB 或 Wi-Fi 傳輸到電腦。

這種方式不僅保證了畫面的高質量,還能最大程度地降低延遲。現在在pc端比較流行的遠程遊戲方案也都基於這種串流的方式。

所以,無論是屏幕鏡像還是多設備協同操作,scrcpy 都能提供流暢的體驗。


總結

從基礎的屏幕投射到高級的多窗口操作,scrcpy 用開源的方式打破了廠商壁壘,讓每個人都能擁有比官方解決方案更強大的多設備協同能力。

而且這一切都是免費的。

不需要購買昂貴的硬件設備,不需要訂閲付費服務,只需要一條 USB 數據線和幾個簡單的命令,就能讓你的手機和電腦完美融合。

下次再看到各種花裏胡哨的多設備協同功能時,不妨想想:其實你可能早就擁有了更強大的工具,只是還不知道怎麼用而已。

好了,如果看到這裏的同學對客户端開發或者Flutter開發感興趣,歡迎聯繫老劉,我們互相學習。
點擊免費領老劉整理的《Flutter開發手冊》,覆蓋90%應用開發場景。
可以作為Flutter學習的知識地圖。

覆蓋90%開發場景的《Flutter開發手冊》

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.