一、概述
简介:Scrcpy是一款小巧的Android投屏软件,能够跨平台其支持Windows、Mac、Linux系统。右PC充当客户端,Android板子作为服务端。
原理:Android将录屏发送给PC,PC接收到数据后进行展示。PC上鼠标点击录屏上对应的坐标,把坐标通过Socket通信传递给Android端,实现对Android的控制
二、准备工作
1.下载Scrcpy源代码【下载】
2.下载msys64
3.在开始菜单运行msys2
4.打开后先安装客户端所需要的类库
#运行环境需要的库 pacman -S mingw-w64-x86_64-SDL2 \ mingw-w64-x86_64-ffmpeg \ mingw-w64-x86_64-libusb
5.安装编译环境
#客户端编译需要用到的库 pacman -S mingw-w64-x86_64-make \ mingw-w64-x86_64-gcc \ mingw-w64-x86_64-pkg-config \ mingw-w64-x86_64-meson
6.打开minigw64.exe运行命令执行编译
meson setup x --buildtype=release --strip -Db_lto=true \ -Dprebuilt_server=server/scrcpy-server ninja -Cx
其中-Dprebuilt_server不为空,则执行预编译文件,如果为空则不适用预编译文件,转而使用本地代码编译出一个apk。这个-Dprebuilt_server在scrcpy-2.2/server/meson.build中有说明
# It may be useful to use a prebuilt server, so that no Android SDK is required # to build. If the 'prebuilt_server' option is set, just copy the file as is. prebuilt_server = get_option('prebuilt_server') if prebuilt_server == '' //如果预编译路径为空则执行客户端自定义编译,即用本地环境编译 custom_target('scrcpy-server', # gradle is responsible for tracking source changes build_by_default: true, build_always_stale: true, output: 'scrcpy-server', command: [find_program('./scripts/build-wrapper.sh'), meson.current_source_dir(), '@OUTPUT@', get_option('buildtype')], console: true, install: true, install_dir: 'share/scrcpy') else if not prebuilt_server.startswith('/') # prebuilt server path is relative to the root scrcpy directory prebuilt_server = '../' + prebuilt_server endif custom_target('scrcpy-server-prebuilt', input: prebuilt_server, output: 'scrcpy-server', command: ['cp', '@INPUT@', '@OUTPUT@'], install: true, install_dir: 'share/scrcpy') endif
如果以上命令执行成功则会出现如下图所示:代表已经编译完成
执行成功后会在scrcpy-2.2/x/server目录下生成scrcpy-server文件
7.执行如下命令运行程序
./run x
其中run为scrcpy-2.2目录下的run文件 ,x代表scrcpy-2.2目录下的x目录
8.运行效果如下图
此时手机已经能投屏到PC上了
三、遇到的问题
1.我编译使用的源码版本为scrcpy-2.2,运行所需的java jdk的版本必须是java11+不然会build不成功
2.要想要连接成功,则必须手机端打开usb调试。不然会提示“”“没有任何设备连接adb”
3.配置java环境变量的时候需配置%JAVA_HOME%,不然会提示找不到JAVA_HOME
四、总结
以上就是windows10编译scrcpy2.2的步骤,先记录到这里,后面遇到问题再补充。
标签:scrcpy,prebuilt,windows10,w64,server,编译,mingw From: https://www.cnblogs.com/tony-yang-flutter/p/17807430.html