本技术涉及数据处理开发领域,尤其涉及原生应用生成方法、装置、设备、存储介质及程序产品。
背景技术:
1、目前,各端应用通过使用通用解析器在应用运行时对dsl(domain-specificlanguage,领域特定语言)文本进行动态解析,以生成原生应用。具体来说,通用解析器会在应用运行时解析dsl文本,生成最终需要的界面对象,显示在屏幕上,从而构建适用于多个平台的原生应用。这种在应用运行时解析dsl文本的方式,相比于直接运行原生应用的应用代码,增加了额外的dsl文本解析步骤,导致了不必要的性能消耗。尤其是在应用启动时,这种解析过程显著增加了启动时间,随着应用复杂度的增加,启动等待时间也会进一步延长。总的来说,目前的原生应用生成方法会生成运行性能消耗较大的原生应用,因此,亟需一种更好的原生应用生成方法。
2、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本技术的主要目的在于提供一种原生应用生成方法、装置、设备、存储介质及程序产品,旨在解决目前的原生应用生成方法会生成运行性能消耗较大的原生应用的技术问题。
2、为实现上述目的,本技术提出一种原生应用生成方法,方法包括:
3、获取用户端的领域特定语言文本,其中,领域特定语言文本包括用于描述预设的应用组件的一种专用语言文本;
4、在预设的解析器中解析领域特定语言文本,得到第一领域特定语言文本,基于第一领域特定语言文本生成目标格式的语法结构树;
5、基于目标格式的语法结构树,生成对应的原生应用的应用代码,其中,原生应用包括网页应用、微信小程序应用、安卓应用及苹果应用中的至少一项;
6、基于预设的原生应用工具链,对应用代码进行构建,生成原生应用。
7、在一实施例中,基于目标格式的语法结构树,生成对应的原生应用的应用代码的步骤包括:
8、遍历语法结构树的组件节点,获取组件节点的层次关系、样式信息及组件行为信息,其中,层次关系包括应用组件在待生成的原生应用中的组织结构,样式信息包括应用组件在待生成的原生应用中的视觉属性,组件行为信息包括应用组件的交互逻辑;
9、基于层次关系、样式信息及组件行为信息,生成原生应用的应用代码。
10、在一实施例中,原生应用为网页应用,基于层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤包括:
11、基于层次关系,解析组件节点的组件层次,将组件层次映射为网页应用对应的超文本标记语言标签结构;
12、基于样式信息,解析组件节点的视觉属性,将视觉属性映射为网页应用对应的层叠样式表样式规则;
13、基于组件行为信息,解析组件节点的行为逻辑,将行为逻辑映射为网页应用对应的脚本语言代码;
14、整合网页应用的超文本标记语言标签结构、层叠样式表样式规则及脚本语言代码,得到原生应用的应用代码。
15、在一实施例中,原生应用为微信小程序应用,基于层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
16、基于层次关系,解析组件节点的组件层次,将组件层次映射为微信小程序应用对应的结构标签;
17、基于样式信息,解析组件节点的视觉属性,将组件节点映射为微信小程序对应的样式表;
18、基于组件行为信息,解析组件节点的行为逻辑,将行为逻辑映射为微信小程序对应的脚本语言代码;
19、整合微信小程序应用的结构标签、样式表及脚本语言代码,得到原生应用的应用代码。
20、在一实施例中,原生应用为安卓应用,基于层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
21、基于层次关系,解析组件节点的层次结构,将层次结构映射为安卓应用对应的安卓布局文件;
22、基于样式信息,解析组件节点的视觉属性,将视觉属性映射为安卓应用对应的安卓样式资源;
23、基于组件行为信息,解析组件节点的行为逻辑,将行为逻辑映射为安卓应用对应的行为代码;
24、整合安卓应用的安卓布局文件中的布局信息、安卓样式资源及行为代码,得到原生应用的应用代码。
25、在一实施例中,原生应用为苹果应用,基于层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
26、基于层次关系,解析组件节点的层次结构,将层次结构映射为苹果应用对应的结构代码;
27、基于样式信息,解析组件节点的视觉属性,将视觉属性映射为苹果应用对应的样式代码;
28、基于组件行为信息,解析组件节点的行为逻辑,将行为逻辑映射为苹果应用的行为代码;
29、整合苹果应用的结构代码、样式代码及行为代码,得到原生应用的应用代码。
30、此外,为实现上述目的,本技术还提出一种原生应用生成装置,原生应用装置包括:
31、文本收集模块,用于获取用户端的领域特定语言文本,其中,所述领域特定语言文本包括用于描述预设的应用组件的一种专用语言文本;
32、文本解析模块,用于在预设的解析器中解析领域特定语言文本,得到第一领域特定语言文本,基于第一领域特定语言文本生成目标格式的语法结构树;
33、代码生成模块,用于基于目标格式的语法结构树,生成对应的原生应用的应用代码,其中,所述原生应用包括网页应用、微信小程序应用、安卓应用及苹果应用中的至少一项;
34、代码打包模块,用于基于预设的原生应用工具链,对应用代码进行构建,生成原生应用。
35、此外,为实现上述目的,本技术还提出一种原生应用生成设备,设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序配置为实现如上文的原生应用生成方法的步骤。
36、此外,为实现上述目的,本技术还提出一种存储介质,存储介质为计算机可读存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文的原生应用生成方法的步骤。
37、此外,为实现上述目的,本技术还提供一种程序产品,程序产品包括计算机程序,计算机程序被处理器执行时实现如上文的原生应用生成方法的步骤。
38、本技术首先获取用户端的领域特定语言文本也即是dsl文本(其中,领域特定语言文本包括用于描述预设的应用组件的一种专用语言文本),通过在预设的解析器中解析领域特定语言文本,得到第一领域特定语言文本,在解析器中解析领域特定语言文本,避免了在应用运行时解析特定领域语言文本,减少了原生应用在运行时的性能消耗,其次基于第一领域特定语言文本生成目标格式的语法结构树,使得后续的原生应用的应用代码生成过程可以基于清晰的应用组件信息进行,然后基于目标格式的语法结构树,快速生成原生应用的应用代码,比如网页应用、微信小程序应用、安卓应用及苹果应用中的至少一项的应用代码,从而避免了在应用运行时进行复杂的数据解析和处理,最后基于原生应用工具链对应用代码进行构建,生成原生应用,该原生应用可以不用在应用运行时解析特定领域语言,因此其运行时性能更好,也就是生成了运行性能更好的原生应用。
1.一种原生应用生成方法,其特征在于,所述的方法包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述目标格式的语法结构树,生成对应的原生应用的应用代码的步骤包括:
3.如权利要求2所述的方法,其特征在于,所述原生应用为网页应用,所述基于所述层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤包括:
4.如权利要求2所述的方法,其特征在于,所述原生应用为微信小程序应用,所述基于所述层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
5.如权利要求2所述的方法,其特征在于,所述原生应用为安卓应用,所述基于所述层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
6.如权利要求2所述的方法,其特征在于,所述原生应用为苹果应用,所述基于所述层次关系、样式信息及组件行为信息,生成原生应用的应用代码的步骤还包括:
7.一种原生应用生成装置,其特征在于,所述装置包括:
8.一种原生应用生成设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的原生应用生成方法的步骤。
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的原生应用生成方法的步骤。
10.一种程序产品,其特征在于,所述程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的原生应用生成方法的步骤。
