认识 CJMP:以仓颉语言为核心的跨平台开发框架组织全景
认识 CJMP:以仓颉语言为核心的跨平台开发框架组织全景
CJMP 是华为仓颉语言生态中重要的开源组织,主打"高性能跨平台开发框架"。本文带你快速认识这个组织:它是谁、在做什么,以及 Docs / Tools / Engine / VibeCoding 等核心仓库各承担什么角色、如何配合使用。
一、组织简介
CJMP 是一个在 AtomGit 上开源的开发者组织,定位是高性能跨平台开发框架。
组织信息:
- 组织主页:https://atomgit.com/CJMP
- 成立时间:2024-08-21
- 组织规模:140+ 成员,160+ 关注者
- 官方定位:面向应用开发者提供一套代码多端运行的跨平台 UI 与工具链
CJMP 的独特之处在于它深度绑定仓颉(Cangjie)语言:开发者可以用仓颉语言编写跨平台 UI 业务逻辑,一次编码,同时运行到 Android / iOS / HarmonyOS 三端。它同时支持 Taro、React Native 等多前端接入,并沉淀了从 UI 引擎、命令行工具、IDE 插件到 AI 开发助手(VibeCoding)的完整生态。
二、仓库全景总览
CJMP 组织下的公开仓库可以分为四类,各司其职:
| 类别 | 仓库 | 作用 |
|---|---|---|
| 文档 | Docs | 应用开发者 / 框架开发者入门文档、命令行工具文档 |
| 运行时引擎 | Engine | 多前端支持的高性能跨平台 UI 引擎(C++) |
| 工具链 | Tools、Build、DevTools、IDE-Plugins | keels CLI、构建脚本、辅助工具、DevEco 插件 |
| AI 开发 | VibeCoding | AI Agent 配置仓库(MCP 模板 + Skills) |
| 源码 / SDK | CJFrontend、OpenSDK、SystemLibs、Manifest | 仓颉侧框架、各平台 SDK 发布、系统库、repo 清单 |
| 网络能力 | LinkX、Quic | 跨端双向数据传输、QUIC 网络传输 |
| 社区 | Community、Test | SIG 例会材料、测试用例 |
下面重点介绍四个核心仓库:Docs、Tools、Engine、VibeCoding。
三、Docs:开发者从这里开始
仓库地址: https://atomgit.com/CJMP/Docs(默认分支 opensource,文档为 Markdown)
Docs 是 CJMP 的文档中枢,组织内部几乎所有仓库的 README 都会把读者引导到这里。目录按角色划分:
zh-cn/app-dev/:应用开发者快速入门quick-start/:开发准备(环境依赖清单)、环境搭建、命令行工具指南、获取示例tools/:keels各子命令的详细参数说明vibe-coding/:AI 辅助开发相关文档
zh-cn/:框架开发者入门、版本发布说明(release-notes)等
以最常被引用的 应用开发快速入门 README 为例,它给出了完整的上手路径:
- 下载 CJMP SDK:按目标平台(Android / iOS / macOS 等)与版本,从
OpenSDK仓库拉取对应分支(基于 Git LFS 管理大文件)。 - 配置环境变量:设置
CJMP_SDK_HOME并把 SDK 下的工具目录加入PATH。 - 准备开发工具:根据目标平台安装对应 IDE(如 DevEco Studio / Android Studio / Xcode),并安装 CJMP 插件。
- 创建并运行工程:用
keels create初始化三端工程,用keels build/keels run构建运行。
小提示: 在搜索具体 API 时,还可以配合 VibeCoding 提供的 docs-mcp Skill,让 AI Agent 直接检索 CJMP 与 CJ-UI 的文档。
四、Tools:keels 命令行工具的源码
仓库地址: https://atomgit.com/CJMP/Tools(Python,默认分支 opensource)
Tools/ 是 CJMP 命令行工具 keels 的源码仓库,用途覆盖环境检查、项目创建、构建、运行与设备管理。
核心子命令(keels_tools/subcommand/):
| 命令 | 作用 |
|---|---|
doctor | 检查本机 CJMP 开发环境是否完备 |
create | 创建新工程(生成 android/ios/hos 三端壳 + 共享仓颉源码) |
build | 构建产物(hap / apk / ios 等) |
run | 在已连接设备上运行工程 |
仓库结构:
bin/:命令入口脚本(./bin/keels)keels_tools/:CLI 核心实现(subcommand / template / utils)tests/:自动化测试(含教程tests/test_tutorial.md)main.py:本地调试入口(python3 main.py --help)
使用要求: bin/keels 要求 Python 3.8 及以上,跨平台支持 macOS / Windows / Linux。
实际使用时,开发者不一定需要自己编译 Tools——SDK 发布包中已内置编译好的 keels,直接调用即可。Tools 仓库面向的是想深入 CLI 实现、或想参与工具开发的开发者。
五、Engine:跨平台 UI 引擎的核心
仓库地址: https://atomgit.com/CJMP/Engine(C++,默认分支 opensource,组织内 Star 最高)
Engine 的定位是多前端支持、高性能、轻量化的跨平台 UI 引擎,是整个 CJMP 运行时的心脏。
架构组成(见仓库 README 的架构图):
- 多 UI 前端适配层:提供多套 API 接口,可分别接入 Taro / React Native / CJ-UI 等前端
- UI 组件层:Text、Row/Column 等声明式组件
- 渲染管线:负责组件树(FrameNode 树)的测量、布局、绘制
- 图形引擎 / 执行引擎 / 平台适配层:承接底层渲染与各平台能力
CJ-UI:仓颉语言的声明式 UI
对仓颉开发者来说,最常用的是 CJ-UI 这套接口——写法与 ArkUI 声明式语法高度一致:
@Entry
@Component
class MyView {
func build() {
Text("Hello Cangjie")
}
}
以 @Entry 修饰的组件作为 CJMP-UI 的界面入口。编译时框架会为开发者补齐 UI 入口函数、页面回调注册等样板逻辑;运行时,NativeView::InitialRender 通过 C 与仓颉的互调用执行已注册的 build,仓颉组件再经 FFI 生成系统组件 FrameNode,由渲染管线完成整棵组件树的渲染。
构建产物:Engine 提供构建脚本产出各端产物,例如:
./build.sh --product-name keels --target-os android
生成 libkeels_android.so、keels_android_adapter.jar(Android)以及对应的 iOS / HarmonyOS(ohos_keels)引擎包。开发者写仓颉 UI 时,这些引擎库已通过 SDK / 壳工程接入,无需手动处理。
六、VibeCoding:面向 CJMP 的 AI Agent 配置仓库
仓库地址: https://atomgit.com/CJMP/VibeCoding(默认分支 opensource)
VibeCoding 是 CJMP 面向 AI 辅助开发的配置仓库——它不提供编译产物,而是提供一套让 AI Agent(Trae / OpenCode 等)能够"读懂并操作" CJMP 生态的资源,包含 MCP 配置模板 和 Skills 定义 两类内容。
资产清单:
| 类型 | 路径 | 说明 |
|---|---|---|
| MCP 模板 | mcp/trae/mcp.json | Trae / Trae CN 的 cjmp-docs 文档检索 MCP |
| MCP 模板 | mcp/opencode/mcp.json | OpenCode 的 cjmp-docs 文档检索 MCP |
| Skill | skills/cjmp-docs-mcp/ | 本地 docs-mcp-server 索引,检索 CJMP 与 CJFrontend / CJ-UI 文档 |
| Skill | skills/cjmp-env-setup/ | 在 macOS / Windows 上获取、更新并配置 CJMP 开发环境(SDK + 工具链 + keels doctor 验证) |
| Skill | skills/cjmp-issue/ | 按模板创建 CJMP 仓库的 issue |
| Skill | skills/cjmp-ui-test/ | CJMP iOS 真机 UI 冒烟测试的配置与执行 |
| Skill | skills/cjmp-device-logs/ | 拉取真机运行日志,配合调试 |
如何接入:
- 在支持的 AI IDE 中,把对应客户端的
mcp.json模板合并进项目.trae/或~/.config/opencode/opencode.json(只合并cjmp-docs服务,不要覆盖已有 MCP)。 - 将
skills/目录中的 Skill 拷贝到 Agent 约定的 skills 目录。 - 重启客户端 / 重载 MCP 后,AI 就能基于 docs 索引回答 CJMP / CJ-UI 的 API 问题,或直接执行环境配置、UI 测试、日志抓取等工作。
对正在用 CJMP 写代码的开发者来说,VibeCoding 相当于把"查文档、配环境、跑测试"这些重复劳动交给 AI 的标准姿势。
七、配套仓库速览
除上述核心仓库外,CJMP 组织还维护了一批配套仓库,组合起来才构成完整框架:
- CJFrontend / SystemLibs:仓颉侧框架实现与系统库封装,CI / 框架开发者关注。
- OpenSDK:各平台 SDK 的发布仓库(Git LFS 大文件)。应用开发者按分支
git clone -b <branch>拉取即可,无需自己编译。 - Build / Manifest:构建脚本与 repo 清单,帮助用 repo 工具一次拉齐整套源码。
- IDE-Plugins / DevTools / XcodePlugins:DevEco Studio 插件、辅助开发工具、Xcode 插件。
- LinkX / Quic:跨端 TCP 长连接实时传输与 QUIC 网络能力,是"跨平台不止 UI"的体现。
- Community:跨平台框架 SIG 例会材料与纪要,社区参与者可以在这里了解演进方向。
八、写给初学者的行动路径
想用 CJMP 快速跑起来一个应用?按下面的路径最省力:
- 读 Docs 快速入门:https://atomgit.com/CJMP/Docs/blob/opensource/zh-cn/app-dev/quick-start/README.md
- 装 SDK:从 OpenSDK 按平台分支 clone,配好
CJMP_SDK_HOME - 装 IDE 插件:按目标平台安装 DevEco Studio / Android Studio 的 CJMP 插件
- 跑 CLI:
keels doctor自检 →keels create建工程 →keels build构建 - 接入 AI:可选——配置 VibeCoding 的 MCP + Skills,把文档检索和环境排查交给 Agent
如果想深入框架本身(UI 引擎原理、多前端接入、CLI 实现),则去读 Engine 与 Tools 的源码和各自文档。
九、总结
CJMP 组织以仓颉语言 + 跨平台为主线,构建了一条清晰的链路:
Docs(怎么用)→ OpenSDK(SDK 在哪)→ Tools(用什么命令)→ Engine / CJFrontend(引擎如何工作)→ VibeCoding(AI 如何帮你)
四类仓库配合紧密:应用开发者从 Docs 出发,借助 OpenSDK 与 Tools 完成开发交付;框架开发者深入 Engine / CJFrontend 贡献力量;而 VibeCoding 正在把 AI 纳入这条开发链路,降低新手的学习门槛。
对于关注仓颉生态与跨平台框架的人而言,CJMP 值得持续跟踪——它既是"仓颉跨端 UI"落地的样板,也是国产开源框架工程化组织方式的一个缩影。
相关链接:
- CJMP 组织主页:https://atomgit.com/CJMP
- Docs:https://atomgit.com/CJMP/Docs
- Engine:https://atomgit.com/CJMP/Engine
- Tools:https://atomgit.com/CJMP/Tools
- VibeCoding:https://atomgit.com/CJMP/VibeCoding
- OpenSDK:https://atomgit.com/CJMP/OpenSDK
更多推荐





所有评论(0)