滴滴开源跨端小程序框架星河(Dimina),基于 Vue 3,支持鸿蒙等多平台
滴滴开源跨端小程序框架星河(Dimina),基于 Vue 3,支持鸿蒙等多平台
近期,滴滴出行开源了自主研发的全新轻量级跨端小程序框架——星河(Dimina),为开发者带来了“一次开发,多端运行”的高性能、低门槛解决方案。Dimina 支持 Android、iOS、Harmony 和 Web 四大平台,开发者可以将 Dimina 作为移动端跨平台开发框架,将已有小程序逻辑以独立模块方式集成到现有 App,或直接采用小程序语法进行开发,并一键打包生成独立原生 App。
简介
星河小程序(以下简称 “Dimina”)是滴滴自研的一套轻量级跨端小程序框架,旨在为开发者提供高性能、跨平台、低门槛的开发体验。Dimina 提供了一套基础开发生态,包括全面的 API 能力和丰富的原生组件,以满足不同业务场景的需求。
丰富的能力支持
Dimina 拥有超过 60 个 API,覆盖网络、文件、设备、媒体、位置等 8 大类核心功能,以及 25+ 个常用组件,包括基础视图、表单、导航、媒体等,助力开发者构建一致的用户界面。这些丰富的功能为开发者提供了强大的工具,使他们能够轻松应对各种复杂的应用场景。
技术优势
Dimina 采用了资源离线化、逻辑视图分离、原生能力封装和页面预加载等技术手段,以优化性能和用户体验。资源离线化减少了网络请求,逻辑视图分离避免了主线程阻塞,原生能力封装统一了 API 调用,而页面预加载则通过 WebView 预热提升了性能。
跨平台实现
Dimina 通过以下技术组合实现了跨平台支持:
- Android: QuickJS + Android WebView
- iOS: JavaScriptCore + WKWebView
- Harmony: QuickJS + Harmony WebView
- Web: Web Worker + Browser
这种跨平台实现方式使得 Dimina 能够在不同平台上保持一致的性能和功能。
架构设计:Vue3驱动,DMCC编译
Dimina 遵循小程序标准化白皮书进行设计,目前已对齐微信小程序的主要功能,它的技术架构巧妙地将 Vue 3 引擎与小程序语法相结合。已支持能力详见Dimina 能力参考指南。
- 核心引擎:得益于 Vue3 与小程序语法的高度相似,Dimina 底层视图渲染框架选择采用 Vue 3构建。Vue 3 的组合式 API 和响应式系统在设计思想上与小程序的数据驱动模式较为契合,为框架的渲染性能提供了基础。
- DMCC 编译器:Dimina 框架通过DMCC将小程序语法转译为 Vue 语法,并在此基础上实现了完整的小程序标准 Vue 组件体系。最终,通过实现端侧小程序容器来提供原生能力,同时灵活加载并展示视图页面。
- 分层隔离设计:框架将业务逻辑与视图渲染分离,配合资源预加载和本地缓存策略,旨在从架构层面提升应用的启动速度和运行性能。
- 多端运行时容器:Dimina 为不同平台提供了相应的运行时环境,以承载和执行代码。
如需了解更多关于框架底层实现的原理,欢迎查阅详细文档。
效果演示
iOS | Harmony | Android |
---|---|---|
![]() |
![]() |
![]() |
开发步骤
开发 Dimina 小程序的步骤如下:
- 创建小程序项目,使用小程序开发工具创建项目,并配置
app.json
和页面路由。 - 开发小程序页面,编写 WXML 模板、添加 WXSS 样式,并使用 JavaScript 编写页面逻辑。
- 编译打包,使用 DMCC 编译器 将小程序代码编译为跨端代码,打包星河小程序包,并将星河小程序包放置到各平台对应目录。
- 平台接入,参考Android 接入说明,iOS 接入说明,Harmony 接入说明,将 Dimina 集成到目标平台。
- 调试与发布,集成 App 进行真机调试,并打包发布到各应用商店。
Dimina 星河小程序架构图
整体架构流程图

运行时架构图
编译流程详细图
页面生命周期和交互时序图
跨平台架构对比图
架构设计
[
星河小程序的交互时序图
[
总结
Dimina 作为滴滴开源的跨端小程序框架,以其高性能、低门槛和丰富的功能,为开发者提供了一个强大的开发工具。通过支持多平台和提供完善的开发生态,就是不知道未来的发展会如何,毕竟现在的跨端解决方案已经很多了,不知道谁会更胜一筹。欲了解更多细节您可以访问其 GitHub 仓库(https://github.com/didi/dimina )。
坚果派
坚果派由坚果等人创建,团队拥有若干华为 HDE,以及若干其他领域的三十余位万粉博主运营。专注于分享的技术包括 HarmonyOS/OpenHarmony,ArkUI-X,元服务,服务卡片,华为自研语言,BlueOS 操作系统、团队成员聚集在北京、上海、广州、深圳、南京、杭州、苏州、宁夏等地。 聚焦“鸿蒙原生应用”、“智能物联”和“AI 赋能”、“人工智能”四大业务领域,依托华为开发者专家等强大的技术团队,以及涵盖需求、开发、测试、运维于一体的综合服务体系,赋能文旅、媒体、社交、家居、消费电子等行业客户,满足社区客户数字化升级转型的需求,帮助客户实现价值提升。 目前上架鸿蒙原生应用 40款,三方库 80 个。欢迎大家加微信联系。
- 17回答
- 24粉丝
- 12关注
- (二一)ArkCompiler 的跨平台编译:多芯片支持与开发实践
- 鸿蒙跨平台框架来了ArkUI-X
- OpenHarmony跨平台框架开发指南
- ArkUI-X跨平台框架接入指南
- (三四)ArkTS 小程序开发实战
- 鸿蒙适配一多搭建首页框架
- 跨平台开发鸿蒙原生应用
- (三)HarmonyOS Design 的 UI 框架支持
- OpenHarmony系统属于大端还是小端
- HarmonyNext:基于鸿蒙的AIoT设备管理平台开发指南
- (二五)ArkTS 跨平台应用开发策略
- ArkUI-x跨平台Bridge最佳实践
- HarmonyNext:基于鸿蒙操作系统的跨设备通信与数据同步技术深度解析
- HarmonyOS NEXT应用开发实战(封装比UniApp和小程序更简单好用的网络库)
- HarmonyOS Next 端云一体化(3)