当前位置: 首页 > web >正文

如何编译RustDesk(Unbuntu 和Android版本)

编译Linux版本的RustDesk

备注:官方文档上,一边都是基于sciter,这个在后面已经不建议使用了,但是依然可以编译

刚开始的时候看官方的文档,涉及的东西比较多,也搞的一头雾水,通过B站上一个视频,可以通过CI/CD来编译,以及act本地试试(最终放弃,大概需要下载大几十G的容器下来)。最终总算明确了方向,可以用自动化流水线来编译。直接看CI/CD的脚本文件

文件在.github/workflows目录下,重点研究 bridge.yml 和flutter-build.yml 这两个文件。

bridge

flutter 调用rust,这里用到了rust_bridge的功能

第一步需要把ffi相关的文件构建出来。参考bridge.yml文件

先安装必备的软件

安装特定版本的rust 和flutter

这里用的rust  1.75.0 版本,flutter 是3.22.3版本

注意环境变量替换成上面的版本信息

到这里正常应该都没有问题

最终应该会生成这些新的文件

编译rust-flutter-linux版本

找到对应的节点

注意这里的vcpkg-triplet后面安装的时候要用到

先安装这两个,libva-dev然后执行

$VCPKG_ROOT/vcpkg install --triplet x64-linux --x-install-root "$VCPKG_ROOT/installed"

  最终看看vcpkg的根目录里面 installed目录是否安装ffmpeg,yuv等包(代码根目录里面的vcpkg)

安装必备的软件

删除掉

到这里编译完成了,就可以编译flutter了

执行python3 ./build.py --flutter --skip-cargo 

其实就是flutter build linux --release

等待结果,这样就编译出rustdesk linux 的flutter版本了

编译Android版本的RustDesk

参考编译Linux版本,找到对应的Android版本节点,按步骤来

执行./flutter/build_android_deps.sh arm64-v8a

环境变量在上面找到替换

最终就编译出so文件,编译玩了,要拷贝到flutter的Android目录jni里面,这样打包。有了librustdesk.so文件,还需要c++的so

注意环境变量,根据自己的系统替换。

编译apk,最后size 应该是23M左右,我用的是1.4.0分支。

注意release的时候是需要前面的,目前的脚本里面是release 里面用了debug

也可以构建自己的release 签名密钥

先用key-tool 生产一个upload-keystore.jks文件。然后创建一个key .properties文件

内容如下

在flutter的build .gardle文件中

确定这里是release,等待最终编译结束,可以用签名检查工具检查一下。

备注:

1. Rustdesk被诈骗分子利用了,只能部署自己的私有远程服务器,安装在手机上会被拦截。酌情安装。

2. 这里假设读者已经入门了,比如flutter国内源设置,rust国内源,以及flutter 编译android安装设置阿里源。

http://www.xdnf.cn/news/16093.html

相关文章:

  • MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
  • haproxy的负载均衡集群搭建
  • Rust实战:决策树与随机森林实现
  • 微博视觉算法面试30问全景精解
  • MDC(Mapped Diagnostic Context) 的核心介绍与使用教程
  • 【PTA数据结构 | C语言版】爱之匹配
  • 【C++】继承和多态扩展学习
  • 【上市公司变量测量】Python+FactSet Revere全球供应链数据库,测度供应链断裂与重构变量——丁浩员等(2024)《经济研究》复现
  • Docker从入门到精通
  • IPv4枯竭时代:从NAT技术到IPv6的演进之路
  • SpringBoot6-10(黑马)
  • git的版本冲突
  • 【未限制消息消费导致数据库CPU告警问题排查及解决方案】
  • Vue 分析脚手架
  • stm32内存分析
  • 传输层协议
  • 基于MySQL实现分布式调度系统的选举算法
  • C 语言的指针复习笔记
  • Pytorch版本、安装和检验
  • AJAX 概念与 axios 使用
  • 深度解析 HTML `loading` 属性:优化网页性能的秘密武器
  • rancher使用rke在华为云多网卡的服务器上安装k8s集群问题处理
  • 4x4矩阵教程
  • YModem在Android上的实现(四)
  • Oracle数据库索引性能机制深度解析:从数据结构到企业实践的系统性知识体系
  • Android 单编 framework 相关产物输出介绍
  • Unreal ARPG笔记
  • Oracle自治事务——从问题到实践的深度解析
  • Linux 文件操作详解:结构、系统调用、权限与实践
  • 搭建前端页面,介绍对应标签