1. Demo 简介
是什么
RustDroid 是一款用 Rust + Tauri 2.x 实现的轻量级 Android 代码编辑器(桌面应用,Windows 平台)。相比 Android Studio 1.2GB 量级的安装包,本 Demo 安装包仅 3.14 MB,目标是为低配设备用户提供一个"快速打开、快速浏览、快速小改"Android 项目代码的轻量入口。
说明:本 Demo 是一个基础版代码编辑器底座,定位为"快速浏览和编辑 Android 项目代码"的轻量工具,不是完整的 Android 开发环境。当前版本聚焦验证"Rust + Tauri 2.x 构建 IDE 形态应用"的技术可行性与 TRAE 全流程驱动开发,未实现 Java LSP 智能补全,也未在 Demo 中演示 APK 构建(详见第 2 节取舍说明)。
面向谁
- Android 初学者:被 Android Studio 启动慢、配置复杂、内存吃满劝退的新手,需要一个轻量工具快速查看 / 小改 Android 项目代码
- 低配电脑学生:4-8GB RAM 的笔记本跑不动 Android Studio,但又需要阅读 / 编辑 Android 代码
- 轻量场景用户:只想快速查看或小改某个 Android 项目,不想为 30 秒的启动等待买单
主要功能
当前 Demo 已实现的可演示功能(均经过代码核查):
| # | 功能 | 演示状态 | 实际能力边界 |
|---|---|---|---|
| 1 | 新建 Android 项目 | 一键生成 AGP 8.1.0 + compileSdk 34 + minSdk 21 的项目骨架,预填 appcompat 1.6.1 / material 1.9.0 / constraintlayout 2.1.4 三个核心依赖,含 MainActivity.java + AndroidManifest + 布局资源 | |
| 2 | Monaco 代码编辑器 | 与 VS Code 同款编辑器内核,Tokyo Night 暗色主题,Java/Rust/Gradle/XML 等多语言语法高亮,多 Tab 编辑,自动保存(固定 800ms 延迟,设置页开关暂未生效)。Java 仅有语法高亮,无 LSP 补全 / 诊断 / 跳转 | |
| 3 | 文件树浏览 | 递归渲染 + 惰性加载 + 右键菜单(新建 / 重命名 / 删除)+ 外部变更自动刷新 | |
| 4 | ConPTY 真终端 | portable-pty 0.8 集成,Windows 下走 ConPTY,shell 为 cmd.exe,支持 vim 等交互式程序(需本机安装),无黑窗弹出 | |
| 5 | Git 面板(只读) | 变更列表(已暂存 / 已修改 / 未跟踪三组)+ 单文件 diff 查看 + 提交历史(git log 默认 50 条)。仅在 Git 仓库下可用;新建的项目默认不是 Git 仓库,需先 git init 才能使用,否则报错"not a git repository"。只读,不能 commit |
|
| 6 | 全局搜索 | walkdir 递归 + 正则 / 大小写切换,自动跳过 .git / build / target / node_modules / .gradle / .idea | |
| 7 | 命令面板 | Ctrl+Shift+P 模糊搜索,所有菜单命令统一入口,↑↓ / Enter / Esc 键盘导航 | |
| 8 | 设置系统 | 4 个 tab(编辑器 / 外观 / 语言服务器 / 快捷键)。快捷键 tab 仅展示默认值,不可自定义。LSP 路径配置仅对 Rust 项目生效(rust-analyzer),Android 项目无 LSP | |
| 9 | 构建环境检测 | 检测 JAVA_HOME / java -version、ANDROID_SDK_ROOT / ANDROID_HOME、gradlew 或 PATH 中的 gradle;缺失时弹出配置指引对话框(含官方下载外链,但不在应用内下载) |
|
| 10 | 克隆 Git 仓库 | 可打开克隆对话框输入仓库地址,未实际验证克隆功能是否正常工作(需联网 + 本机 Git 可用) |
已实现但未在 Demo 中演示的技术能力
| 技术能力 | 代码状态 | 未演示原因 |
|---|---|---|
| 构建日志智能分析 | build_analyzer.rs 20 条规则 + 17 单测) |
实际 gradle build 受限于评委机器环境(JDK / SDK / 网络),Demo 中不保证可靠产出 APK,故不现场演示 |
| rust-analyzer LSP 集成 | 仅对 Rust 项目可用;Android 项目是 Java,jdtls 未实现,故 Demo 中不展示 LSP | |
| cargo / gradle 构建调用 | build_run 命令 + 流式 stdout/stderr + APK 路径扫描) |
实际构建受限于本机环境,Demo 中不演示 |
界面预览(运行时真实截图)
启动进入欢迎页,三入口(打开 / 新建 / 克隆)+ 最近项目列表
Monaco 编辑器 + 文件树 + 状态栏(Java 语法高亮,无 LSP 补全)
文件树右键菜单(新建 / 重命名 / 删除)
全局搜索面板(正则 / 大小写切换,自动跳过 .git / build / target)
关于页面(版本信息 + 技术栈)
2. Demo 创作思路
灵感来源
我是刚毕业的计算机专业学生,在校期间用 AI 辅助工具写过一些 Android 小应用,亲身经历过 Android Studio 的"重"——安装包 1GB+、启动几十秒、8GB 内存笔记本开着 Android Studio 就卡到难以同时开浏览器查文档。
毕业后想做一个个人项目练手,正好看到 TRAE AI 创造力大赛。一个直接的想法是:既然 AI 辅助工具能帮我写 Android 应用,能不能也用它来做一个轻量级的 Android 代码编辑器?让和我一样用低配设备的用户有一个"快速打开、快速浏览、快速小改"Android 代码的轻量入口。
选择 Rust + Tauri 2.x 作为技术栈,是因为我想借这个项目用 AI 探索 Rust 这门语言(开发本项目前没有 Rust 经验),同时验证 Tauri 2.x 在桌面应用上的体积优势。整个开发过程重度依赖 TRAE 辅助,从架构设计到代码生成到 Bug 定位贯穿全程。
想解决的问题
主流 Android IDE(Android Studio / IntelliJ)存在三个长期未被有效解决的痛点:
| 痛点 | Android Studio 现状 | 用户真实损失 |
|---|---|---|
| 体积过大 | 1.2GB+ 安装包(IDE 本体,不含 SDK) | 下载慢、占磁盘、低配机硬盘吃紧 |
| 启动过慢 | 30-60 秒冷启动 | 等待成本高,"打开看一眼就关"的场景无法承受 |
| 内存吃满 | 4-8GB RAM 占用 | 4-8GB 内存机器同时开浏览器 / 模拟器直接卡死 |
而 VS Code + Android 插件的方案虽然轻一些,但配置繁琐,且缺乏针对 Android 项目的开箱即用模板。
为什么做这个方向
三个判断支撑我做这个方向:
- 技术窗口期已到:Tauri 2.x 在 2024 年正式发布,Rust + WebView 的方案终于成熟到可以承载桌面应用,体积比 Electron 小一个数量级。
- 细分需求存在:主流 IDE 追求"功能全",低配设备用户被长期忽视——我自己就是被 Android Studio 卡过的用户,这个需求是真实的。
- AI 辅助让跨界可行:作为没有 Rust 经验的应届毕业生,TRAE 让我能用 Rust + Tauri 完成一个原本超出能力范围的项目,这本身就是 AI 辅助开发的价值验证。
取舍说明
本 Demo 是分阶段实现的第一阶段,聚焦验证技术可行性与 TRAE 全流程驱动开发。以下是明确的范围控制决策:
| 功能 | 状态 | 取舍原因 |
|---|---|---|
| Java / Kotlin LSP(jdtls) | jdtls 启动复杂(需 JDK + 工作区初始化),优先保证 rust-analyzer 链路跑通验证 LSP 架构正确性。Java 文件编辑仅有 Monaco 语法高亮 | |
| APK 构建现场演示 | build_run 命令已实现 gradle 调用 + 流式日志 + APK 路径扫描,但 gradle build 受限于评委机器环境(JDK / SDK / 网络依赖下载),Demo 中不保证可靠产出 APK,故不现场演示 |
|
| Git commit | 优先实现只读的 status / diff / log 查看链路,commit 交互留待后续版本 | |
| MSI 安装包 | tauri.conf.json 声明了 msi + nsis 两个 target,但实际构建仅产出 NSIS,未排查 MSI 缺失原因 | |
| 设备调试 / APK 预览 / 断点调试 | 范围超出初赛 Demo 阶段,留待后续版本 | |
| 自定义快捷键 | 优先级低于核心编辑功能 | |
| 主题切换 | 视图菜单的"切换主题"项点击后无效果,主题切换逻辑未接通设置持久化层。Demo 中仅默认 Tokyo Night 暗色主题 | |
| Git 面板非仓库降级 | 在非 Git 仓库目录下打开版本控制面板会直接弹出 not a git repository(or any of the parent directories): .git 原始错误,未做优雅降级提示。需用户手动 git init 后再使用 |
|
| 构建 / 运行菜单 | build_run 命令代码完整,但实际点击会因本机缺少 JDK / Android SDK / Gradle 报错。Demo 中视为环境受限的正常表现,不影响核心编辑流程 |
已验证可用的核心链路:创建 Android 项目 → 浏览文件树 → 编辑 Java 代码(语法高亮)→ 右键菜单(新建 / 重命名 / 删除)→ 全局搜索 → 打开终端 → 命令面板(Ctrl+Shift+P)→ 设置(编辑器 / LSP / 快捷键 tab 查看)→ 关于页面。
实际测试中的已知问题(不影响核心流程,但需说明):
- 新建项目默认不是 Git 仓库,打开版本控制面板会报
not a git repository错误(需先手动git init) - 视图菜单的"切换主题"点击无效果,仅默认暗色主题可用
- 构建 / 运行菜单点击会因环境缺失报错(预期行为)
- 自动保存设置页开关不生效,固定 800ms 延迟保存
3. Demo 体验地址
二选一方案,按推荐度排序
方案 A(推荐):本地安装包下载
下载 NSIS 单文件安装包,双击安装即可体验(Windows 10/11,< 5 秒安装):
下载链接:>>> 链接:https://pan.baidu.com/s/1aKdP4ewFbditdVpnewlguA 提取码:m14t <<<
- 文件名:
RustDroid IDE_0.1.0_x64-setup.exe - 大小:3.14 MB(3,293,349 字节)
- SHA256:
87A52A4A4318074DB07F74D6CCDE20405A6921E983CC05AC435861190E5B5588
方案 B:免安装可执行文件
免安装,下载解压即用(即 release 构建产物,未做独立便携版打包):
下载链接:>>> 链接:https://pan.baidu.com/s/1pZMCfTveJX8u7dk1GeZLXg 提取码:iq2x <<<
- 文件名:
rustdroid-ide.exe - 大小:9.65 MB(10,116,096 字节)
- SHA256:
B834DC86B148204DFCCB57131A0B56234D4811C448AE18BEC203AAE8C426D047 - 双击即可运行(依赖系统 WebView2 运行时,Win10/11 自带)
4. TRAE 实践过程
4.1 整体流程
RustDroid 从立项到可演示 Demo 总耗时约 1-2 周(间歇开发),代码量约 9300 行(实测:Rust 2911 行 + TypeScript 6354 行)。整个开发过程贯穿 TRAE,覆盖架构设计 / 代码生成 / Bug 定位 / 重构 / 测试五个场景。
诚实说明:作者开发本项目前没有 Rust 经验,也未写过 Tauri 应用。若无 TRAE 辅助,以作者现有技术栈(Android + 少量前端)难以独立完成这个 Rust + Tauri 项目。TRAE 在此项目中不仅是效率工具,更是能力拓展工具——让开发者能跨界完成原本不擅长的工作。具体各模块的 TRAE 运用效果见 4.5 节。
4.2 TRAE 运用的 5 个场景
场景 1:架构设计 — Tauri 2.x + Rust workspace 布局
痛点:Tauri 2.x 引入了新的 workspace 结构与权限模型,与 1.x 文档大量混淆;Rust 多 crate workspace 的依赖继承([workspace.dependencies])需手工试错。
TRAE 运用:
- 探索 Tauri 2.x 标准项目结构(
src-tauri/+ 前端 +crates/workspace) - 生成
Cargo.tomlworkspace 配置骨架,公共依赖提取到[workspace.dependencies],子 crate 用{ workspace = true }继承 - 生成
src-tauri/src/lib.rs模块注册骨架 - 配置
tauri.conf.json的 CSP 安全策略
产出:4 个独立 crate(ide-core / ide-editor / ide-ipc / ide-lsp)+ src-tauri 主 crate 整合所有 44 个 Tauri 命令。
场景 2:代码生成 — LSP JSON-RPC 分帧解析
痛点:LSP 基于 JSON-RPC 2.0,消息通过 Content-Length: N\r\n\r\n 头部分帧,手写解析器易出错;rust-analyzer 的 completion / hover / gotoDefinition 响应结构嵌套深。
TRAE 运用:
- 生成
crates/ide-lsp/src/client.rs的 JSON-RPC 分帧读取器 - 配对生成 Tauri 命令签名(
#[command] pub fn lsp_completion(...))与前端 invoke 封装 - 自动处理 LSP 0-indexed 与 Monaco 1-indexed 的坐标转换
产出:完整的 rust-analyzer LSP 客户端,覆盖 initialize / didOpen / didChange / didSave / didClose / completion / hover / gotoDefinition 全生命周期。
场景 3:Bug 定位 — ConPTY 窗口弹出与跨文件跳转竞态
痛点 1:Windows 下 portable-pty 启动终端时弹出黑色 cmd 窗口,破坏 IDE 体验。
TRAE 运用:定位到 Command 需设置 CREATE_NO_WINDOW(0x0800_0000)标志位,封装跨平台函数。
痛点 2:跨文件跳转存在竞态 — 用户点击定义 → openFile() 异步加载 → Monaco mount 完成 → 调用 revealLine() 定位。若 revealLine 在 mount 前调用会失败。
TRAE 运用:设计 pendingNavigation + revealLineFn 双状态机:openFile 完成后设置 pendingNavigation,等 revealLineFn 就绪 + activeFile 匹配后触发定位。
痛点 3:F5 快捷键在 useEffect([]) 空依赖中注册,捕获陈旧闭包。
TRAE 运用:引入 cargoRunRef ref 模式 — 渲染时 cargoRunRef.current = handleCargoRun,useEffect 中通过 cargoRunRef.current() 调用最新版本。
场景 4:重构辅助 — settings 持久化向后兼容
痛点:v1 settings 文件没有 lsp 字段,新增 LSP 配置后旧用户启动会反序列化失败。
TRAE 运用:
- 在
LspSettings结构体上添加#[serde(default)] - 生成测试
old_settings_without_lsp_field_loads_default验证旧配置文件可正常加载 - 类似处理:
rust-analyzer路径检测从whichcrate 迁移到rustup which+ 系统where/which+--version验证三段式(避免 rustup shim 误报)
场景 5:测试生成 — 跨语言单测对齐
痛点:fs.rs 的 GBK 编码文件读取、settings roundtrip、verify_lsp_path 等场景易出边界 bug。
TRAE 运用:生成边界单测覆盖:
read_file_text_gbk:验证非 UTF-8 文件 lossy 转换不 panicread_file_text_large_rejected:验证大文件(>10MB)拒绝读取settings::roundtrip:验证序列化-反序列化往返一致- 前端:
uri.test.ts/adapter.test.ts/convert.test.ts/useLsp*.test.tsx
最终测试规模:实测统计 102 个 Rust 测试用例 + 102 个前端测试用例 = 204 个测试用例,覆盖关键模块。
4.3 TRAE 驱动的技术能力实现
技术能力 1:构建日志智能分析(代码完整,技术储备)
说明:此功能代码已完整实现(
build_analyzer.rs20 条规则 + 17 单测),但受限于 demo 环境依赖(gradle build 需要 JDK + Android SDK + 网络),未在初赛 Demo 中现场演示。以下展示代码实现成果。
构建失败时自动解析 cargo / gradle 错误日志,提取错误位置 + 错误类别 + 修复建议,渲染成可点击的诊断卡片,一键跳转到出错代码行。
TRAE 运用独特性:
- 反向解析错误格式:用 TRAE 分析 cargo 的
error[E0433]: failed to resolve: use of undeclared type与 gradle 的error: cannot find symbol等错误格式,归纳为 20 条正则规则 - 跨语言类型同步:Rust 端
BuildDiagnosticstruct ↔ TypeScript 端BuildDiagnosticinterface 自动对齐(#[serde(rename_all = "camelCase")]↔ TS camelCase) - 零 AI 依赖:纯规则引擎,无需联网,无需 API key,启动即用 — 适合离线竞赛环境与低配设备
覆盖规则:
- Rust(10 条):E0433 / E0425 / E0599 / E0277 / E0308 / 语法错误 /
-->位置 / unused import / unused variable / could not compile - Gradle / Android(10 条):cannot find symbol / package does not exist / method cannot be applied / incompatible types /
;expected / 编码错误 / FAILURE / What went wrong / Failed to resolve / attribute not found
技术能力 2:ConPTY 集成 — portable-pty 0.8 API 适配(可演示)
Windows 下集成 ConPTY 提供真正的终端体验(支持 vim 等交互式程序,需本机安装),而非简单子进程 stdout 转发。
TRAE 运用独特性:用 TRAE 探索 portable-pty 0.8.1 的 API 差异 — 0.7 版本的 Master trait 在 0.8 重命名为 MasterPty,且 openpty() 返回 Box<dyn MasterPty + Send>。通过 TRAE 快速定位 API 不匹配问题,避免反复查文档。
技术能力 3:Android 模板生成(可演示)
新建项目时一键生成 Android 原生项目骨架,包含完整的 gradle 配置、AndroidManifest、MainActivity.java、布局资源。
TRAE 运用独特性:用 TRAE 生成 AGP 8.1.0 + compileSdk 34 + minSdk 21 + targetSdk 34 的模板,预填 appcompat 1.6.1 / material 1.9.0 / constraintlayout 2.1.4 三个核心依赖。模板通过 include_str! 编译时嵌入二进制,运行时按包名替换占位符生成。
4.4 TRAE 技术运用独特思路
| 思路 | 传统方式 | TRAE 方式 | 收益 |
|---|---|---|---|
| LSP 协议逆向 | 直接依赖 lsp-types crate,耦合重 |
用 TRAE 分析 rust-analyzer 的 JSON-RPC 报文,自行实现轻量级 LSP 客户端 | 二进制减少约 2MB(估算),启动更快,无外部依赖 |
| 跨语言类型同步 | Rust struct 与 TS interface 手工对齐,易漏字段 | 约定 #[serde(rename_all = "camelCase")] + TS camelCase,TRAE 根据 Rust struct 自动生成对应 TS interface |
减少人工对齐错误 |
| 规则引擎开发 | 硬编码 if-else 难维护,或上 AI 模型依赖网络 | 用 TRAE 归纳错误模式为 ErrorPattern { regex, severity, category, message_template, suggestion_template, file_group, line_group } 结构化规则 |
20 条规则覆盖常见错误,规则可独立增删 |
4.5 TRAE 在各模块的运用效果
说明:作者开发本项目前无 Rust 经验、无 Tauri 经验。以下记录各模块 TRAE 实际运用情况,不与传统手写做时间对比(因为传统手写对作者而言不可行),也未记录各模块精确耗时(未做时间统计)。
| 模块 | TRAE 主要贡献 |
|---|---|
| LSP 客户端(JSON-RPC 分帧) | 生成分帧读取器代码 + LSP 0-indexed 与 Monaco 1-indexed 坐标转换 |
| ConPTY 集成 | 定位 portable-pty 0.8 API 差异 + CREATE_NO_WINDOW 标志位修复 |
| 构建错误规则引擎 | 归纳 cargo / gradle 错误格式为 20 条结构化规则 |
| Android 模板生成 | 生成 AGP 8.1.0 模板文件 + 占位符替换逻辑 |
| Tauri workspace 架构 | 生成 Cargo.toml workspace 配置 + 模块注册骨架 |
| 跨文件跳转竞态修复 | 设计 pendingNavigation + revealLineFn 状态机 |
4.6 开发关键步骤截图
以下截图证明开发过程真实,对应 TRAE 关键任务对话
截图 1:项目架构与 Tauri 2.x workspace 布局
4 个 workspace crate + src-tauri 主 crate,44 个 Tauri 命令注册
截图 2:构建日志智能分析规则引擎(已实现的技术储备)
build_analyzer.rs 的 20 条 ErrorPattern 规则定义 + 17 个单测
截图 3:LSP 客户端 JSON-RPC 分帧解析
crates/ide-lsp/src/client.rs 的 Content-Length 分帧读取器
截图 4:TRAE 对话过程(项目想法构建)
TRAE 辅助从零构思项目定位、目标用户与核心功能
截图 5:跨文件跳转状态机设计
App.tsx 的 pendingNavigation + revealLineFn 双状态机
截图 6:204 个测试用例
102 Rust 测试 + 102 前端测试用例
4.7 关键任务对话的 Session ID
**Session ID 是 TRAE 每段对话任务的唯一标识,用于证明作品由 TRAE 开发完成。**以下为开发过程中所有 TRAE 对话的真实 Session ID(按时间排序),初赛指南要求不少于 3 个,本作品提供 8 个。
| # | 时间 | 任务主题 |
|---|---|---|
| 1 | 2026/6/28 09:58:48 | 想法构建 |
| 2 | 2026/6/28 11:05:56 | 技术栈选取 |
| 3 | 2026/7/2 21:07:32 | 项目创建和完善 |
| 4 | 2026/7/2 22:01:22 | 项目创建和完善 |
| 5 | 2026/7/2 22:30:11 | 项目创建和完善 |
| 6 | 2026/7/2 22:52:12 | 项目创建和完善 |
| 7 | 2026/7/2 22:54:57 | 项目创建和完善 |
| 8 | 2026/7/3 20:25:39 | 项目创建和完善 |
完整 Session ID(上表为简写,以下为完整值,可双击 TRAE 对话复制核实):
2451240502176387:637976c1cb98da374577dbe98cda6117_6a407fd8d413920eeb0b8564.6a407fd8d413920eeb0b8567.6a407fd8d413920eeb0b8565:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/28 09:58:48)2451240502176387:9f495536cab06ce3d4386b6cf194f0b9_6a407fd8d413920eeb0b8564.6a408f94d413920eeb0b8913.6a408f94d413920eeb0b8911:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/28 11:05:56)2451240502176387:517994633a0fa6ed72f147588681e52c_6a40c2ea01191c488dbf8125.6a4662941523526cf9d7609c.6a4662936932d76eb6e3d203:Trae CN.T(2026/7/2 21:07:32)2451240502176387:fd9d2f1f7e45de3f8337b8e38a3d6aa2_6a40c2ea01191c488dbf8125.6a466f321523526cf9d762ad.6a466f316932d76eb6e3d205:Trae CN.T(2026/7/2 22:01:22)2451240502176387:004ce11b4d80c1c5799ea4d013e8334c_6a40c2ea01191c488dbf8125.6a4675f31523526cf9d763de.6a4675f26932d76eb6e3d206:Trae CN.T(2026/7/2 22:30:11)2451240502176387:7e01ec8b4aafcabcc701530659078d5c_6a40c2ea01191c488dbf8125.6a467b1c1523526cf9d76455.6a467b1c6932d76eb6e3d209:Trae CN.T(2026/7/2 22:52:12)2451240502176387:7e7aaa819e2fa18ba9e2f320f392baa6_6a40c2ea01191c488dbf8125.6a467bc11523526cf9d7648a.6a467bc16932d76eb6e3d20a:Trae CN.T(2026/7/2 22:54:57)2451240502176387:41f294c1a76a1192d3440be366591a54_6a40c2ea01191c488dbf8125.6a47aa433014b97a15289f95.6a47aa425e5599300b092e4b:Trae CN.T(2026/7/3 20:25:39)
开发时间线说明:6/28 完成想法构思与技术栈选型;7/2-7/3 集中进行项目创建与功能完善,共 6 个 session 覆盖架构搭建、LSP 客户端、终端集成、构建系统、前端组件、测试与 Bug 修复等全部开发工作。
5. 工程验证清单
| 验证项 | 状态 | 证据 |
|---|---|---|
| Rust 代码量 | 实测统计(含 src-tauri/src + crates) | |
| TypeScript 代码量 | 实测统计(不含 node_modules) | |
| Rust 测试用例 | #[test] + #[tokio::test] 等标记统计 |
|
| 前端测试用例 | 11 个 .test.ts/.tsx 文件 | |
| 测试用例总数 | Rust 102 + 前端 102 | |
| Rust clippy | cargo clippy --all-targets -- -D warnings |
|
| Rust 格式化 | cargo fmt --check |
|
| TypeScript 类型检查 | npx tsc --noEmit |
|
| 前端构建 | npm run build |
|
| 生产构建 | target/release/rustdroid-ide.exe(含 LTO + strip) |
|
| NSIS 安装包 | target/release/bundle/nsis/RustDroid IDE_0.1.0_x64-setup.exe |
|
| MSI 安装包 | tauri.conf.json 声明了 msi target 但实际未产出,未排查 |
与 Android Studio 量化对比:
说明:Android Studio 数据为公开资料口径(IDE 本体,不含 SDK);RustDroid 数据为实测。启动时间与内存占用为目标值,未做严谨基准测试。
| 维度 | Android Studio | RustDroid | 倍数 |
|---|---|---|---|
| 安装包大小 | 1.2 GB+(IDE 本体) | 3.14 MB | 约 380x 更小 |
| 可执行文件 | ~3 GB | 9.65 MB | 约 300x 更小 |
| 冷启动时间(目标值) | 30-60 秒 | < 2 秒 | 15-30x 更快 |
| 内存占用(目标值) | 4-8 GB | 200-400 MB | 10-20x 更低 |
6. 技术栈
后端(Rust):Tauri 2.1 + portable-pty 0.8(ConPTY)+ notify 8(文件监听)+ walkdir 2(全局搜索)+ regex 1(规则引擎)+ encoding_rs 0.8(GBK 兼容)+ tracing(日志)
前端(TypeScript):React 19 + Vite 6 + Monaco Editor 0.55 + @xterm/xterm 6 + Zustand 5 + @tauri-apps/api 2
架构:4 个 Rust workspace crate(ide-core / ide-editor / ide-ipc / ide-lsp)+ src-tauri 主 crate + React 前端
License:Apache-2.0










