CN114625373A - 应用转换方法、装置、电子设备和存储介质 - Google Patents
应用转换方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114625373A CN114625373A CN202210234423.4A CN202210234423A CN114625373A CN 114625373 A CN114625373 A CN 114625373A CN 202210234423 A CN202210234423 A CN 202210234423A CN 114625373 A CN114625373 A CN 114625373A
- Authority
- CN
- China
- Prior art keywords
- file
- identifier
- engineering
- updated
- updating
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Abstract
本发明公开了应用转换方法、装置、电子设备和存储介质,涉及移动互联技术领域。该方法的一具体实施方式包括:获取应用转换指令中源应用标识和目标应用标识;获取源应用标识对应的工程文件,从工程文件中筛选待更新文件集合,将待更新文件集合中源应用标识对应的第一标记更新为目标应用标识对应的第二标记;查询源应用标识对应的第一工程文件目录和目标应用标识的第二工程文件目录,以确定缺失文件标识;获取缺失文件标识对应的文件模板,将文件模板更新至工程文件,以基于更新后的工程文件生成目标应用。该实施方式能够解决对运行在不同宿主环境的同一种小程序,需要单独开发工程文件,导致小程序的开发花费时间较长,降低开发效率的问题。
Description
技术领域
本发明涉及移动互联技术领域,尤其涉及一种应用转换方法、装置、电子设备和存储介质。
背景技术
小程序作为一种应用,可以在宿主运行环境中被便捷地获取和传播,具有出色的使用体验。但是小程序所属宿主环境不同,对应的工程文件也不相同。现有技术中,对运行在不同宿主环境的同一种小程序,需要单独开发工程文件,以使各小程序在适用的宿主环境中运行,但是这种方式导致小程序的开发花费时间较长,降低了小程序开发效率。
发明内容
有鉴于此,本发明实施例提供一种应用转换方法、装置、电子设备和存储介质,能够解决对运行在不同宿主环境的同一种小程序,需要单独开发工程文件,导致小程序的开发花费时间较长,降低开发效率的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用转换方法。
本发明实施例的一种应用转换方法包括:响应于应用转换指令,获取所述应用转换指令中源应用标识和目标应用标识;获取所述源应用标识对应的工程文件,以从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记;查询所述源应用标识对应的第一工程文件目录和所述目标应用标识的第二工程文件目录,以确定缺失文件标识;获取所述缺失文件标识对应的文件模板,将所述文件模板更新至所述工程文件,以基于更新后的工程文件生成目标应用。
在一个实施例中,所述第一标记包括源应用的第一类型标识,所述第二标记包括目标应用的第二类型标识;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
从所述工程文件中筛选文件名称中包括所述第一类型标识的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件名称中第一类型标识更新为第二类型标识,查找所述文件中包括所述第一类型标识的字符串,以将所述字符串中所述第一类型标识更新为所述第二类型标识。
在又一个实施例中,查找所述文件中包括所述第一类型标识的字符串,包括:
调用预设的生成模型,以生成所述文件对应的语法树;
基于所述语法树查找所述文件中包括所述第一类型标识的字符串。
在又一个实施例中,所述第一标记包括源应用的第一接口标识,所述第二标记包括目标应用的第二接口标识;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
从所述工程文件中筛选文件类型为JS类型的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件中第一接口标识更新为第二接口标识。
在又一个实施例中,所述第一标记包括源应用的第一工程依赖参数,所述第二标记包括目标应用的第二工程依赖参数;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
将所述工程文件中Package.jion文件确定为待更新文件集合中的文件;
将Package.jion文件中第一工程依赖参数更新为所述第二工程依赖参数。
在又一个实施例中,所述第一工程依赖参数包括工程依赖参数标识和对应的第一参数值,第二工程依赖参数包括所述工程依赖参数标识和对应的第二参数值;
将Package.jion文件中第一工程依赖参数更新为所述第二工程依赖参数,包括:
判断所述Package.jion文件中是否包括所述工程依赖参数标识;
若是,则将所述第一参数值更新为所述第二参数值;若否,则将所述第二工程参数添加至所述Package.jion文件。
在又一个实施例中,所述第二标记包括应用框架参数;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记,还包括:
筛选所述工程文件中App.jion文件,以添加至所述待更新文件集合中文件;
将所述应用框架参数添加至所述App.jion文件中。
在又一个实施例中,基于更新后的工程文件生成目标应用之前,还包括:
调用预设的识别模型,以识别更新的工程文件中异常标签信息和异常接口信息,将所述异常标签信息和异常接口信息添加至目标文件。
为实现上述目的,根据本发明实施例的另一方面,提供了一种应用转换装置。
本发明实施例的一种应用转换装置包括:获取单元,用于响应于转换指令,获取所述转换指令中源应用标识和目标应用标识;更新单元,用于获取所述源应用标识对应的工程文件,以从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记;确定单元,用于查询所述源应用标识对应的第一工程文件目录和所述目标应用标识的第二工程文件目录,以确定缺失文件标识;生成单元,用于获取所述缺失文件标识对应的文件模板,将所述文件模板更新至所述工程文件,以基于更新后的工程文件生成目标应用。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的应用转换方法。
为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的应用转换方法。
为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机程序产品。
本发明实施例的一种计算机程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例提供的应用转换方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例中,基于应用转换指令获取源应用标识和目标应用标识,对源应用标识对应的工程文件,可以先从中筛选待更新文件集合,即需要修改的文件集合,然后将待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记;再通过源应用的工程文件目录和目标应用的工程文件目录确定出缺失文件标识,也就是目标应用需要而元应用的工程文件中缺失的文件标识,然后通过缺失文件标识对应的文件模板更新至源应用的工程文件,使更新后的工程文件能够满足目标应用需求,从而运行更新的工程文件来生成目标应用。本发明实施例中,对需要开发的小程序,无需进行工程文件的单独开发,而是通过其他小程序的工程文件进行转换,转换后即可得出所需小程序的工程文件,如此可以简化小程序开发的过程,提高小程序开发的效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的应用转换方法的一种主要流程的示意图;
图2是根据本发明实施例的文件更新方法的一种主要流程的示意图;
图3是根据本发明实施例的应用转换装置的主要单元的示意图;
图4是本发明实施例可以应用于其中的一种示例性系统架构图;
图5是适于用来实现本发明实施例的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
本发明实施例提供一种应用转换系统,该系统可以用于在不同运行环境的应用相互转换场景,具体可以为运行于不同宿主环境的小程序之间的转换。
本发明实施例提供了一种应用转换方法,该方法可由应用转换系统执行,如图1所示,该方法包括:
S101:响应于应用转换指令,获取应用转换指令中源应用标识和目标应用标识。
其中,应用转换指令可以外部设备发送,也可以为通过预设策略自动触发。应用转换指令为在不同运行环境中相同应用之间的转换,包括源应用标识和目标应用标识,源应用标识用于表示应用在源运行环境的标识,目标应用标识用于表示应用在目标运行环境的标识。以应用为某个小程序为例,小程序实现通常依赖于宿主的运行环境,源应用标识表示该小程序在源宿主运行环境(源运行环境)的标识,目标应用标识表示该小程序在目标宿主运行环境(目标运行环境)的标识。
S102:获取源应用标识对应的工程文件,以从工程文件中筛选待更新文件集合,将待更新文件集合中源应用标识对应的第一标记更新为目标应用标识对应的第二标记。
其中,应用转换通常为工程文件的转换,所本步骤中可以先获取源应用标识对应的工程文件,进而从中筛选出待更新文件集合。待更新文件集合中的文件表示源应用标识对应的工程文件中不适用于目标应用的文件,所以在得出待更新文件集合后,可以将其中源应用标识对应的第一标记更新为目标应用标识对应的第二标记。第一标记通常为适用于源运行环境的标记,第二标记通常为适用于目标运行环境的标记,第一标记在目标运行环境中通常无法识别和运行,所以需要更新为第二标记,以便于更新后的文件适用于应用的目标运行环境。
在一些实施例中,第一标记可以包括源应用的第一类型标识,第二标记可以包括目标应用的第二类型标识;类型标识为运行环境所属类型的标识,第一类型标识为源运行环境所表示类型的标识,第二类型标识为目标运行环境所表示类型的标识,以应用为小程序为例,类型标识可以为运行该小程序的APP运行环境所属类型的标识。所本步骤中可以从工程文件中筛选文件名称中包括第一类型标识的待更新文件集合,然后对待更新文件集合中每个文件,将文件名称中第一类型标识更新为第二类型标识,查找文件中包括第一类型标识的字符串,以将字符串中第一类型标识更新为第二类型标识。其中字符串可以包括第一标记的指令、属性参数等等。示例的,第一类型标识可以为wx,如wxml、wxss等,第二类型标识可以为mx,如mxml、mxss等。
具体的,本发明实施例中,查找文件中包括第一类型标识的字符串可以具体执行为:调用预设的生成模型,以生成文件对应的语法树;基于语法树查找文件中包括第一类型标识的字符串。其中,语法树可以具体为AST(抽象语法树),生成模型可以为预先训练的机器学习模型。
在又一些实施例中,第一标记还可以包括源应用的第一接口标识,第二标记还包括目标应用的第二接口标识;应用运行通常会涉及运行环境接口(API)的调用,以便于可以正常运行,源应用的第一接口标识表示应用在源运行环境所调用的接口标识,目标应用的第二接口标识表示应用在目标运行环境所调用的接口标识,而涉及接口调用的文件通常为JS类型的文件。所以本步骤中,可以从工程文件中筛选文件类型为JS类型的待更新文件集合;然后对待更新文件集合中每个文件,将文件中第一接口标识更新为第二接口标识。
具体的,可以调用预设的babel库解析和处理JS类型文件,以生成对应的抽象语法树(AST),进而遍历抽象语法树上的每个节点,对节点处理,即将第一接口标识更新为第二接口标识。
在又一些实施例中,第一标记还可以包括源应用的第一工程依赖参数,第二标记包括目标应用的第二工程依赖参数。工程依赖参数可以表示工程依赖文件(Package.jion)中所需要包括的参数,例如,工程依赖参数可以包括name、version、description、main、private、author、keywords、license等字段参数。所以本步骤中可以将工程文件中Package.jion文件确定为待更新文件集合;然后将Package.jion文件中第一工程依赖参数更新为第二工程依赖参数。
具体的,第一工程依赖参数与第二工程依赖参数所包括的工程参数名称相同,但是对应的参数值不同,即第一工程依赖参数包括工程依赖参数标识和对应的第一参数值,第二工程依赖参数包括工程依赖参数标识和对应的第二参数值。所以上述步骤中在将第一工程依赖参数更新为第二工程依赖参数可以执行为:判断Package.jion文件中是否包括工程依赖参数标识;若是,则将第一参数值更新为第二参数值;若否,则将第二工程参数添加至Package.jion文件。Package.jion文件中是否包括工程依赖参数标识,说明其包括了该工程参数,只需要对参数值进行更新即可。
在又一些实施例中,由于运行环境的不同,目标运行环境对应文件所需参数也许在源运行环境对应文件中不存在,例如App.jion文件,目标运行环境对应App.jion文件中需要包括框架参数,如framework,而源运行环境对应App.jion文件中并不存在,所以第二标记还可以包括应用框架参数。本步骤中可以筛选工程文件中App.jion文件,以添加至待更新文件集合中文件;然后将应用框架参数添加至筛选出的App.jion文件中。
S103:查询源应用标识对应的第一工程文件目录和目标应用标识的第二工程文件目录,以确定缺失文件标识。
其中,由于运行环境的不同,应用在目标运行环境运行所需文件,在源应用标识对应的工程文件中可能不存在,所以本步骤中可以查询源应用标识对应的第一工程文件目录和目标应用标识的第二工程文件目录,通过将第一工程文件目录和第二工程文件目录比较可以确定出缺失文件标识,即应用在目标运行环境运行所需、而在源应用标识对应的工程文件中不存在的文件标识。
S104:获取缺失文件标识对应的文件模板,将文件模板更新至工程文件,以基于更新后的工程文件生成目标应用。
其中,本发明实施例中可以预设应用在目标运行环境运行所需文件的文件模板,如此可以基于缺失文件标识获取对应的文件模板,从而将文件模板更新至步骤S103更新的工程文件中,如此可以得出应用在目标运行环境运行所需的工程文件,所以运行该工程文件即可生成目标应用,即在目标运行环境运行的应用。
需要说明的是,本发明实施例中,在得出更新后的工程文件后,还可以调用预设的识别模型,以识别更新的工程文件中异常标签信息和异常接口信息,将异常标签信息和异常接口信息添加至目标文件。
异常标签信息和异常接口信息可以表示在目标运行环境运行不支持的标签信息(如unsupportHtmlTag)和接口信息(如api unsupportApis)。目标文件可以为预先配置dist目录下的compile-info.txt文件。后续开发人员通过目标文件可以进行兼容处理。
本发明实施例中,对需要开发的小程序,无需进行工程文件的单独开发,而是通过其他小程序的工程文件进行转换,转换后即可得出所需小程序的工程文件,如此可以简化小程序开发的过程,提高小程序开发的效率。
本发明实施例中,以应用为某小程序为例,源应用表示在源运行环境中运行的该小程序(源小程序),目标应用表示在目标运行环境中运行的该小程序(目标小程序),源小程序和目标小程序之间工程文件之间的差异可以如表1所示。
表1
下面结合图1所示的实施例,对本发明实施例中步骤S102和步骤S103中更新工程文件方法进行具体说明,如图2所示,该方法包括:
S201:获取源小程序标识对应的工程文件。
S202:从工程文件中筛选包括wxml的文件,将文件名中mxml更新为wxss,将文件中包括wx的字符串中wx更新为包括mx。
其中,包括wxml的文件可以具体为文件扩展名为.wxml的文件,将文件的扩展名修改为.mxml,如原文件名为test.wxml,更新后的文件名为test.mxml。
本步骤可以将文件解析为AST(抽象语法树),将文件中包括wx的字符串,如wx属性和wx指令更新为mx属性和mp指令,以实现对文件的语法修改。
具体可以执行为:读取扩展名为.mxml文件的内容;删除该文件中的注释信息,注释信息是以“<--”开始,以“-->”结尾的字符,将注释信息替换为空字符串;将该文件中的不规范属性(即属性存在大小写)修改为下划线形式,由于xml的标签和属性不区分大小写,若标签和属性存在大小写说明开发者开发不规范,所以本步骤可以进行改写;将该文件中的不规范标签(即标签存在大小写)修改为下划线形式;将自闭合标签修改为非自闭合标签,以实现统一标签形式;使用预设的parse5库解析该文件内容,以生成抽象语法树;遍历抽象语法树上的每个节点,对节点处理。对节点的处理过程可以为:初始化目标小程序已经支持的标签(为一个数组),如htmlTag(数组名为htmlTag);使用set数据类型(即没有重合元素)初始化目标小程序不支持的标签数组,如unsupportHtmlTag,具体可以为文件中目标小程序不支持的标签;遍历抽象语法树中的每个节点,若节点的属性或指令名以”wx:”开始,则将属性修改为“mp:”,如“wx:for="{{array}}",修改为“mp:for="{{array}}”;若节点的标签名不属于目标小程序不支持的标签,则记录到目标小程序不支持的标签数组中,以便于存储。
需要说明的是,在生成抽象语法树之前,通过上述步骤的处理可以将文件规范化,进而可以准确的生成抽象语法树。其中,不规范属性修改可以如下代码所示:将<buttontype="primary"bindtap="changeTitle"pageTitle='页面标题'>点我换标题</button>中pageTitle属性,修改为<button type="primary"bindtap="changeTitle"page-title='页面标题'>点我换标题</button>;不规范标签修改可以如下代码所示:将<richText></richText>中richText属性修改为<rich-text></rich-text>;自闭合标签修改可以如下代码所示:将<input placeholder="将会获取焦点"name="mpInput"/>修改为<input placeholder="将会获取焦点"name="mpInput"></input>。
本步骤中使用抽象语法树处理mxml文件比使用正则表达式处理mxml的优势是程序鲁棒性更强,程序bug少。同时可以得出目标小程序不支持的标签数组,可以将存储至目标文件中。
S203:从工程文件中筛选包括wxss的文件,将文件名中wxss更新为mcss,将文件中包括wxss的字符串中wxss更新为包括mcss。
其中,包括wxss的文件可以具体为文件扩展名为.wxss的文件,将文件的扩展名修改为.mcss,如原文件名为test.wxss,更新后的文件名为test.mcss。
由于文件中引入了公共样式common.wxss,所以需要将文件中common.wxss更新为common..wxss,即将文件中包括.wxss字符串中.wxss更新为.mcss。例如,文件中公共样式代码可以如下所示。
将上述代码修改后可以得到更新后的代码,如下所示。
S204:从工程文件中筛选app.json文件,将目标小程序对应的应用框架参数更新至app.json。
其中,由于源小程序对应app.json文件中不包括目标小程序对应app.json文件所需的应用框架参数,所以本步骤中可以将其添加至app.json文件中。应用框架参数可以包括framework字段,对应的字段值可以为“Jump”。具体可以在一个json对象中添加framework字段,framework字段的值为“Jump”,然后将该json对象写入到app.json文件。
S205:从工程文件中筛选JS类型文件,将文件中源小程序的接口标识更新为目标小程序的接口标识。
具体的,可以将JS文件解析为AST(抽象语法树),将js文件中的API修改为目标小程序的API,例如,源小程序的接口标识wx.switchTab,则可以修改为目标小程序的接口标识jump.switchTab。
示例的,js文件更新可以执行为:读取js文件内容;使用babel库解析和处理js文件内容,其中,babel是将js解析为一个抽象语法树(AST)的模型;初始化目标小程序已经支持的标签(为一个数组),如supportApi(数组名为supportApi);使用set数据类型(即没有重合元素)初始化目标小程序不支持的标签数组,如unsupportApis,具体可以为文件中目标小程序不支持的标签;遍历抽象语法树中的每个节点,若节点的属性或指令名以”wx:”开始,将属性名修改为“jump:”,如“wx.switchTab",修改为“jump.switchTab”;若节点的标签名不属于目标小程序不支持的标签,则记录到目标小程序不支持的标签数组中,以便于存储。
本步骤中使用抽象语法树处理mxml文件比使用正则表达式处理mxml的优势是程序鲁棒性更强,程序bug少。同时可以得出目标小程序不支持的标签数组,可以将存储至目标文件中。
S206:从工程文件中筛选Package.jion文件,将Package.jion文件中工程依赖参数更新为目标小程序对应的工程依赖参数。
其中,工程依赖参数可以包括name、version、description、main、private、author、keywords、license字段,对于这些字段中的每个字段,如果Package.jion文件包括了该字段,则可以将Package.jion文件中该字段的字段值更新为目标小程序对应的工程依赖参数中该字段的字段值;如果Package.jion文件不包括该字段,则可以将目标小程序对应的工程依赖参数中该字段和对应的字段值添加至Package.jion文件。例如,Package.jion文件无name字段,则可以将目标小程序的工程依赖参数中name字段和对应的字段值"jump-project"添加至Package.jion文件;若Package.jion文件有name字段,则可以其字段值更新为"jump-project"。
对于scripts和devDependencies字段,若package.json文件中无scripts和devDependencies字段,将目标小程序的工程依赖参数中的scripts和devDependencies字段添加到生成后的package.json中;若package.json中包括scripts或devDependencies字段,将目标小程序的工程依赖参数中scripts或devDependencies字段合并到生成后的scripts字段中devDependencies字段,即若packag.json文件中包括script字段,其字段值如下所示。
"scripts":{
"tets":"test",
}
则可以将目标小程序的工程依赖参数中的script字段合并到原script中,最终script字段的内容如下所示。
"scripts":{
"tets":"test",
"build":"jump build-n jump-project",
"dev":"jump build-n jump-project-k",
}。
需要说明的是,在一些小程序中,其工程文件中可能不包括Package.jion文件,所以本步骤执行之前可以先对工程文件中是否包括Package.jion文件;如果包括,则执行本步骤;如果不包括则可以不执行本步骤,而执行后续步骤。
S207:确定缺失文件标识,以获取缺失文件标识对应的文件模板,将文件模板更新至所述工程文件。
文件模板为预先配置,例如,对于meta.json文件,可以通过如下代码配置文件模板。
对于Package.json文件,可以通过如下代码配置文件模板。
Package.json中常用的字段有name表示工程名称,version表示版本,description为工程描述,main入口文件,private工程是否发布到npm仓库,scripts可执行脚本,author作者,keywords工程关键词,license工程版权,devDependencies工程依赖等。
需要说明的是,本发明实施例中数据处理原理与图1所示实施例中对应的数据处理原理相同,在此不再赘述。
本发明实施例中,对需要开发的小程序,无需进行工程文件的单独开发,而是通过其他小程序的工程文件进行转换,转换后即可得出所需小程序的工程文件,如此可以简化小程序开发的过程,提高小程序开发的效率
为了解决现有技术存在的问题,本发明实施例提供了一种应用转换装置300,如图3所示,该装置300包括:
获取单元301,用于响应于转换指令,获取所述转换指令中源应用标识和目标应用标识;
更新单元302,用于获取所述源应用标识对应的工程文件,以从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记;
确定单元303,用于查询所述源应用标识对应的第一工程文件目录和所述目标应用标识的第二工程文件目录,以确定缺失文件标识;
生成单元304,用于获取所述缺失文件标识对应的文件模板,将所述文件模板更新至所述工程文件,以基于更新后的工程文件生成目标应用。
应理解的是,实施本发明实施例的方式与实施图1所示实施例的方式相同,在此不再赘述。
本发明实施例的一种实现方式中,所述第一标记包括源应用的第一类型标识,所述第二标记包括目标应用的第二类型标识;
所述更新单元,具体用于:
从所述工程文件中筛选文件名称中包括所述第一类型标识的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件名称中第一类型标识更新为第二类型标识,查找所述文件中包括所述第一类型标识的字符串,以将所述字符串中所述第一类型标识更新为所述第二类型标识。
本发明实施例的又一种实现方式中,所述更新单元,具体用于:
调用预设的生成模型,以生成所述文件对应的语法树;
基于所述语法树查找所述文件中包括所述第一类型标识的字符串。
本发明实施例的又一种实现方式中,所述第一标记包括源应用的第一接口标识,所述第二标记包括目标应用的第二接口标识;
所述更新单元,具体用于:
从所述工程文件中筛选文件类型为JS类型的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件中第一接口标识更新为第二接口标识。
本发明实施例的又一种实现方式中,所述第一标记包括源应用的第一工程依赖参数,所述第二标记包括目标应用的第二工程依赖参数;
所述更新单元,具体用于:
将所述工程文件中Package.jion文件确定为待更新文件集合中的文件;
将Package.jion文件中第一工程依赖参数更新为所述第二工程依赖参数。
本发明实施例的又一种实现方式中,所述第一工程依赖参数包括工程依赖参数标识和对应的第一参数值,第二工程依赖参数包括所述工程依赖参数标识和对应的第二参数值;
所述更新单元,具体用于:
判断所述Package.jion文件中是否包括所述工程依赖参数标识;
若是,则将所述第一参数值更新为所述第二参数值;若否,则将所述第二工程参数添加至所述Package.jion文件。
本发明实施例的又一种实现方式中,所述第二标记包括应用框架参数;
所述更新单元,具体用于:
筛选所述工程文件中App.jion文件,以添加至所述待更新文件集合中文件;
将所述应用框架参数添加至所述App.jion文件中。
本发明实施例的又一种实现方式中,所述装置还包括:
存储单元,用于调用预设的识别模型,以识别更新的工程文件中异常标签信息和异常接口信息,将所述异常标签信息和异常接口信息添加至目标文件。
应理解的是,实施本发明实施例的方式与实施图1或图2所示实施例的方式相同,在此不再赘述。
本发明实施例中,对需要开发的小程序,无需进行工程文件的单独开发,而是通过其他小程序的工程文件进行转换,转换后即可得出所需小程序的工程文件,,如此可以简化小程序开发的过程,提高小程序开发的效率。
根据本发明的实施例,本发明实施例还提供了一种电子设备和一种可读存储介质。
本发明实施例的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例所提供的应用转换方法。
图4示出了可以应用本发明实施例的应用转换方法或应用转换装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种客户端应用。
终端设备401、402、403可以是但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的应用转换方法一般由服务器405执行,相应地,应用转换装置一般设置于服务器705中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的计算机系统500的结构示意图。图5示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、更新单元、确定单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“标识获取单元的功能的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明所提供的应用转换方法。
作为另一方面,本发明还提供了一种计算机程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例提供的应用转换方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (15)
1.一种应用转换方法,其特征在于,包括:
响应于应用转换指令,获取所述应用转换指令中源应用标识和目标应用标识;
获取所述源应用标识对应的工程文件,以从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记;
查询所述源应用标识对应的第一工程文件目录和所述目标应用标识的第二工程文件目录,以确定缺失文件标识;
获取所述缺失文件标识对应的文件模板,将所述文件模板更新至所述工程文件,以基于更新后的工程文件生成目标应用。
2.根据权利要求1所述的方法,其特征在于,所述第一标记包括源应用的第一类型标识,所述第二标记包括目标应用的第二类型标识;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
从所述工程文件中筛选文件名称中包括所述第一类型标识的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件名称中第一类型标识更新为第二类型标识,查找所述文件中包括所述第一类型标识的字符串,以将所述字符串中所述第一类型标识更新为所述第二类型标识。
3.根据权利要求2所述的方法,其特征在于,查找所述文件中包括所述第一类型标识的字符串,包括:
调用预设的生成模型,以生成所述文件对应的语法树;
基于所述语法树查找所述文件中包括所述第一类型标识的字符串。
4.根据权利要求1所述的方法,其特征在于,所述第一标记包括源应用的第一接口标识,所述第二标记包括目标应用的第二接口标识;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
从所述工程文件中筛选文件类型为JS类型的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件中第一接口标识更新为第二接口标识。
5.根据权利要求1所述的方法,其特征在于,所述第一标记包括源应用的第一工程依赖参数,所述第二标记包括目标应用的第二工程依赖参数;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中所述源应用标识对应的第一标记更新为所述目标应用标识对应的第二标记,包括:
将所述工程文件中Package.jion文件确定为待更新文件集合中的文件;
将Package.jion文件中第一工程依赖参数更新为所述第二工程依赖参数。
6.根据权利要求5所述的方法,其特征在于,所述第一工程依赖参数包括工程依赖参数标识和对应的第一参数值,第二工程依赖参数包括所述工程依赖参数标识和对应的第二参数值;
将Package.jion文件中第一工程依赖参数更新为所述第二工程依赖参数,包括:
判断所述Package.jion文件中是否包括所述工程依赖参数标识;
若是,则将所述第一参数值更新为所述第二参数值;若否,则将所述第二工程参数添加至所述Package.jion文件。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述第二标记包括应用框架参数;
从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记,还包括:
筛选所述工程文件中App.jion文件,以添加至所述待更新文件集合中文件;
将所述应用框架参数添加至所述App.jion文件中。
8.根据权利要求1所述的方法,其特征在于,基于更新后的工程文件生成目标应用之前,还包括:
调用预设的识别模型,以识别更新的工程文件中异常标签信息和异常接口信息,将所述异常标签信息和异常接口信息添加至目标文件。
9.一种应用转换装置,其特征在于,包括:
获取单元,用于响应于转换指令,获取所述转换指令中源应用标识和目标应用标识;
更新单元,用于获取所述源应用标识对应的工程文件,以从所述工程文件中筛选待更新文件集合,将所述待更新文件集合中第一标记更新为所述目标应用标识对应的第二标记;
确定单元,用于查询所述源应用标识对应的第一工程文件目录和所述目标应用标识的第二工程文件目录,以确定缺失文件标识;
生成单元,用于获取所述缺失文件标识对应的文件模板,将所述文件模板更新至所述工程文件,以基于更新后的工程文件生成目标应用。
10.根据权利要求9所述的装置,其特征在于,所述第一标记包括源应用的第一类型标识,所述第二标记包括目标应用的第二类型标识;
所述更新单元,具体用于:
从所述工程文件中筛选文件名称中包括所述第一类型标识的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件名称中第一类型标识更新为第二类型标识,查找所述文件中包括所述第一类型标识的字符串,以将所述字符串中所述第一类型标识更新为所述第二类型标识。
11.根据权利要求10所述的装置,其特征在于,所述更新单元,具体用于:
调用预设的生成模型,以生成所述文件对应的语法树;
基于所述语法树查找所述文件中包括所述第一类型标识的字符串。
12.根据权利要求9所述的装置,其特征在于,所述第一标记包括源应用的第一接口标识,所述第二标记包括目标应用的第二接口标识;
所述更新单元,具体用于:
从所述工程文件中筛选文件类型为JS类型的待更新文件集合;
对所述待更新文件集合中每个文件,将所述文件中第一接口标识更新为第二接口标识。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210234423.4A CN114625373A (zh) | 2022-03-10 | 2022-03-10 | 应用转换方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210234423.4A CN114625373A (zh) | 2022-03-10 | 2022-03-10 | 应用转换方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625373A true CN114625373A (zh) | 2022-06-14 |
Family
ID=81900311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210234423.4A Pending CN114625373A (zh) | 2022-03-10 | 2022-03-10 | 应用转换方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625373A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361194A (zh) * | 2023-05-19 | 2023-06-30 | 深圳凡泰极客科技有限责任公司 | 异常代码识别方法、系统、电子设备及存储介质 |
-
2022
- 2022-03-10 CN CN202210234423.4A patent/CN114625373A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361194A (zh) * | 2023-05-19 | 2023-06-30 | 深圳凡泰极客科技有限责任公司 | 异常代码识别方法、系统、电子设备及存储介质 |
CN116361194B (zh) * | 2023-05-19 | 2023-08-29 | 深圳凡泰极客科技有限责任公司 | 异常代码识别方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
CN109976793B (zh) | 一种应用程序的运行方法、装置、设备和介质 | |
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN111460241B (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN112817657B (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
US11934287B2 (en) | Method, electronic device and computer program product for processing data | |
CN116028028A (zh) | 请求函数生成方法、装置、设备及存储介质 | |
CN114625373A (zh) | 应用转换方法、装置、电子设备和存储介质 | |
CN108694172B (zh) | 信息输出方法和装置 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN115951916A (zh) | 一种组件的处理方法、装置、电子设备及存储介质 | |
CN115543967A (zh) | 一种数据迁移方法、装置、电子设备及计算机可读介质 | |
CN112947941A (zh) | 一种添加异常处理代码的方法和装置 | |
CN113419740A (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
CN112241505B (zh) | 页面更新方法、页面更新装置、介质及电子设备 | |
CN112988583A (zh) | 数据库语法兼容性测试的方法和装置 | |
CN108664535B (zh) | 信息输出方法和装置 | |
CN112579151A (zh) | 一种模型文件的生成方法和装置 | |
CN112130860B (zh) | Json对象解析方法、装置、电子设备及存储介质 | |
CN112015394B (zh) | 安卓功能模块开发方法和装置、计算机系统和存储介质 | |
CN112925573B (zh) | 网页加载的方法、装置、设备和计算机可读介质 | |
CN114594980A (zh) | 组件动态更新的方法、装置、电子设备和存储介质 | |
CN117149633A (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 |