69bd3d1d8e027db67dab021f96fc2edf6402b841
JE-Skin (SvelteKit + Tauri)
环境要求
- Node.js 18+(建议 LTS)
- Rust stable(
rustup+cargo) - Windows 下请确保已安装 WebView2 Runtime 和 MSVC C++ 构建工具
- Android 构建需要 Android SDK + NDK
安装依赖
npm install
运行方式
- 仅启动前端(Vite)
npm run dev
默认地址是 http://localhost:5173。
- 启动 Tauri 桌面应用(前端 + Rust)
npm run tauri dev
构建
构建前端静态资源:
npm run build
构建 Tauri 桌面安装包:
npm run tauri build
构建 Android APK / AAB:
npx tauri android build
产物路径:
- APK:
src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk - AAB:
src-tauri/gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
Release APK 默认使用 debug keystore 签名(src-tauri/gen/android/app/je-skin-debug.keystore),可直接 adb install 到设备。
代码检查
npm run check
v0.5.0 修改记录
Android USB 串口接入
- Tauri 插件注册:Android 端通过 Rust builder 注册
usb-serial插件,移除MainActivity中的手动加载逻辑 - USB 设备枚举:使用
usb-serial-for-android的UsbSerialProber识别串口设备,并返回设备名、厂商 ID、产品 ID、权限状态等信息 - USB 权限申请:完善 Android USB 授权回调,支持按设备名、vendorId/productId 解析设备并处理授权后的打开流程
- 串口数据桥接:Kotlin 端打开 USB serial port 后通过 Unix socketpair 将 fd 交给 Rust,Rust 端继续复用
serial_connect_fd数据采集链路 - 资源释放:关闭连接时同步释放桥接 fd、USB serial port 和
UsbDeviceConnection,避免重复打开后的资源残留
Tauri 权限与构建
- 新增
src-tauri/permissions/usb-serial/default.toml,声明 Android USB serial 插件命令和前端所需本地命令权限 default.json增加 USB serial 与本地命令权限,兼容 snake_case / camelCase 插件命令名- Android Gradle 仓库加入 JitPack,用于解析 USB serial 驱动依赖
- ProGuard 增加 Tauri 插件注解、
UsbSerialPlugin和com.hoho.android.usbserial保留规则,避免 release 包混淆后插件命令失效 - Android 构建下
serial_enum返回空列表,并仅保留 fd 连接入口,避免桌面串口枚举依赖进入 Android 编译路径
v0.4.0 修改记录
移动端性能优化
- SignalChart / SummaryCurve:在
@media (max-width: 900px)下移除 SVG 路径上的filter: drop-shadow(),避免移动端 GPU 软件回流导致卡顿 - SignalChart:隐藏
.scan-haze(mix-blend-mode: screen合成开销大),简化面板background/box-shadow - SummaryCurve:移动端移除
.summary-line和.summary-dot的 drop-shadow 滤镜 - 页面级:移动端隐藏
.hud-noise(feTurbulenceSVG 滤镜是最大性能杀手),降低.hud-vignette透明度,简化.hud-gradient - 移除 inactive 面板的
filter: blur()过渡动画 - 移除 transition 中的
filter属性,添加will-change: d优化路径更新
移动端 UI 调整
- 隐藏三大金刚:
@media (max-width: 900px)下隐藏标题栏右侧的最小化/最大化/关闭按钮(Android 系统自带窗口管理)
Android 打包
- Release 构建配置使用 debug keystore 签名,输出签名 APK 而非 unsigned
推荐 IDE 插件
VS Code + Svelte + Tauri + rust-analyzer
Description