【导语】:一款在 PC 端控制安卓设备的小工具。可在 PC 和安卓设备间互通剪贴板、用电脑键盘打字、传输文件、安装程序、截图、录屏等等功能。

简介

scrcpy 可以显示并控制通过 USB (或 TCP/IP) 连接的安卓设备,且不需要任何 root 权限,支持 GNU/Linux、Windows 和 macOS。

特性

  • 轻量 (原生,仅显示设备屏幕)
  • 性能 (30~60fps)
  • 质量 (分辨率可达 1920×1080 或更高)
  • 低延迟 (35~70ms)
  • 快速启动 (最快 1 秒内即可显示第一帧)
  • 无侵入性 (不会在设备上遗留任何程序)

系统要求

  • 安卓设备最低需要支持 Android 5.0。
  • 确保设备已开启 adb 调试。
  • 在某些设备上,还需要开启额外的选项以使用鼠标和键盘进行控制。

项目地址是:

https://github.com/Genymobile/scrcpy

安装

在 Debian (目前仅支持 testing 和 sid 分支) 和Ubuntu (20.04) 上安装:

apt install scrcpy

另外,开发者还提供以下类型安装包:

  • snap 包
  • 对 Fedora 提供 COPR 包
  • 对 Arch Linux 提供 AUR 包
  • 对 Gentoo 提供 Ebuild 包

在 Windows 上安装:

  • 官网提供压缩包下载,解压即可使用

  • 使用 Chocolatey 安装:

choco install scrcpy
choco install adb
  • 使用 Scoop 安装:
scoop install scrcpy
scoop install adb

在 macOS 上安装:

  • 使用 Homebrew 安装
brew install scrcpy

如果 PATH 路径内没有 adb ,则还需要:

brew install android-platform-tools
  • 使用 MacPorts 安装
sudo port install scrcpy

运行

连接安卓设备,然后执行:

scrcpy

工具支持命令行参数,查看参数列表:

scrcpy --help

使用效果如图所示:

具体功能介绍

连接

1.将设备和电脑连接至同一 Wi-Fi。

2.打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址,也可以执行以下的命令:

adb shell ip route | awk '{print $9}'

3.启用设备的网络 adb 功能

adb tcpip 5555

4.断开设备的 USB 连接。

5.连接设备:

adb connect DEVICE_IP:5555 #将 DEVICE_IP 替换为设备 IP)

6.正常运行 scrcpy。

多设备

  • 如果 adb devices 列出了多个设备,必须指定设备的序列号 :
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef # 简写
  • 如果设备通过 TCP/IP 连接:
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 # 简写

可以同时启动多个 scrcpy 实例以同时显示多个设备的画面。

全屏

可以通过如下命令直接全屏启动 scrcpy:

scrcpy --fullscreen
scrcpy -f # 简写

复制粘贴

每次安卓的剪贴板变化时,其内容都会被自动同步到电脑的剪贴板上。所有的 Ctrl 快捷键都会被转发至设备。其中:

  • Ctrl+c 复制
  • Ctrl+x 剪切
  • Ctrl+v 粘贴

    开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

5.1 万 Star!不用 root 就能连接控制安卓的开源工具的更多相关文章

  1. 人生第一个过万 Star 的 github 项目诞生

    写 Spring Boot 开源项目走入第三个年头,终于有一个开源项目要破万 Star 了,请各位读者大人批评指正. Spring Boot 文章 2016年,我开始学习 Spring Boot 的时 ...

  2. 一些对外的服务(例如lnmp)都不用root执行

    lnmp lamp等需要对外的服务,都不用root用户执行进程 缺点: 如果php程序使用root运行,万一你的程序有漏洞,被拿到了web shell,那么黑客将直接拥有root权限进入你的系统 对于 ...

  3. 看github上有18万star的第一开源项目如何教你学前端编程的

    作为 Github | star 第一开源项目,已经超过18万 star:比之前最火的bootstrap的10万star还要多出8w,freeCodeCamp 越来越受关注,建站两年时间不到已经近40 ...

  4. 4.2 万 Star!开发 Web 和移动端应用的全栈平台

    [导语]:Meteor 是一个用 JS 开发现代 Web 应用程序的平台.它是开源的,在 GitHub 上有 4.2 万 Star. Meteor 是什么? 官方文档是这样描述 Meteor 的:Me ...

  5. 全网Star最多(近20k)的Spring Boot开源教程 2019 年要继续更新了!

    从2016年1月开始写博客,默默地更新<Spring Boot系列教程>,从无人问津到千万访问,作为一个独立站点(http://blog.didispace.com),相信只有那些跟我一样 ...

  6. Linux centosVMware MySQL常用操作设置更改root密码、连接mysql、mysql常用命令

    一.设置更改root密码 启动mysql /usr/local/mysql/bin/mysql -uroot 更改环境变量PATH,增加mysql绝对路径 使mysql -uroot永久生效需要编辑, ...

  7. SecureCRT无法使用root账户远程连接ubuntu

    ========1.问题============ SecureCRT无法使用root账户远程连接ubuntu 用其他账户连接,正常 用root账户连接,不能连接 =========2.原因====== ...

  8. filezilla的root账户无法连接服务器解决办法

    lz一直都是用filezilla上传文件到vm虚拟机的,用的是ubuntu14.04的系统.最近自己重新搭了lamp去做thinkphp的学习,lz有两个账户,一个是kin,另外一个是root.大家都 ...

  9. 解决Centos7 下 root账号 远程连接FTP,vsftpd 提示 530 Login incorrect 问题

    原文:解决Centos7 下 root账号 远程连接FTP,vsftpd 提示 530 Login incorrect 问题 三步走: 1.vim /etc/vsftpd/user_list 注释掉 ...

随机推荐

  1. 052.Python前端Django框架路由层和视图层

    一.路由层(URLconf) 1.1 路由层简单配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Dj ...

  2. GCC参数详解-(转自:篱笆博客)

    gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言, ...

  3. python内存管理总结

    之前在学习与工作中或多或少都遇到关于python内存管理的问题,现在将其梳理一下. python内存管理机制 第0层 操作系统提供的内存管理接口 c实现 第1层 基于第0层操作系统内存管理接口包装而成 ...

  4. 使用Tomcat插件控制台中文乱码解决方案(IDEA)(Day_51)

    解决方案 1. File -> Settings... 2. 搜索 Runner (运行程序),在 'VM options:' 中添加:-Dfile.encoding=GB2312 注:GB23 ...

  5. 【排除解决】System.Runtime.InteropServices.ExternalException (0x80004005): GDI+ 中发生一般性错误

    前言: 今天项目发布上线,发布到正式环境验证功能的时候忽然方向之前做的一个图片合成的功能报错了提示:System.Runtime.InteropServices.ExternalException ( ...

  6. openresty 学习笔记二:获取请求数据

    openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...

  7. GO语言常用标准库02---os包

    package main import ( "fmt" "os" ) func main() { //获得当前工作路径(当前工程根目录) dir, err := ...

  8. Go string 详解

    前言 字符串(string) 作为 go 语言的基本数据类型,在开发中必不可少,我们务必深入学习一下,做到一清二楚. 本文假设读者已经知道切片(slice)的使用,如不了解,可阅读 Go 切片 基本知 ...

  9. AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(六) 1. Tiny Darknet 听过很多人谈论SqueezeNet. SqueezeNet很酷,但它只是优化参数计数.当大多数高 ...

  10. ONNX 实时graph优化方法

    ONNX 实时graph优化方法 ONNX实时提供了各种图形优化来提高模型性能.图优化本质上是图级别的转换,从小型图简化和节点消除,到更复杂的节点融合和布局优化. 图形优化根据其复杂性和功能分为几个类 ...