星河小程序(Dimina)——滴滴开源跨端小程序
Dimina 发音为 /diːminə/,是 didi miniprogram 的缩写,旨在打造灵活、轻量的小程序跨端开发框架。
星河小程序(以下简称 Dimina)是滴滴自研的一套轻量级跨端小程序框架,可以理解为开源版的小程序方案,致力于为开发者提供高性能、跨平台、低门槛的开发体验。
目前,Dimina 已支持 Android、iOS、Harmony 和 Web 四大平台。开发者可以将 Dimina 作为移动端跨平台开发框架,将已有小程序逻辑以独立模块方式集成到现有 App,或直接采用小程序语法进行开发,并一键打包生成独立原生 App。
二、开源协议
使用Apache-2.0开源协议
三、界面展示
![[开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP-1 [开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP](https://www.baicxx.com/wp-content/uploads/2025/10/640-88.png)
|
|
|
![]() |
![]() |
![]() |
四、功能概述
技术特性
- 资源离线化
资源本地存储减少网络请求 - 逻辑视图分离
独立 JS 引擎避免主线程阻塞 - 原生能力封装
统一 API 调用原生功能 - 页面预加载
WebView 预热提升性能
五、技术选型
跨平台支持
- Android
QuickJS + Android WebView - iOS
JavaScriptCore + WKWebView - Harmony
QuickJS + Harmony WebView - Web
Web Worker + Browser
上手使用
![[开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP-5 [开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP](https://www.baicxx.com/wp-content/uploads/2025/10/640-89.png)
详细步骤
1、创建小程序项目
-
使用小程序开发工具创建项目 -
配置 app.json 和页面路由
2、开发小程序页面
-
编写 WXML 模板 -
添加 WXSS 样式 -
使用 JavaScript 编写页面逻辑
3、编译打包
-
使用 DMCC 编译器 将小程序代码编译为跨端代码 -
打包星河小程序包 -
将星河小程序包放置到各平台对应目录
4、平台接入
-
Android 接入说明 -
iOS 接入说明 -
Harmony 接入说明
5、调试与发布
-
集成 App 进行真机调试 -
打包发布到各应用商店
![[开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP-6 [开源]一套轻量级跨端小程序框架,一键打包生成独立原生 APP](https://www.baicxx.com/wp-content/uploads/2025/10/640-90.png)
小程序是什么
小程序本质上是 将网页技术迁移到手机上的一种 Hybrid App 方案。核心组成元素与网页类似:
- JS
描述逻辑 - CSS
描述样式 - HTML
描述用户界面
技术特性
为优化小程序性能和用户体验,客户端通常做以下处理:
- 资源离线化
将 JS/CSS/HTML 存储在本地,减少网络请求耗时。 - 复杂任务异步化
将耗时逻辑放入独立的 JS 引擎执行,避免主线程阻塞。 - 原生能力封装
通过客户端容器桥接,提供如相机、蓝牙等能力。 - 页面跳转原生化
实现类似原生应用的页面跳转和过渡动画。
总结来说,小程序是一种标准化的跨端框架,结合了 Web 开发中的高效免安装优点以及原生开发的能力,代表了 Hybrid 开发的高效模式。
实现思路
为实现星河小程序框架,我们需解决四个关键问题:
- 资源离线包加载
如何解决跨域问题,快速加载本地资源? - 逻辑与视图分离
如何将 JS 逻辑从页面中拆分到独立引擎? - 原生能力调用
如何设计高效的通信协议? - 页面跳转优化
如何实现 Webview 的预加载与快速切换?