CN116820431B - 具有全功能Node.js的嵌入式应用开发及运行方法 - Google Patents
具有全功能Node.js的嵌入式应用开发及运行方法 Download PDFInfo
- Publication number
- CN116820431B CN116820431B CN202311099822.5A CN202311099822A CN116820431B CN 116820431 B CN116820431 B CN 116820431B CN 202311099822 A CN202311099822 A CN 202311099822A CN 116820431 B CN116820431 B CN 116820431B
- Authority
- CN
- China
- Prior art keywords
- function
- information
- program
- node
- layer processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000011161 development Methods 0.000 title claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 228
- 230000003993 interaction Effects 0.000 claims abstract description 12
- 238000004891 communication Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 3
- 230000006872 improvement Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种具有全功能Node.js的嵌入式应用开发及运行方法,涉及嵌入式软件开发领域。开发方法包括步骤1、开发Qt程序;步骤2、使用JS语言开发JS功能函数,以实现Qt所需要的逻辑功能;步骤3、开发Node.js Addon插件;步骤4、开发Node.js程序,通过Addon插件完成与Qt程序的通讯交互,以及通过调用JS功能函数来完成Qt程序所请求的逻辑功能。本发明使用JS代码实现了低端嵌入式设备应用的逻辑功能,从而实现不同硬件配置的设备之间逻辑代码的通用,同时还为低端嵌入式设备提供了全功能Node.js运行环境。
Description
技术领域
本发明涉及嵌入式软件开发领域,具体涉及一种开发嵌入式UI软件应用的方法,还涉及一种嵌入式UI软件应用的运行方法。
背景技术
目前,Linux下的UI应用开发主要是采用Qt、pyQt、MiniUi等方式,开发语言以C++和python居多,也有少数场合使用功能较弱的Lua语言。
随着互联网技术发展,Node.js+Web的混合应用逐渐占据主流市场,覆盖到了桌面应用、移动端、手持机、广告机等不同场景。混合应用发展原因之一是终端机算力的增强。但是由于混合应用非常消耗终端资源,所以在低端面板机,尤其是在256MB内存以下、不带GPU的低端嵌入式Linux终端上,无法使用这种混合开发方式。由此,出现了同一品牌的产品,相同的业务逻辑,高端机、低端机和上位机却需要分别用不同的语言和框架来开发不同的应用的问题,导致开发和维护的成本较高。尤其是相较于JavaScript,为了实现相同的功能,C++开发和调试成本本身更高、功能实现难度更大,非常不利于项目的开展与后期维护。
发明内容
本发明提出了一种具有全功能Node.js的嵌入式应用开发及运行方法,其目的是:使用JS代码实现低端嵌入式设备应用的逻辑功能,从而实现不同硬件配置的设备之间逻辑代码的通用,同时为低端Linux嵌入式设备提供全功能Node.js运行环境。
本发明技术方案如下:
一种具有全功能Node.js的嵌入式应用的开发方法,包括步骤1、开发Qt程序,还包括:
步骤2、使用JS语言开发JS功能函数,以实现Qt所需要的逻辑功能;
步骤3、开发Node.js Addon插件,用于实现Node.js程序与Qt程序的通讯交互;
步骤4、开发Node.js程序,以实现:通过Addon插件完成与Qt程序的通讯交互,以及通过调用JS功能函数来完成Qt程序所请求的逻辑功能。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:
Qt程序中包含Qt层发送函数和Qt层处理函数;
Addon插件中包含第一转发函数和第二转发函数;
Node.js程序中包括JS层发送函数和JS层处理函数;
所述Qt层发送函数用于将Qt程序中的第一信息发送至第一转发函数;所述第一转发函数用于将第一信息转发至JS层处理函数;所述JS层处理函数用于处理收到的第一信息;
所述JS层发送函数用于将Node.js程序中的第二信息发送至第二转发函数;所述第二转发函数用于将第二信息转发至Qt层处理函数;所述Qt层处理函数用于处理收到的第二信息。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:所述第一信息包括请求信息,所述请求信息包括Qt程序的事件信息、与该事件相关的组件的路径以及Qt程序为了响应该事件所需要的逻辑功能;所述JS层处理函数收到请求信息后,依据请求信息调用相应的JS功能函数。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:所述第二信息包括与所述请求信息对应的响应数据;所述响应数据由JS层处理函数根据请求信息调用JS功能函数而得到;所述Qt层处理函数收到响应数据后,根据响应数据更新Qt界面。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:步骤1中,Qt程序的界面由多个组件组成,每个组件分别对应一个UI文件;父组件中通过容器类组件包含所需要的子组件实现组件的嵌套;所述容器类组件设有自定义属性,该自定义属性指向所包含的子组件的UI文件。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:各UI文件分别对应一JS文件,所述JS文件中包含有与其对应的组件所需要的逻辑功能的JS功能函数。
作为所述具有全功能Node.js的嵌入式应用的开发方法的进一步改进:所述第一信息包括组件树对象,第二信息包括界面加载指令;
所述Qt层处理函数收到界面加载指令后,加载指令对应的UI文件,并根据UI文件中的自定义属性,通过递归加载的方式形成该界面对应的组件树对象,组件树对象中包含各组件在组件树中的路径以及对应的JS文件的保存路径,然后将组件树对象信息作为第一信息发送至JS层处理函数;
JS层处理函数在调用JS功能函数时,依据所述组件树对象来查找需要的JS功能函数。
本发明还提供了一种具有全功能Node.js的嵌入式应用的运行方法,该嵌入式应用基于上述开发方法进行开发;
所述运行方法包括以下步骤:
步骤A、Node.js程序中,初始化Addon插件,并且将JS层处理函数的引用传递给Addon插件,使第一转发函数可以根据JS层处理函数的引用、通过libuv将JS层处理函数插入Node.js主线程中执行,并将第一信息传递给Node.js主线程中的JS层处理函数;
步骤B、Node.js程序中,通过调用Addon插件来加载已经被编译为so文件的Qt程序,并将第一转发函数的地址传递给Qt程序,使Qt层发送函数可以通过第一转发函数的地址来调用Addon插件中的第一转发函数,从而将第一信息转发至第一转发函数;
步骤C、Node.js程序调用Addon插件中的第二转发函数发送作为第二信息的界面加载指令,Qt层处理函数根据界面加载指令加载对应的UI文件生成界面并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数;
步骤D、Qt程序中,用户在界面中触发事件后,Qt层发送函数生成请求信息,然后通过第一转发函数将请求信息作为第一信息发送至JS处理函数;
步骤E、JS层处理函数根据请求信息中的当前组件的路径找到对应的JS文件,根据请求信息中的所需要执行的逻辑功能找到需要执行的JS功能函数,然后将请求信息中的事件信息传递给JS功能函数,JS功能函数执行后得到响应数据或新的界面加载指令;然后,JS发送函数调用Addon插件中的第二转发函数,并将响应数据或界面加载指令作为第二信息传递至第二转发函数,第二转发函数调用Qt程序中的Qt层处理函数,并将第二信息传递至Qt层处理函数;
步骤F、Qt层处理函数根据响应数据更新界面、并跳转至步骤D等待用户操作;或者,根据界面加载指令加载对应的UI文件并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数,然后跳转至步骤D等待用户操作。
相对于现有技术,本发明具有以下有益效果:(1)本发明提供了一种Node.js程序与Qt程序交互的方法,并进一步通过JS程序代码实现了Qt界面所需要的逻辑功能,相当于将Qt程序作为Node.js的前端、代替了web前端的html渲染,从而大大降低了对硬件资源的需求,并实现了高端机运行的Node.js+Web混合应用与底端嵌入式设备运行的Qt应用之间的业务逻辑代码(JS代码)共用,大大降低了开发和维护成本;(2)本发明可以为运行Qt应用的嵌入式设备提供完整的Node.js运行环境,可以兼容Node.js的软件包,大大扩展了Qt应用的功能,进一步提供了开发效率;(3)本发明基于Qt组件的自定义属性功能和递归式的组件自动加载,实现了Qt程序的组件化开发,并且JS和Qt部分都可以基于组件树快速定位到所需要的JS函数或UI组件。
附图说明
图1为Qt程序中UI组件的布局及绑定关系示意图。
具体实施方式
下面结合附图详细说明本发明的技术方案:
对于硬件配置较低的低端机型,仍使用Qt程序作为交互界面,使用Node.js来实现后台业务逻辑功能,并基于Node.js的Addon插件来实现Node.js与Qt之间的交互。整个应用可以简单的划分为JS层(Node.js运行的原生JS代码)、Addon层(Node.js通过Addon插件功能来调用的C++代码)和Qt层(Qt程序、界面及相关的C++代码)。
具体步骤为:
步骤1、开发Qt程序。
Qt是一个跨平台C++图形用户界面应用程序开发框架,Qt程序对硬件资源要求较低,常用来开发嵌入式设备图形界面应用。
需要说明的是,本发明中的Qt界面基于组件化开发,界面是由多个组件组成,每个组件分别对应一个UI文件。父组件中通过容器类组件(如Frame、Widget)包含所需要的子组件,同时为所述容器类组件设置自定义属性,该自定义属性指向所包含的子组件的UI文件。同时,各UI文件分别对应一JS文件,所述JS文件中包含有与其对应的组件所需要的逻辑功能的JS功能函数。
如图1所示,本实施例中,主界面UI文件为1.ui,其中包含两个自定义属性,分别指向2.ui和4.ui两个子组件,同时2.ui的自定义属性指向子组件3.ui。同时,1.js、2.js、3.js、4.js分别与4个UI文件一一对应,放在相同的路径中。
Qt程序中包含Qt层发送函数和Qt层处理函数,前者用于发出第一信息,后者用于接收第二信息。
Qt层处理函数可以依据自定义属性通过递归加载的方式形成该界面对应的组件树对象,组件树对象中包含各组件在组件树中的路径以及对应的JS文件的保存路径。通过组件树中的组件路径,既可以对组件进行操作,也可以定位到组件所对应的JS文件。
Qt程序被编译为动态库文件(*.so)。
步骤2、使用JS语言开发JS功能函数,以实现Qt所需要的逻辑功能,例如查询、更新数据库等。
所述JS功能函数不需要单独开发,可以直接使用高端机Node.js+Web混合应用的后端代码一致。
步骤3、通过node-gyp创建、开发一套Node.js Addon插件,它可以用于加载Qt程序,还用于实现Node.js程序与Qt程序的通讯交互。
Addon是一个桥梁,将V8和libuv等库整合到一起,从而实现JavaScript和C++的互相调用,扩展JavaScript的功能。
Addon插件中包含第一转发函数和第二转发函数,前者用于将Qt层的第一信息转发至JS层,后者用于将JS层的第二信息转发至Qt层。
需要说明的是,Addon可以实现JavaScript和C++的互相调用,但现有技术并没有提供通过Addon插件进行JavaScript与Qt程序相互调用的实现方式。
Addon插件首先需要使用dlopen函数来加载Qt生成的so文件,得到一个句柄handle给dlsym函数,以获取所需要的Qt程序中的函数地址,其中包括Qt层处理函数的地址,从而使第二转发函数可以调用Qt层处理函数。
步骤4、开发Node.js程序,以实现:通过Addon插件完成与Qt程序的通讯交互,以及通过调用JS功能函数来完成Qt程序所请求的逻辑功能。
进一步的,Node.js程序中包括JS层发送函数和JS层处理函数,前者用于发出第二信息,后者用于接收第一信息。
具体的,所述Qt层发送函数用于将Qt程序中的第一信息发送至第一转发函数;所述第一转发函数用于将第一信息转发至JS层处理函数;所述JS层处理函数用于处理收到的第一信息。所述JS层发送函数用于将Node.js程序中的第二信息发送至第二转发函数;所述第二转发函数用于将第二信息转发至Qt层处理函数;所述Qt层处理函数用于处理收到的第二信息。
进一步的,所述第一信息包括请求信息,所述请求信息包括Qt程序的事件信息、与该事件相关的组件的路径以及Qt程序为了响应该事件所需要的逻辑功能。所述JS层处理函数收到请求信息后,依据请求信息调用相应的JS功能函数。必要时,请求信息中还应当明确Qt界面进行UI更新时所需要操控的组件的路径,该路径可以被添加到响应数据中。
所述第二信息包括与所述请求信息对应的响应数据。所述响应数据由JS层处理函数根据请求信息调用JS功能函数而得到。所述Qt层处理函数收到响应数据后,根据响应数据更新Qt界面。响应数据中不仅包含JS功能函数返回的数据,还可以包括需要更新的UI组件的路径。Qt层处理函数根据组件树和该路径找到需要操控的组件,然后调用Qt框架提供的方法函数将数据显示到组件中,完成界面的更新。
所述第一信息还可以是组件树对象,第二信息还可以是界面加载指令,二者用于界面的组件化加载生成和组件树对象的传递。
所述Qt层处理函数收到界面加载指令后,加载指令对应的UI文件,并根据UI文件中的自定义属性,通过递归加载的方式形成该界面对应的组件树对象,组件树对象中包含各组件在组件树中的路径以及对应的JS文件的保存路径,然后将组件树对象信息作为第一信息发送至JS层处理函数。
JS层处理函数在调用JS功能函数时,依据所述组件树对象来查找需要的JS功能函数。还可以根据组件树对象通过JS指令将JS逻辑函数转为内部的v8::Persistent<v8::Function>持久化指针,方便调用。
所述的第一信息和第二信息均为JSON格式。
所开发的应用运行过程如下:
步骤A、Node.js程序中,初始化Addon插件,并且将JS层处理函数的引用传递给Addon插件,使第一转发函数可以根据JS层处理函数的引用、通过libuv将JS层处理函数插入Node.js主线程中执行,并将第一信息传递给Node.js主线程中的JS层处理函数。
步骤B、Node.js程序中,通过调用Addon插件来加载已经被编译为so文件的Qt程序,并将第一转发函数的地址传递给Qt程序,使Qt层发送函数可以通过第一转发函数的地址来调用Addon插件中的第一转发函数,从而将第一信息转发至第一转发函数。
步骤C、Node.js程序调用Addon插件中的第二转发函数发送作为第二信息的界面加载指令,Qt层处理函数使用Qt的uitools 模块的QUiLoader,根据界面加载指令加载对应的UI文件生成界面并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数。
步骤D、Qt程序中,用户在界面中触发事件后,Qt层发送函数生成请求信息,然后通过第一转发函数将请求信息作为第一信息发送至JS处理函数。
步骤E、JS层处理函数根据请求信息中的当前组件的路径找到对应的JS文件,根据请求信息中的所需要执行的逻辑功能找到需要执行的JS功能函数,然后将请求信息中的事件信息传递给JS功能函数,JS功能函数执行后得到响应数据或新的界面加载指令。然后,JS发送函数调用Addon插件中的第二转发函数,并将响应数据或界面加载指令作为第二信息传递至第二转发函数,第二转发函数调用Qt程序中的Qt层处理函数,并将第二信息传递至Qt层处理函数。
步骤F、Qt层处理函数根据响应数据更新界面、并跳转至步骤D等待用户操作。或者,根据界面加载指令Qt的uitools 模块的QUiLoader加载对应的UI文件并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数,然后跳转至步骤D等待用户操作。
经测试,通过本方法开发的应用程序可以良好的运行在WEDS可编程智能终端系统(包括但不限于登记号为2019SR1181148的软件著作权所登记的“WEDS可编程智能终端系统V2.0”)等终端系统中。
Claims (7)
1.一种具有全功能Node.js的嵌入式应用的开发方法,包括步骤1、开发Qt程序,其特征在于:还包括:
步骤2、使用JS语言开发JS功能函数,以实现Qt所需要的逻辑功能;
步骤3、开发Node.js Addon插件,用于实现Node.js程序与Qt程序的通讯交互;
步骤4、开发Node.js程序,以实现:通过Addon插件完成与Qt程序的通讯交互,以及通过调用JS功能函数来完成Qt程序所请求的逻辑功能;
Qt程序中包含Qt层发送函数和Qt层处理函数;
Addon插件中包含第一转发函数和第二转发函数;
Node.js程序中包括JS层发送函数和JS层处理函数;
所述Qt层发送函数用于将Qt程序中的第一信息发送至第一转发函数;所述第一转发函数用于将第一信息转发至JS层处理函数;所述JS层处理函数用于处理收到的第一信息;
所述JS层发送函数用于将Node.js程序中的第二信息发送至第二转发函数;所述第二转发函数用于将第二信息转发至Qt层处理函数;所述Qt层处理函数用于处理收到的第二信息。
2.如权利要求1所述的具有全功能Node.js的嵌入式应用的开发方法,其特征在于:所述第一信息包括请求信息,所述请求信息包括Qt程序的事件信息、与该事件相关的组件的路径以及Qt程序为了响应该事件所需要的逻辑功能;所述JS层处理函数收到请求信息后,依据请求信息调用相应的JS功能函数。
3.如权利要求2所述的具有全功能Node.js的嵌入式应用的开发方法,其特征在于:所述第二信息包括与所述请求信息对应的响应数据;所述响应数据由JS层处理函数根据请求信息调用JS功能函数而得到;所述Qt层处理函数收到响应数据后,根据响应数据更新Qt界面。
4.如权利要求1至3任一所述的具有全功能Node.js的嵌入式应用的开发方法,其特征在于:步骤1中,Qt程序的界面由多个组件组成,每个组件分别对应一个UI文件;父组件中通过容器类组件包含所需要的子组件实现组件的嵌套;所述容器类组件设有自定义属性,该自定义属性指向所包含的子组件的UI文件。
5.如权利要求4所述的具有全功能Node.js的嵌入式应用的开发方法,其特征在于:各UI文件分别对应一JS文件,所述JS文件中包含有与其对应的组件所需要的逻辑功能的JS功能函数。
6.如权利要求5所述的具有全功能Node.js的嵌入式应用的开发方法,其特征在于:所述第一信息包括组件树对象,第二信息包括界面加载指令;
所述Qt层处理函数收到界面加载指令后,加载指令对应的UI文件,并根据UI文件中的自定义属性,通过递归加载的方式形成该界面对应的组件树对象,组件树对象中包含各组件在组件树中的路径以及对应的JS文件的保存路径,然后将组件树对象信息作为第一信息发送至JS层处理函数;
JS层处理函数在调用JS功能函数时,依据所述组件树对象来查找需要的JS功能函数。
7.一种具有全功能Node.js的嵌入式应用的运行方法,其特征在于:所述嵌入式应用基于如权利要求6所述的开发方法进行开发;
所述运行方法包括以下步骤:
步骤A、Node.js程序中,初始化Addon插件,并且将JS层处理函数的引用传递给Addon插件,使第一转发函数可以根据JS层处理函数的引用、通过libuv将JS层处理函数插入Node.js主线程中执行,并将第一信息传递给Node.js主线程中的JS层处理函数;
步骤B、Node.js程序中,通过调用Addon插件来加载已经被编译为so文件的Qt程序,并将第一转发函数的地址传递给Qt程序,使Qt层发送函数可以通过第一转发函数的地址来调用Addon插件中的第一转发函数,从而将第一信息转发至第一转发函数;
步骤C、Node.js程序调用Addon插件中的第二转发函数发送作为第二信息的界面加载指令,Qt层处理函数根据界面加载指令加载对应的UI文件生成界面并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数;
步骤D、Qt程序中,用户在界面中触发事件后,Qt层发送函数生成请求信息,然后通过第一转发函数将请求信息作为第一信息发送至JS处理函数;
步骤E、JS层处理函数根据请求信息中的当前组件的路径找到对应的JS文件,根据请求信息中的所需要执行的逻辑功能找到需要执行的JS功能函数,然后将请求信息中的事件信息传递给JS功能函数,JS功能函数执行后得到响应数据或新的界面加载指令;然后,JS发送函数调用Addon插件中的第二转发函数,并将响应数据或界面加载指令作为第二信息传递至第二转发函数,第二转发函数调用Qt程序中的Qt层处理函数,并将第二信息传递至Qt层处理函数;
步骤F、Qt层处理函数根据响应数据更新界面、并跳转至步骤D等待用户操作;或者,根据界面加载指令加载对应的UI文件并生成组件树对象,然后Qt层发送函数将组件树对象作为第一信息通过第一转发函数发送至JS处理函数,然后跳转至步骤D等待用户操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311099822.5A CN116820431B (zh) | 2023-08-30 | 2023-08-30 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311099822.5A CN116820431B (zh) | 2023-08-30 | 2023-08-30 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116820431A CN116820431A (zh) | 2023-09-29 |
CN116820431B true CN116820431B (zh) | 2023-11-14 |
Family
ID=88139570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311099822.5A Active CN116820431B (zh) | 2023-08-30 | 2023-08-30 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820431B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790276A (zh) * | 2017-02-20 | 2017-05-31 | 山东威尔数据股份有限公司 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
US9936005B1 (en) * | 2017-07-28 | 2018-04-03 | Kong Inc. | Systems and methods for distributed API gateways |
CN110688233A (zh) * | 2018-07-05 | 2020-01-14 | 武汉斗鱼网络科技有限公司 | 基于rxjs的客户端ipc通讯方法、存储介质、设备及系统 |
CN112035097A (zh) * | 2020-08-25 | 2020-12-04 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于银河锐华操作系统的c++适配层 |
CN112231608A (zh) * | 2020-10-30 | 2021-01-15 | 三峡机电工程技术有限公司 | 一种嵌入式Web组态图元的实现方法 |
CN112882848A (zh) * | 2021-02-25 | 2021-06-01 | 武汉大学 | 一种应用于网络及分布式开发的基础中间件 |
CN114741054A (zh) * | 2022-03-31 | 2022-07-12 | 武汉众智数字技术有限公司 | 基于国产化操作系统的桌面应用软件开发及构建的方法 |
CN116382688A (zh) * | 2023-03-30 | 2023-07-04 | 南京国电南自维美德自动化有限公司 | 一种适用于Arm-Linux的人机交互界面程序快速开发和部署方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748700A (zh) * | 2017-10-09 | 2018-03-02 | 北京东土科技股份有限公司 | 一种基于嵌入式操作系统的mpi实现系统和方法 |
-
2023
- 2023-08-30 CN CN202311099822.5A patent/CN116820431B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790276A (zh) * | 2017-02-20 | 2017-05-31 | 山东威尔数据股份有限公司 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
US9936005B1 (en) * | 2017-07-28 | 2018-04-03 | Kong Inc. | Systems and methods for distributed API gateways |
CN110688233A (zh) * | 2018-07-05 | 2020-01-14 | 武汉斗鱼网络科技有限公司 | 基于rxjs的客户端ipc通讯方法、存储介质、设备及系统 |
CN112035097A (zh) * | 2020-08-25 | 2020-12-04 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于银河锐华操作系统的c++适配层 |
CN112231608A (zh) * | 2020-10-30 | 2021-01-15 | 三峡机电工程技术有限公司 | 一种嵌入式Web组态图元的实现方法 |
CN112882848A (zh) * | 2021-02-25 | 2021-06-01 | 武汉大学 | 一种应用于网络及分布式开发的基础中间件 |
CN114741054A (zh) * | 2022-03-31 | 2022-07-12 | 武汉众智数字技术有限公司 | 基于国产化操作系统的桌面应用软件开发及构建的方法 |
CN116382688A (zh) * | 2023-03-30 | 2023-07-04 | 南京国电南自维美德自动化有限公司 | 一种适用于Arm-Linux的人机交互界面程序快速开发和部署方法 |
Non-Patent Citations (3)
Title |
---|
node-qt开源项目、项目README.md文件;arturadib;https://github.com/arturadib/node-qt;第1-4页 * |
基于B/S和C/S混合架构的无人值守机房智能计费系统设计;于群;;科技通报(03);全文 * |
嵌入式浏览器Konqueror/embedded的技术分析;蒋文军, 张晓林, 崔迎炜;单片机与嵌入式系统应用(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116820431A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745573B2 (en) | Platform-independent application development framework | |
CN110888615B (zh) | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 | |
CN111694564B (zh) | Flutter混合模式的编译方法、装置、设备和介质 | |
CN110704136A (zh) | 小程序组件的渲染方法、客户端、电子设备及存储介质 | |
CN107391736B (zh) | 一种页面显示方法及装置 | |
WO2005083562A1 (en) | System and method for building mixed mode execution environment for component applications | |
CN110806945B (zh) | 接口对接方法、装置和计算机可读介质 | |
CA2540361A1 (en) | System and method for extending capabilities and execution efficiency of script based applications | |
CN111367635A (zh) | 宿主平台层中的应用接口实现方法、装置、设备和介质 | |
CN111857658A (zh) | 一种渲染动态组件的方法、装置、介质和电子设备 | |
JP2021068415A (ja) | コード実行方法、装置、レンダリングデバイス、記憶媒体、及びプログラム | |
CN113485680A (zh) | 一种基于车载系统的app组件化控制系统和方法 | |
CN116820431B (zh) | 具有全功能Node.js的嵌入式应用开发及运行方法 | |
CN114222003A (zh) | 服务调用方法、系统、装置、设备及存储介质 | |
CN112235639B (zh) | 一种易升级可扩展的Linux智能电视操作系统 | |
JP7010562B2 (ja) | ラッピング方法、登録方法、装置、レンダリングディバイス、及びプログラム | |
CN112130888B (zh) | 应用程序更新的方法、装置、设备和计算机存储介质 | |
CN116233217B (zh) | 基于路由的页面跳转方法、装置、电子设备及存储介质 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN111158689A (zh) | 跨系统的ui应用生成方法、设备及计算机可读存储介质 | |
CN110780864A (zh) | 类方法替换的控制方法及装置、存储介质及电子设备 | |
CN114281335A (zh) | 视图生成方法和相关设备 | |
CN102508665B (zh) | 绘制应用程序视图的方法和装置 | |
CN117724726B (zh) | 一种数据处理方法和相关装置 | |
CN114880020A (zh) | 软件开发工具包管理方法、相关装置及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |