fish 5 months ago
parent
commit
83eecc1664
1 changed files with 72 additions and 4 deletions
  1. 72 4
      docs/dev.md

+ 72 - 4
docs/dev.md

@@ -68,17 +68,27 @@ docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user
 
 # 运行
 ./target/debug/rustdesk
+
+
+git clone https://github.com/rustdesk/rustdesk # 克隆Github存储库
+cd rustdesk # 进入文件夹
+docker build -t "rustdesk-builder" . # 构建容器
+
+docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
+
 ```
 
 
-## 构建 Ubuntu 本地开发环境
+## 构建 Ubuntu22 本地开发环境
 
 跨平台项目一般都在Linux上开发,可以依照 dockerfile 中参考,安装并构建:
-
+主要依赖git,rust,flutter,ndk,sciter,vcpkg(音视频)
 ```
 sudo apt install ca-certificates -y
 sudo apt update -y
-sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config
+sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config libxcb-randr0-dev libxdo-dev \
+        libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev make \
+        libgstreamer1.0-dev libgstreamer-plu
 
 git clone https://github.com/microsoft/vcpkg
 cd vcpkg
@@ -90,6 +100,13 @@ vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64
 
 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
 source $HOME/.cargo/env
+rustup --version
+
+# rust自动生成dart代码
+cargo install flutter_rust_bridge_codegen --version 1.75.3 --features uuid
+#flutter_rust_bridge_codegen create demo  #创建项目
+
+# ~\.cargo\bin\flutter_rust_bridge_codegen.exe --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart   --llvm-path=E:\Data\LLVM
 
 git clone https://github.com/rustdesk/rustdesk
 cd rustdesk
@@ -101,12 +118,63 @@ VCPKG_ROOT=$HOME/vcpkg cargo run
 
 flutter_rust_bridge_codegen pushd flutter && flutter pub get && popd
 
+flutter build apk --target-platform android-arm64
+
+flutter build windows
+
+
 ```
 
 ## 构建 windows 本地开发环境
 
-也可以在windows开发,安装rust,flutter,Android,vs,vcpkg等:
+也可以在windows开发,安装rust,flutter,Android,vs,vcpkg(C++)等:
+
+```
+
+```
+
+
+修改id 服务器 libs/hbb_common/src/config.rs : 
 
 ```
+id_server = "127.0.0.1:8080"
+relay_server = "127.0.0.1:8080"
+api_server = "127.0.0.1:8081"
+key = "key"
+```
+
+编译windows:
+
+```
+# windows打包
+cargo build --release
+
 
+PS C:\Users\Administrator> $env:PATH += ";E:\Data\LLVM\lib"
+PS C:\Users\Administrator> $env:PATH += ";E:\Data\flutter\flutter_windows_3.13.1-stable\flutter\bin"
+dart pub upgrade
+flutter build windows
 ```
+
+
+## 项目结构
+
+libs/hbb_common: 视频编解码, 配置, tcp/udp 封装, protobuf, 文件传输相关文件系统操作函数, 以及一些其他实用函数
+
+libs/scrap: 屏幕截取
+
+libs/enigo: 平台相关的鼠标键盘输入
+
+src/ui: GUI
+
+src/server: 被控端服务音频、剪切板、输入、视频服务、网络连接的实现
+
+src/client.rs: 控制端
+
+src/rendezvous_mediator.rs: 与rustdesk-server保持UDP通讯, 等待远程连接(通过打洞直连或者中继)
+
+src/platform: 平台服务相关代码
+
+flutter: 移动版本的Flutter代码
+
+flutter/web/js: Flutter Web版本中的Javascript代码