Dimina 文档中心
July 16, 2026 · View on GitHub
Dimina(星河小程序)由 DMCC 编译器、逻辑层与渲染层运行时、内置组件,以及 Android、iOS、Harmony 和 Web 容器组成。本目录用于解释这些模块如何协作,并提供能力边界、生命周期和小程序包更新等专题说明。
如果你只想运行示例,请先回到项目首页。这里更适合准备接入 SDK、排查跨端差异或参与框架开发的读者。
按目标开始
| 你的目标 | 建议先读 | 接下来 |
|---|---|---|
| 了解 Dimina 如何工作 | 架构总览 | 实现细节 |
| 判断某项能力是否可用 | 能力参考 | 对应平台的 SDK 接入文档 |
| 排查页面或组件初始化时序 | 生命周期 | service / render 运行时源码与测试 |
| 接入内置包或远程更新 | 小程序包更新 | 对应平台的 Bundle Loader 实现 |
| 参与前端框架开发 | 前端工程说明 | 贡献指南 |
核心阅读路径
- 架构总览:从源码、编译产物到四端容器的完整链路。
- 实现细节:编译器产物结构、双线程模型、通信通道与页面容器。
- 生命周期:App、页面和组件的关键调用时机与约束。
- 能力参考:模板标签、内置组件、API 和扩展 Bridge 的支持状态。
- 小程序包更新:内置包、远程 manifest、校验、安装与
wx.getUpdateManager()。
平台接入
| 平台 | 逻辑执行环境 | 视图容器 | 接入文档 |
|---|---|---|---|
| Android | QuickJS | Android WebView | Android SDK |
| iOS | JavaScriptCore | WKWebView | iOS SDK |
| Harmony | QuickJS | Harmony WebView | Harmony SDK |
| Web | Web Worker | Browser | 前端框架与容器 |
仓库模块
dimina/
├── fe/ # DMCC、service、render、组件和 Web 容器
├── android/ # Android SDK、QuickJS 引擎与示例
├── iOS/ # iOS SDK 与示例
├── harmony/ # Harmony SDK 与示例
├── shared/ # 各原生端共享的小程序包与 JS SDK
├── docs/ # 架构、能力和机制文档
└── static/ # README 与文档引用的图片
文档约定
- 文档中的“逻辑层”指运行小程序业务逻辑与生命周期的 service runtime;“渲染层”指 Vue 驱动的 render runtime。
publish用于逻辑层和渲染层之间经容器转发的消息;invoke用于逻辑层或渲染层调用容器能力。- 能力表表示仓库当前确认的实现状态,不等同于微信小程序完整能力集合;业务代码仍应使用
wx.canIUse()做运行时保护。 - 编译产物目录中的根
config.json是宿主包元数据;main/app-config.json是 DMCC 根据小程序配置生成的运行时配置,两者职责不同。
本地验证
前端文档涉及的命令以 fe/ 为工作目录:
cd fe
pnpm install
pnpm compile
pnpm test
pnpm lint
提交文档变更前,请至少确认相对链接有效、示例路径与当前仓库一致,并在修改能力表后运行:
cd fe
pnpm --filter compiler sync:compat
git diff -- packages/compiler/src/common/compatibility-reference.js
确认生成文件的变化与能力表一致;如果能力名称没有变化,生成文件应保持不变。该检查用于确保编译器的兼容性提示与能力参考同步。