ZeroAI 中文文档 下载 App

Android 层与 Rust 层分工 — UI 在 Android、逻辑在 Rust

分工原则

Android 层 = 壳,Rust 层 = 核:

Android 层(Kotlin)Rust 层
Compose UI(所有界面)智能体核心(调度、推理)
密钥安全存储(Android Keystore)Provider trait(8 家模型)
守护进程生命周期Channel trait(5 条通道)
系统权限申请Tool trait(搜索、抓取、HTTP、Rhai)
通知栏状态Memory trait(SQLite 混合搜索)
文件存储权限Cron 定时任务
终端渲染(libghostty-vt FFI)Terminal TTY(Rust 端)
Gradle 构建Cargo 构建 + UniFFI 桥接

为什么这样拆

Rust 层的优势

Android 层的优势

跨层通信

Android 层和 Rust 层之间的所有通信都经过 UniFFI 自动生成的 FFI 绑定。Android 层"看不到"Rust 内部实现——它只知道 Rust 暴露的接口:

// Android 层代码(概念示例)
val provider = Provider(name = "deepseek")
provider.sendMessage("帮我写个早报") { result ->
    // 回调里拿到 Rust 层的处理结果
    showResult(result)
}

开发流程

  1. 改 Rust 核心——比如新增一个 Tool 或改 Provider 路由逻辑
  2. 跑 UniFFI 代码生成——Gradle 自动处理
  3. 改 Compose UI——如果需要在界面上暴露新功能
  4. assembleDebug——整包构建

两个语言、两个构建系统,但统一在 Gradle 里跑——开发者不需要单独跑 Cargo。

资料来源:GitHub ZeroAI README