# xide **Repository Path**: jimonik/xide ## Basic Information - **Project Name**: xide - **Description**: 安卓平台的编译器,安卓,flutter项目,免费ai支持 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-08-05 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XIDE Android 端 IDE:创建、克隆、编辑、构建、签名并安装标准 Android/Gradle 项目。 ## 关键约定 - applicationId 与 Java namespace 均为 `com.jimo.xide`;bootstrap 安装时按实际应用私有目录重定位 Bionic 工具链。 - 工作区通过 SAF 授权;构建时同步到应用沙箱。 - 工具链位于私有 `files/toolchains/{jdk,android-sdk,gradle}`;可执行归档缓存在 `/sdcard/XideEnv`。 - Wrapper 优先;否则使用全局 Gradle。构建调用 Java 主类,不执行 Android shell 下的 Gradle 脚本。 - Build 构建当前 Variant;Run 构建、签名并打开系统安装器。 - bootstrap/AAPT2 来自 Android Code Studio,许可证见 `THIRD_PARTY_GPL-3.0.txt`。 ## 构建与真机验证 需要 JDK 17+ 和 Android SDK: ```sh ./gradlew :app:testDebugUnitTest :app:assembleDebug adb install -r app/build/outputs/apk/debug/app-debug.apk ``` XIDE 当前只发布 `arm64-v8a`,因此只使用 `waal_android_arm64_v8a`,不会下载桌面或其他 ABI 的库。应用首次使用 AI 时会从更新服务把最新 WAAL 下载到私有目录 `files/waal/native/arm64-v8a/`,再通过 `System.load(绝对路径)` 动态加载。服务不可用时依次复用运行时缓存和 APK 内置库;服务已返回更高版本但下载失败时停止加载,避免绕过强制更新。 默认更新服务为 `http://42.193.21.75:18081`。运行时可调用 `WaalNative.setUpdateServer(context, url)` 保存其他地址,`WaalNative.getUpdateServer(context)` 可读取当前地址。Gradle 构建前仍会下载目标 ABI 的库放进 APK,作为服务器不稳定时的离线回退版本;可用构建环境变量 `WAAL_UPDATE_SERVER_URL` 指定该回退库的来源。 Debug 包提供 ADB 桥: ```sh sh scripts/adb-test.sh status sh scripts/adb-test.sh install-environment sh scripts/adb-test.sh build-smoke-install sh scripts/adb-test.sh build sh scripts/adb-log.sh 40 ``` 手机网络无法访问依赖仓库时,仅调试环境可使用: ```sh python3 scripts/repository-proxy.py adb reverse tcp:8765 tcp:8765 sh scripts/adb-test.sh install-environment http://127.0.0.1:8765/ ``` ## 签名 XIDE Release 与 IDE 内构建产物默认使用 `signing/xide-default.jks`(alias `androiddebugkey`,密码 `android`)。 设备副本位于 `/sdcard/XideEnv/signing/xide-default.jks`,已有文件不覆盖。该公开密钥仅用于开发测试,正式发布必须使用项目私钥。 ## AI/MCP 内置 Agent 直接调用 `XideMcpBridge`;外部调试 MCP 监听 `127.0.0.1:8766`。工具协议、权限和路由见 `docs/XIDE_MCP.md`。 ## 相关仓库与调用关系 XIDE 与另外三个产品宿主并列,共同复用 `web_ai_agent_lib` 和 `webai_lua_runtime`;这些产品宿主之间不会互相调用: ```text xide (本仓库) ───────────── Java/JNI ───────────────┐ quick_account_opening (Electron) ── IPC/Koffi ──────┤ wai (终端) ───────────── AgentRunner/Koffi/ffi-rs ──┼──> web_ai_agent_lib (C11 ABI) ai_adb_debugger (Electron) ── JSONL/Python ctypes ──┘ │ │ 加载、热更新、pump ▼ webai_lua_runtime (Lua) │ mcp.call / 事件 └──> XideMcpBridge ``` | 仓库 | 在调用链中的职责 | | --- | --- | | [xide](https://gitee.com/jimonik/xide)(本仓库) | Android IDE 宿主;`WaalNative` 经 JNI 调用 C,`WaalKernel` 管理 context,`XideMcpBridge` 执行当前项目内工具。 | | [quick_account_opening](https://gitee.com/jimonik/quick_account_opening) | 并列 Electron 开户宿主,不被 XIDE 调用。 | | [wai](https://gitee.com/jimonik/wai) | 并列 Node 终端宿主,不被 XIDE 调用。 | | [ai_adb_debugger](https://gitee.com/jimonik/ai_adb_debugger) | 并列 Electron ADB 调试宿主,不被 XIDE 调用。 | | [webai_lua_runtime](https://gitee.com/jimonik/webai_lua_runtime) | 由 C 加载,提供 AI 来源登录、云端会话、对话和 MCP 状态机。 | | [web_ai_agent_lib](https://gitee.com/jimonik/web_ai_agent_lib) | XIDE 直接依赖的公共 C/JNI 内核,提供 Lua 生命周期、热更新、HTTP/TCP 和事件桥。 |