滴滴开源跨端小程序框架星河(Dimina),基于 Vue 3,支持鸿蒙等多平台

2025-06-15 08:58:19
107次阅读
0个评论

滴滴开源跨端小程序框架星河(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
iOS Harmony Android

开发步骤

开发 Dimina 小程序的步骤如下:

image-20250615084035256

  1. 创建小程序项目,使用小程序开发工具创建项目,并配置 app.json 和页面路由。
  2. 开发小程序页面,编写 WXML 模板、添加 WXSS 样式,并使用 JavaScript 编写页面逻辑。
  3. 编译打包,使用 DMCC 编译器 将小程序代码编译为跨端代码,打包星河小程序包,并将星河小程序包放置到各平台对应目录。
  4. 平台接入,参考Android 接入说明iOS 接入说明Harmony 接入说明,将 Dimina 集成到目标平台。
  5. 调试与发布,集成 App 进行真机调试,并打包发布到各应用商店。

Dimina 星河小程序架构图

整体架构流程图

![image-20250615082928582](/Users/jianguo/Library/Application Support/typora-user-images/image-20250615082928582.png)

运行时架构图

image-20250615082957271

编译流程详细图

image-20250615083008622

页面生命周期和交互时序图

image-20250615083020607

跨平台架构对比图

image-20250615083035645

架构设计

[架构图

星河小程序的交互时序图

[交互时序图

总结

Dimina 作为滴滴开源的跨端小程序框架,以其高性能、低门槛和丰富的功能,为开发者提供了一个强大的开发工具。通过支持多平台和提供完善的开发生态,就是不知道未来的发展会如何,毕竟现在的跨端解决方案已经很多了,不知道谁会更胜一筹。欲了解更多细节您可以访问其 GitHub 仓库(https://github.com/didi/dimina )。

坚果派

坚果派由坚果等人创建,团队拥有若干华为 HDE,以及若干其他领域的三十余位万粉博主运营。专注于分享的技术包括 HarmonyOS/OpenHarmony,ArkUI-X,元服务,服务卡片,华为自研语言,BlueOS 操作系统、团队成员聚集在北京、上海、广州、深圳、南京、杭州、苏州、宁夏等地。 聚焦“鸿蒙原生应用”、“智能物联”和“AI 赋能”、“人工智能”四大业务领域,依托华为开发者专家等强大的技术团队,以及涵盖需求、开发、测试、运维于一体的综合服务体系,赋能文旅、媒体、社交、家居、消费电子等行业客户,满足社区客户数字化升级转型的需求,帮助客户实现价值提升。 目前上架鸿蒙原生应用 40款,三方库 80 个。欢迎大家加微信联系。

地址:https://atomgit.com/nutpi

https://gitcode.com/nutpi

商务对接:nut_pie或者邮箱jianguo@nutpi.net

收藏00

登录 后评论。没有帐号? 注册 一个。