OpenCode 的原生 Android 客户端,用于远程连接 OpenCode 服务端、发送指令、监控 AI 工作进度、浏览代码变更。
opencode serve 或 opencode web)opencode serve --port 4096http://192.168.x.x:4096)默认为局域网使用。远程访问推荐以下方案:
将 OpenCode 部署在公网服务器上,使用 HTTPS 加密:
https://your-server.com:4096通过 Tailscale 组网,Android 设备和 OpenCode 服务器处于同一 tailnet:
http://your-machine.tail*****.ts.net:4096)App 已对 *.ts.net 域名配置 HTTP 豁免,无需额外设置。
# 设置 JDK(使用 Android Studio 自带的)
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"
# 构建
./gradlew assembleDebug
# 单元测试
./gradlew testDebugUnitTest
# 测试覆盖率
./gradlew koverHtmlReport
# 报告位于 app/build/reports/kover/html/index.html
集成测试需要运行中的 OpenCode Server,将 .env.example 复制为 .env 并填入实际凭证后执行:
./gradlew connectedDebugAndroidTest
app/src/main/java/com/yage/opencode_client/
├── data/
│ ├── api/ # REST API 接口、SSE 客户端
│ ├── audio/ # 语音录制、重采样、WebSocket 转写
│ ├── model/ # 数据模型(Session、Message、File 等)
│ └── repository/ # 数据仓库层
├── di/ # Hilt 依赖注入
├── ui/
│ ├── chat/ # Chat 页面
│ ├── files/ # Files 页面
│ ├── session/ # Session 列表与树形展示
│ ├── settings/ # Settings 页面
│ └── theme/ # 主题、颜色、字体
└── util/ # SettingsManager 等工具类
docs/PRD.md — 产品需求docs/RFC.md — 技术方案docs/speech_recognition.md — 语音转写设计与 OpenCode 保持一致。