ubuntu使用scrcpy投屏-免费神器scrcpy
欢迎转载,转载请说明出处
scrcpy的介绍、安装、使用
scrcpy介绍
scrcpy是screen copy的简写,是一个免费的开源软件,通过命令行和快捷键执行,实现安卓设备向电脑的高清投屏。我个人体验,感觉操作方便简洁,相当nice!!!
github地址:https://github.com/Genymobile/scrcpy
具体特点:
功能:
- 支持usb连接或wifi连接
- 支持录屏
- 支持鼠标键盘交互
- 支持apk拖放安装
- 支持文件上传
- 支持多设备同时投屏
性能:
- 高清,且尺寸、分辨率可调整
- 低延迟
scrcpy安装
以下安装方式是针对usb连接方式的,无线连接由于没有用过,所以后续再补充。
步骤1:启动adb服务
usb连接方式就是:
安卓设备:
1) usb线连接
2) 设置:usb偏好为“文件传输”
3) 设置:开启开发者模式,开启usb调试
电脑:
1) 启动adb服务
安卓设备那里没什么好说的,操作很简单;所以这里只谈“开启adb服务”。
首先,把安卓设备那三步操作完成。
第一次,安装并配置adb服务
安装adb,查看自己的安卓设备
sudo apt-get install android-tools-adb adb start-server lsusb
输出以下信息:
找到自己的安卓设备哪一行,2a70、9011在下面会用到。
创建设备文件:
下面命令中的名称“90-android”是自定义的,我的这个代表安卓9.0的意思。
echo 0x12d1 > ~/.android/adb_usb.ini touch /etc/udev/rules.d/90-android.rules gedit /etc/udev/rules.d/90-android.rules
将以下内容写入刚刚创建的文件:
SUBSYSTEM=="usb", ATTRS{idVendor}=="2a70", ATTRS{idProduct}=="9011", MODE="0666"
更改文件权限:
chmod 666 /etc/udev/rules.d/70-android.rules
重启adb服务
service udev restart adb kill-server adb start-server
执行以下命令,如有设备,则说明adb配置成功了:
adb devices
以后,开启adb服务
adb devices
adb start-server
adb devices
步骤2:snap方式安装scrcpy
官方提供的安装方式有:自己编译、snap包、AUR包(for Arch Linux)、Ebuild。
snap包的安装方式又有很多种(网页下载、终端snap命令等等),不在本文讨论范围内,这里只提供一种离线的安装方式。
我已经把snap包(截止到目前的最新版v1.9)下载好了,地址:链接: https://pan.baidu.com/s/1x9SgptII-4KOYW-vPuzMHw 密码: 6vdf
下载完成后到目标目录执行命令:
sudo snap install scrcpy.snap --dangerous
scrcpy常用方法
注意,以下命令都是在终端中输入的、快捷键都是在聚焦于安卓设备窗口时键入的。
检查设备连接
首先,将安卓设备通过usb连接好(见上,三部曲),将电脑上的adb服务开启(见上)
scrcpy.adb devices
开始投屏
首先,检查设备有没有连接好(见上)
scrcpy
结束投屏
关闭安卓设备窗口即可
回到HOME/返回/进入后台
分别是:鼠标中键、鼠标右键、Ctrl + s
全屏/回到合适尺寸
Ctrl + f
、Ctrl + x
展开通知栏/折叠通知栏
Ctrl + n
、Ctrl + Shift + n
安卓设备与电脑相互复制粘贴
在安卓设备复制后,粘贴到电脑上,粘贴的快捷键是:Ctrl + c
在电脑复制后,粘贴到安卓设备上,粘贴的快捷键是:Ctrl + Shift + v
安装apk文件
直接拖动一个apk文件到安卓设备窗口即可完成安装,终端将打印出相应信息
其他...
至于文件互传功能,我觉得直接在电脑上通过文件资源管理器更方便;
至于录屏功能,我觉得手机录屏工具更方便;
随着后续使用的增多,我会继续补充此文。
参考资料
- https://github.com/Genymobile/scrcpy
- https://www.linuxuprising.com/2019/03/install-scrcpy-on-linux-from-snap.html3
- https://www.linuxuprising.com/2019/03/control-android-devices-from-your.html
- https://blog.csdn.net/ppggxn/article/details/81709350
原文地址:https://www.cnblogs.com/hesse-summer/p/11200260.html
- viewgroup实现item拖动效果
- Android之ExpandableListView下拉分组的实现
- 粗略的物体碰撞预测及检测
- Regionserver频繁挂掉故障处理实践
- 【翻译】GeoJSON格式规范-RFC7946
- [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
- 基于Spring Cloud 几行配置完成单点登录开发
- 深入浅出全栈工程师: Web编程基础
- android之动画popowindows
- surfaceview详解
- android几种常见的启动模式
- 文件图片上传
- 深度学习代码系列之——Deep Learning Toolbox For Matlab
- Java加载js
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 计算输入的一句英文语句中单词数
- 《剑指offer》第21天:合并两个有序链表
- 单细胞转录组基础分析六:伪时间分析
- 使用PaintCode便捷地实现动画效果
- 用墨卡托和GPS坐标计算距离时误差测试
- 单细胞转录组基础分析五:细胞再聚类
- Semaphore回顾
- iOS13 关闭黑暗模式+状态栏显示问题解决方法
- 0807-6.2.0-CDSW中Session列表和team分析
- 单细胞转录组基础分析八:可视化工具总结
- 单细胞转录组基础分析七:差异基因富集分析
- 定位权限请求时易犯的错误小结
- NSOperationQueue队列中操作依赖相关思考
- 单细胞转录组高级分析一:多样本合并与批次校正
- 10元最多可喝多少瓶啤酒?(不可借酒+可借酒,swift语言实现)