前言
轻应用框架分两部分:
- 一部分作为JS语言的引擎
- 一部分则是VUE.js前端框架用以支撑前端开发
轻应用框架图
one-evue是基于OneOS开发的嵌入式(embedded)vue框架,用于开发嵌入式轻应用,类VUE.JS的前端框架,也是基于OneOS操作系统上的一套应用&图形解决方案。
该图形解决方案主要分两层:
前端开发层主要提供给开发者,使用onejs-evue-cli
、onejs-simulator
、UI Designer
等开发工具开发相关轻应用。因为类Vue
的开发方式对前端开发者非常友好,可以吸引大量的前端开发者快速进行物联网的轻应用开发。其中开发工具分为四个:
onejs-evue-cli
:脚手架提供应用编译、打包,生成表示VUE
程序的JS
代码node.js
:基于脚手架生成的文件打包生成OPK
文件onejs-simulator
:运行js代码和evue文件的PC端开发工具,帮助用户快速开发预览UI和调试应用UI Designer
:通过拖拽和点击就可以完成复杂的界面设计
轻应用框架层主要分四个模块:one-evue前端框架、js runtime、管理模块、UI渲染模块。
one-evue
前端框架:提供类VUE
的MVVM
前端框架。JS Runtime
运行环境:包括JerryScript
和IoT.js
。JerryScript负责ECMAScript5.1标准语法的实现,IoT.js负责除语言语法外的所有工作,提供辅助函数简化C与JS交互的接口,提供require函数并实现JS程序模块化,实现基础功能模块(filesystem、console、event等),处理与操作系统与驱动的交互等功能。- 管理模块包括:生命周期(应用&&页面的创建、销毁),路由管理(应用&&页面的跳转),数据管理(嵌入式小型数据库保存应用数据),消息通知,应用管理(安装、卸载、更新)。
- UI渲染模块:虚拟Dom Tree,render模块实现将JS实例中的基础元素对象(控件)创建出虚拟节点(vnode),并组成一个同真实GUI树相同结构的AST树。animation,component,style用于绑定底层GUI图形框架功能,实现小程序开发方式完成图形控件、样式、动画效果的绘制。
JerryScript&&iotjs
JerryScript作为JavaScript引擎,主要负责ECMAScript5.1标准语法的实现,提供js与c交互的接口,IoT.js负责提供异步能力,模块化实现,基础功能模块等。
IoT.js的主要功能代码集中在src目录与deps目录中,deps目录中包含依赖库libtuv、http-parser与mbedtls。libtuv为事件驱动的I/O库,http-parser为http协议解析库,mbedtls为加密工具库。src目录中包括平台适配层、c语言实现的js模块、js实现的模块以及运行环境相关代码。
JerryScript 的主要组件:解析器和虚拟机 (VM) 之间的交互。解析器将输入 ECMAScript 应用程序转换为字节码。准备好的字节码由执行解释的虚拟机执行。以上两部分可以分开执行,字节码可以作为数据保存到文件中。