一、服务器端
1、获取图像:android.media.ImageReader(允许应用程序直接访问呈现表面的图像数据)。
2、传输:开一个socket服务器端口,一旦与客户端连接成功后,往客户端发送frame数据(客户端先发送一个数据过来,确认接收后服务器端才会发送数据)
3、解决Android权限问题:编译一个jar包或者apk,包含一个已经编译好的dex文件(Android字节码,可以直接运行,不用再获取系统权限),利用安卓的app_process运行启动后Android端会开启一个名字为app_process的进程。

二、客户端
1、Socket连接服务器端。
2、把frame数据保存并显示到画布。

三、兼容使用minicap客户端接收数据版本,服务端修改:
(参考文档地址:https://testerhome.com/topics/21647?locale=zh-CN
官网地址:https://github.com/Genymobile/scrcpy)
1、frame数据转jpeg数据,lib包位置如下图所示,可根据cpu版本push到设备中

2、socket启动指定端口6612,不用等待客户端发送过来请求,直接连接成功后发送jpeg数据。
3、启动服务端参数修改,主要可以设置3个参数:-Q(画质:0-100) -r (帧率:frame/sec)-P (屏幕宽度)

四、适配Android4.4
服务启动修改:minSdbVersion 21为minSdbVersion 19
客户端启动命令:
adb shell ANDROID_DATA=/data/local/tmp CLASSPATH=/data/local/tmp/server-debug.apk app_process / com.genymobile.scrcpy.Server -L

adb shell ANDROID_DATA=/data/local/tmp LD_LIBRARY_PATH=${更改为上一步返回的路径}:/data/local/tmp CLASSPATH=/data/local/tmp/server-debug.apk app_process / com.genymobile.scrcpy.Server -Q 40 -r 24 -P 450

五、客户端接收代码修改:
1、下载minicap接收数据源码
2、找到minicap接收数据部分,正常在源码的example/app.js目录下
3、修改socket连接端口,为adb forward 转发到本地的端口,连接2次(必须)

4、异常退出去掉process.exit(1) //屏蔽exit()
5、连接正常后接收到数据并保存到指定目录下

scrcpy替换minicap相关推荐

  1. 如何用Sonic云真机打王者

    使用Sonic进行跨网段部署,助力海外业务的公司进行专项检测.提供定时任务充分利用无人值守时间回归UI测试,省时省力.自研随机事件测试与UI遍历测试,支持打通Jenkins的DevOps流程,Soni ...

  2. 从零到一了解APP速度测评

    作者 | 龙霸天 一.引言 为了知道「为什么会打雷下雨」,我们拿起了手机,使用百度 APP 进行搜索: 小小的一个搜索诉求,却需要经历一个不短的交互过程.就跟去银行办业务一样,只想改个银行预留手机号, ...

  3. 软件测试 | 测试开发 | 如何用Sonic云真机打王者

    使用Sonic进行跨网段部署,助力海外业务的公司进行专项检测.提供定时任务充分利用无人值守时间回归UI测试,省时省力.自研随机事件测试与UI遍历测试,支持打通Jenkins的DevOps流程,Soni ...

  4. 【译】Introducing scrcpy

    我开发了一个应用程序来显示和控制连接在USB上的Android设备. 它不需要任何root访问权限. 它适用于GNU / Linux,Windows和Mac OS. 它侧重于: 亮度 (原生,仅显示设 ...

  5. 电脑操作手机scrcpy软件

    下载地址:网址:scrcpy-win64-v1.17 提取码: yvid : github网址:scrcpy: 我这里只使用有线连接: 首先需要在手机开发者选项中打开usb调试选项,而后连接数据线,运 ...

  6. adb 和 scrcpy实现手机无线投屏

    开启手机USB调试功能 不管有线连接或者无线连接,首先都要开启手机的USB调试 ,具体路径一般雷同,不同手机品牌路径和表述有所不同.开启方法是: "设置"->"关于 ...

  7. 史上最全scrcpy投屏教程(用你的电脑控制手机)

    史上最全scrcpy投屏教程(用你的电脑控制手机) 一.下载投屏所需的资源 网址:scrcpy-win64-v1.17 提取码: yvid : 当然你也可以去github下载最新的或你所需要的资源,网 ...

  8. 软件推荐:多屏协作scrcpy

    在百度百科中,关于多屏协作的定义是这样的:通过多屏协作,可以实现跨系统.跨设备协同,让手机与电脑.平板实现资源共享,协同操作,提高工作效率.不要馋华为小米的多屏协同了,来试试这个软件吧!(温馨提示:使 ...

  9. 【投屏】Scrcpy源码分析二(Client篇-连接阶段)

    Scrcpy源码分析系列 [投屏]Scrcpy源码分析一(编译篇) [投屏]Scrcpy源码分析二(Client篇-连接阶段) [投屏]Scrcpy源码分析三(Client篇-投屏阶段) [投屏]Sc ...

最新文章

  1. Java 高并发面试题
  2. LaTex 常用整理
  3. 一款非常好用的Linux下的C/C++ IDE
  4. mysql 数据约束条件_mysql基本数据类型和约束条件
  5. 如果股市出现震荡行情,投资者应如何应对?
  6. 开发中很实用的10个效果
  7. win10系统dnf安装不上服务器,win10系统玩不了DNF的解决方法
  8. Java中的跨站请求伪造
  9. 小波 奇异点 matlab,用Matlab小波变换检测奇异点.doc
  10. Linux从图形界面切换到文本界面快捷键不好用的解决方法
  11. 历代诗词咏宁夏注释1----常星景: 六盘
  12. 在Golang里如何实现结构体成员指针到结构体自身指针的转换
  13. 免费拿走Vivado2017.4安装包及其license(附带安装教程)
  14. 译码器设计——Verilog HDL语言
  15. 人工智能工程师学习路线/自然语言处理算法工程师
  16. SQL SERVER 表变量 和 标量变量
  17. TrafficMonitor——简洁实用的网速/cpu/内存监控器
  18. 精简5800三维程序]
  19. php图片大小优化,一招教你优化PNG,JPG图片的文件大小
  20. 又一家金融科技公司走到了退市边缘

热门文章

  1. 如何实现在Linux上一键安装虚拟机(从入门到脚本自动化安装)
  2. mysql 军规_58到家MySQL军规升级版
  3. 美学心得(第二百一十七集) 罗国正 (2020年12月)
  4. 对展开运算符和object.assign()的理解
  5. mysql association_在mybatis的xml中添加association不生效
  6. ServiceMesh到底好不好
  7. 实现图片中文的识别和获取图片上文字的坐标(java实现)
  8. java架构师年薪_Java架构师一般的薪资是多少?高不高?
  9. 怎么能免费制作自己的微信小程序?
  10. 硬盘分区删除后的恢复!