安卓神器 - scrcpy

scrcpy是安卓上一个开源的投屏工具,把手机端屏幕实时投到pc上,pc端能够是跨平台的,windows、Linux、Mac都支持。最先我是用它来投屏来录制一些教学视频,这样能够将pc的桌面和手机画面很方便的同时录制下来。后来慢慢发现scrcpy远不止投屏这么简单,他还能够:git

  • 控制手机,能够模拟几乎全部的触摸操做和手机上的按键。
  • 快速输入,能够方便的在pc上打字到安卓端。
  • 双向同步剪贴板。

并且全部的这些都不须要root,实在是方便,对我我的来讲,我是微动手势、碎片记忆等多个App的开发者,经常须要在酷安上回复用户的问题,手机打字的效率让我倍感折磨,而酷安没有pc端能够用,因此我一直在寻找提升输入效率的方法和工具,我用过蓝牙键盘,尝试过安卓上一些支持远端输入的输入法,甚至想本身开发一个双向同步剪贴板的工具,直到最终使用scrcpy,我想应该是不必再本身开发工具了,下面这张图来自官方,就是启动scrcpy以后弹出的手机端画面。github

image.png

技术上来讲,scrcpy是经过adb调试的方式来链接到手机,并将手机屏幕投到电脑上,同时能够经过pc控制您的安卓设备。由于adb是能够经过USB链接,也能够经过wifi链接。因此scrcpy也就具有了有线和无线两种链接方式,我在以前有个帖子专门详细描述了wifi链接adb的方法和好处,我在平常也一直都使用wifi来使用scrcpy,很是好用。windows

基本特性

下面是来自官方给顶的几个scrcpy的特性:浏览器

  • 轻量
  • 性能 (30~60fps)
  • 质量 (1920×1080 及以上)
  • 低延时 (35~70ms)
  • 启动速度快 (1秒左右出画面)
  • 非侵入性 (不须要在手机安装任何东西)

使用scrcpy的要求有如下几点:app

  • 安卓设备至少须要API 21(Android 5.0以上版本);
  • 设备上须要启用了adb调试;

安卓手机的adb调试的开启通常是在开发者选项里,不少手机的开发者选项默认是隐藏的,须要屡次点击手机系统版本,就能够看到了。工具

启动

下载对应你的操做系统的scrcpy版本,以windows为例,下载scrcpy,最新版本为1.13。性能

下载地址:https://github.com/Genymobile...开发工具

无需安装,解压就好。解压后的目录以下:测试

2020-05-24-13-27-29.png

打开windows命令行程序(cmd),定位到此目录,确认手机端usb调试已经开启,而后手机经过usb或wifi链接到电脑。首次链接会弹出是否信任该电脑,点击始终信任便可。运行adb devices查看是否链接成功,如图:spa

2020-05-24-13-33-54.png

而后运行scrcpy便可弹出手机画面的实时投射了。我在大部分状况下都使用无线链接,使用无线的话,因为带宽通常小于有线链接,而默认的scrcpy比特率比较高,这对于无线链接来讲可能形成卡顿。还好scrcpy停供了一些命令行参数进行调节,下降比特率和分辨率,因此我实际上使用的命令行是:

scrcpy.exe -b 1m -m 1024 --prefer-text

-b和-m分别是控制带宽和分辨率的,能够根据本身的实际带宽状况调整, --prefer-text参数会在下面讲到。

控制手机

看到手机画面后,scrcpy提供了不少快捷键方便来控制安卓端,经常使用的大概有:

  • Ctrl+b 返回,或者能够按鼠标右键
  • Ctrl+h 桌面,或者能够按鼠标中键
  • Ctrl+s 多任务
  • Ctrl+p 手机电源
  • Ctrl+g 显示最佳窗口,或者能够双击手机画面外黑色区域
  • Ctrl+上下键 调节音量
  • Ctrl+左右键 旋转屏幕
  • Ctrl+o 关闭设备屏幕,但pc端仍保持链接
  • Ctrl+c 将设备剪贴板复制到计算机
  • Ctrl+v 将计算机剪贴板粘贴到设备
  • Ctrl+shift+v 将计算机剪贴板同步到设备剪贴板
  • Ctrl+f 切换全屏模式

并且scrcpy经过鼠标对触摸的模拟很全面,长按和拖动均可以模拟,这让我挺诧异的,由于我本身开发的微动手势有个功能,就是模拟鼠标,我知道想要模拟一个拖放操做仍是很困难的,可是scrcpy完美的作到了。基本上,熟练之后能够用scrcpy在pc上控制安卓作任何事情。

对游戏的支持

我不太玩游戏,scrcpy受到带宽的限制,看官方的帧率说是30-60fps,加上投射自己对cpu的占用,估计对游戏不会有太好的支持,除非是一些对帧率要求不高的休闲类游戏,不然在游戏上对scrcpy不要有过高指望了。

不过,scrcpy内置对按键的支持,因此若是一款游戏支持蓝牙键盘,那么就能够经过scrcpy使用pc键盘来玩。

输入法支持

scrcpy对我来讲,最大的做用仍是在于快速输入,能够用pc键盘完成酷安等app的文字快速输入,固然,要选择一个合适的输入法。通过测试,那些能蓝牙键盘有很好支持的输入法对于scrcpy也能很好的支持,能够大幅提升输入效率,我使用的谷歌拼音和讯飞输入法都能比较好的支持pc键盘的快速输入。

有时候,咱们须要从pc端复制一些文字到手机端,好比在pc的浏览器上搜出的一些信息,要传到手机上,scrcpy提供了按ctrl-v能够将pc粘贴板直接粘贴到手机端,可是很惋惜,这种方式是把文字转换为按键一点一点在手机端重放,也就是说仍是经过安卓端的输入法“输”进去的。那么对于中文就彻底不可行了,没办法直接复制。

并且就算是英文,scrcpy在缺省状况下,是经过模拟每一个字符的按下和弹起来作ctrl-v的,这样的话,对于不少输入法,会致使粘贴的英文和实际输出的英文不一致的状况(好比不少输入法判断出首字母会自动大写),好在scrcpy提供了一个命令行参数--prefer-text能够经过字符的方式进行ctrl-v,而不是模拟按键,这样实测的结果是英文的粘贴基本没有问题了。

剪贴板同步

对于中文没法直接粘贴这个问题,scrcpy提供了另外一个很好的解决方案,就是剪贴板同步的功能,按Ctrl-shift-v,能够直接把pc端的剪贴板同步到安卓端,而后直接到须要的地方再长按粘贴就能够了,完美解决中文问题。