CN111831279A - 界面代码生成方法及装置 - Google Patents
界面代码生成方法及装置 Download PDFInfo
- Publication number
- CN111831279A CN111831279A CN201910325102.3A CN201910325102A CN111831279A CN 111831279 A CN111831279 A CN 111831279A CN 201910325102 A CN201910325102 A CN 201910325102A CN 111831279 A CN111831279 A CN 111831279A
- Authority
- CN
- China
- Prior art keywords
- information
- dsl code
- control
- dsl
- control identifier
- 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.)
- Granted
Links
Images
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/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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供界面代码生成方法及装置,涉及计算机技术领域。该方法是在生成新图形用户界面图对应的DSL代码以及该代码包括的控件标识关联的文字信息后,结合了旧图形用户界面图对应的DSL代码以及该代码包括的控件标识关联的文字信息,因而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及界面代码生成方法及装置。
背景技术
在工程项目开发的过程中,图形用户界面(graphical user interface,GUI)部分的开发通常要经过系统分析师,美工或GUI设计师,以及前段开发人员的多方参与。首先,系统分析师分析需求,生成设计文档;美工或GUI设计师根据设计文档,制作低保真或高保真GUI图。最后,前段开发人员根据设计好的GUI图,开发出相应的GUI代码。整个开发过程难免需要反复交流沟通以确定需求,开发过程复杂,沟通成本高。
后续,随着工程、项目的进展,产品通常会经历不断的版本更新迭代。即便在同一个版本的开发中也会有多次微调改动。现有技术是通过图像识别技术生成界面代码,即根据GUI图生成界面代码。因此,在生成界面代码的过程中,会出现误识别的情况,例如,将按钮控件(button)识别成图片控件(image),而且通过该方法仅能生成新的GUI图对应的代码的基本框架,前端开发人员还需要手动填写剩下的内容。
发明内容
本申请实施例提供界面代码生成方法及装置,可以根据旧GUI图对应的代码和新GUI图对应的代码,生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供一种界面代码生成方法,该方法包括:获取第一信息;其中,该第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息;根据该第一信息以及第二信息得到目标信息,其中,该第二信息包括第二DSL代码,以及该第二DSL代码包括的控件标识关联的文字信息,该目标信息包括目标DSL代码,以及该目标DSL代码包括的控件标识关联的文字信息;该第二DSL代码为第二GUI图对应的DSL代码,该第一GUI图为将该第二GUI图更新后的GUI图;根据该目标信息生成该第一GUI图的界面代码。其中,第一GUI图可以是版本更新后的新GUI图,第二GUI图可以是版本更新前的旧GUI图。
通过上述方法,界面代码生成装置可以根据旧GUI图对应的代码和新GUI图对应的代码,生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第一方面,在第一种可能的实现方式中,该第一DSL代码包括N个DSL代码段,该第二DSL代码包括K个DSL代码段,其中,N和K为正整数;对于第三信息和第四信息,该第三信息包括第一DSL代码段,以及该第一DSL代码段包括的控件标识关联的文字信息,该第一DSL代码段为该N个DSL代码段中任一个代码段,该第四信息包括第二DSL代码段,以及该第二DSL代码段包括的控件标识关联的文字信息,该第二DSL代码段为该K个DSL代码段中,与该第一DSL代码段相似度最高的DSL代码,该第二DSL代码段包括的控件标识关联的文字信息是该K个DSL代码段包括的控件标识关联的文字信息中,与该第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息,根据该第三信息以及该第四信息得到第一目标信息,包括:根据第一字符串和第二字符串的相似度确定该第三信息与该第四信息之间的相似度,其中,该第一字符串包括该第一DSL代码段包括的字符串以及该第一DSL代码段包括的控件标识关联的文字信息包括的字符串,该第二字符串包括该第二DSL代码段包括的字符串以及该第二DSL代码段包括的控件标识关联的文字信息包括的字符串;若该第三信息与该第四信息之间的相似度大于或等于第一阈值,则将该第四信息作为该第一目标信息。基于此方案,界面代码生成装置在第三信息与第四信息的相似度大于或等于第一阈值时,复用旧GUI图对应的DSL代码包括的DSL代码段,可以避免在生成新GUI图对应的界面代码时出现误识别的情况,因而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,若该第三信息与该第四信息之间的相似度小于该第一阈值,计算第一关联概率,所述第一关联概率是所述第一DSL代码段包括的控件标识与所述第一DSL代码段包括的控件标识关联的文字信息间的关联概率;若所述第一关联概率大于或等于第二阈值,则将所述第三信息作为所述第一目标信息;若所述第一关联概率小于所述第二阈值,则对所述第一DSL代码段包括的控件标识进行更新,将所述更新后的第三信息作为所述第一目标信息,所述更新后的第三信息包括更新后的控件标识。基于此方案,界面代码生成装置在第三信息与第四信息的相似度小于第一阈值时,判断新GUI图对应的DSL代码包括的代码段中的控件标识生成的是否正确,进而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,对于第一控件标识,所述第一控件标识为所述第一DSL代码段中的任一控件标识,所述对所述第一控件标识进行更新,包括:计算第二关联概率,所述第二关联概率是所述第一控件标识关联的文字信息以及所述第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率;向用户发送第一提示信息,其中,所述第一提示信息包括第二关联概率较高的前M个预设控件标识、所述第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及所述第一控件标识对应的文字信息,所述M为正整数;接收所述用户发送的第一确认信息,其中,所述第一确认信息用于指示第二控件标识,所述第二控件标识为所述用户从所述前M个预设控件标识以及所述第一控件标识中选择出的控件标识;根据所述第一确认消息,将所述第一控件标识更新为所述第二控件标识。基于此方案,界面代码生成装置在界面代码生成装置在第三信息与第四信息的相似度小于第一阈值,且判断新GUI图对应的DSL代码包括的代码段中的控件标识生成的有可能是错误的时,可以根据用户的指示确定正确的控件标识,进而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算第二关联概率,包括:将第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;查询所述预设控件标识与所述一个或者多个分词的关联概率;根据所述预设控件标识与所述一个或者多个分词的关联概率,计算所述第二关联概率。基于此方案,界面代码生成装置可以通过将第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词,来计算第一控件标识与该一个或者多个分词的关联概率,以及预设控件标识与该一个或多个分词的关联概率,进而判断新GUI图对应的DSL代码包括的DSL代码段中的控件标识生成的是否正确,从而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,所述将所述第四信息作为所述第一目标信息,包括:向用户发送第二提示信息,其中,所述第二提示信息包括所述第三信息与所述第四信息中不相同的信息以及图像信息,所述图像信息包括所述不相同的信息在所述第一GUI图中的对应区域的图像;接收所述用户发送的第二确认信息,所述第二确认信息用于指示将所述第四信息作为所述第一目标信息;根据所述第二确认信息,将所述第四信息作为所述第一目标信息。基于此方案,界面代码生成装置在第三信息与第四信息的相似度大于或等于第一阈值时,通过用户指示是否复用旧GUI图对应的DSL代码包括的DSL代码段,可以避免在生成新GUI图对应的界面代码时出现误识别的情况,因而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
第二方面,本申请实施例提供一种界面代码生成方法,该方法包括:获取第一信息;其中,该第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息;根据该第一信息以及第二信息得到目标信息;该第二信息包括第二DSL代码,以及该第二DSL代码包括的控件标识关联的文字信息,该目标信息包括目标DSL代码,以及该目标DSL代码包括的控件标识关联的文字信息;该第二DSL代码为第二GUI图对应的DSL代码,该第一GUI图为将该第二GUI图更新后的GUI图;根据该目标信息生成该第一GUI图的界面代码。基于此方案,界面代码生成装置可以根据旧GUI图对应的代码和新GUI图对应的代码,生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第二方面,在第一种可能的实现方式中,该根据第一信息以及第二信息得到目标信息,包括:根据第三字符串和第四字符串的相似度确定该第一信息与该第二信息之间的相似度,其中,该第三字符串包括该第一DSL代码包括的字符串以及该第一DSL代码包括的控件标识关联的文字信息包括的字符串,该第四字符串包括该第二DSL代码包括的字符串以及该第二DSL代码包括的控件标识关联的文字信息包括的字符串;若该第一信息与该第二信息之间的相似度大于或等于第三阈值,则将该第二信息作为该目标信息。基于此方案,界面代码生成装置在第一信息与第二信息之间的相似度大于等于第三阈值时,复用旧GUI图对应的DSL代码,可以避免在生成新GUI图对应的界面代码时出现误识别的情况,因而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,若该第一信息与该第二信息之间的相似度小于该第三阈值,则获取该第一DSL代码中的定制点DSL代码段,该第二DSL代码中不存在与该定制点DSL代码段相同的的代码段,该定制点DSL代码段包括至少一个控件标识;计算第三关联概率,该第三关联概率是该定制点DSL代码段包括的控件标识与该定制点DSL代码段包括的控件标识关联的文字信息间的关联概率;若该第三关联概率大于或等于第四阈值,则将该第一信息作为该目标信息;若该第三关联概率小于该第四阈值,则对该定制点DSL代码段包括的控件标识进行更新,将更新后的第一信息作为该目标信息,该更新后的第一信息包括更新后的控件标识。基于此方案,界面代码生成装置在第一信息与第二信息之间的相似度小于第三阈值时,判断新GUI图对应的DSL代码包括的定制点DSL代码段包括的控件标识生成的是否正确,进而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,对于第三控件标识,该第三控件标识为该定制点DSL代码段中的任一控件标识,该对该第三控件标识进行更新,包括:计算第四关联概率,该第四关联概率是该第三控件标识关联的文字信息以及该第三控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率;向用户发送第三提示信息,其中,该第三提示信息包括该第四关联概率较高的前M个预设控件标识、该第三控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息以及该第三控件标识对应的文字信息,该M为正整数;接收该用户发送的第三确认信息,其中,该第三确认信息用于指示第四控件标识,该第四控件标识为该用户从该前M个预设控件标识以及第三控件标识中选择出的控件标识;根据该第三确认消息,将该第三控件标识更新为该第四控件标识。基于此方案,界面代码生成装置在第一信息与第二信息之间的相似度小于第三阈值,且判断新GUI图对应的DSL代码包括的定制点DSL代码段中的控件标识生成的有可能是错误的时,可以根据用户的指示确定正确的控件标识,进而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,该计算该第四关联概率,包括:将该第三控件标识关联的文字信息以及该第三控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;查询该预设控件标识与该一个或者多个分词的关联概率;根据该预设控件标识与该一个或者多个分词的关联概率,计算该第四关联概率。基于此方案,界面代码生成装置可以通过将第三控件标识关联的文字信息以及该第三控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词,来计算第三控件标识与该一个或者多个分词的关联概率,以及预设控件标识与该一个或多个分词的关联概率,进而判断新GUI图对应的DSL代码包括的定制点DSL代码段中的控件标识生成的是否正确,从而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
结合第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,该将该第二信息作为该目标信息,包括:向用户发送第四提示信息,其中,该第四提示信息包括该第一信息与该第二信息中不相同的信息以及图像信息,该图像信息包括该不相同的信息在该第一GUI图中的对应区域的图像;接收该用户发送的第四确认信息,该第四确认信息用于指示将该第二信息作为该目标信息;根据该第四确认信息,将该第二信息作为该目标信息。基于此方案,界面代码生成装置在第一信息和第二信息的相似度大于或等于第一阈值时,通过用户指示是否复用旧GUI图对应的DSL代码,可以避免在生成新GUI图对应的界面代码时出现误识别的情况,因而可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
第三方面,本申请实施例提供了一种界面代码生成装置,该界面代码生成装置包括:获取模块、处理模块和生成模块;该获取模块,用于获取第一信息;其中,该第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息;该处理模块,用于根据该第一信息以及第二信息得到目标信息,其中,该第二信息包括第二DSL代码,以及该第二DSL代码包括的控件标识关联的文字信息,该目标信息包括目标DSL代码,以及该目标DSL代码包括的控件标识关联的文字信息;该第二DSL代码为第二GUI图对应的DSL代码,该第一GUI图为将该第二GUI图更新后的GUI图;该生成模块,用于根据该目标信息生成该第一GUI图的界面代码。
结合第三方面,在第一种可能的实现方式中,该装置还包括:确定模块;该第一DSL代码包括N个DSL代码段,该第二DSL代码包括K个DSL代码段,其中,N和K为正整数;对于第三信息和第四信息,该第三信息包括第一DSL代码段,以及该第一DSL代码段包括的控件标识关联的文字信息,该第一DSL代码段为该N个DSL代码段中任一个代码段,该第四信息包括第二DSL代码段,以及该第二DSL代码段包括的控件标识关联的文字信息,该第二DSL代码段为该K个DSL代码段中,与该第一DSL代码段相似度最高的DSL代码,该第二DSL代码段包括的控件标识关联的文字信息是该K个DSL代码段包括的控件标识关联的文字信息中,与该第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息;该确定模块,用于根据第一字符串和第二字符串的相似度确定该第三信息与该第四信息之间的相似度,其中,该第一字符串包括该第一DSL代码段包括的字符串以及该第一DSL代码段包括的控件标识关联的文字信息包括的字符串,该第二字符串包括该第二DSL代码段包括的字符串以及该第二DSL代码段包括的控件标识关联的文字信息包括的字符串;该处理模块,还用于若该第三信息与该第四信息之间的相似度大于或等于第一阈值,将该第四信息作为该第一目标信息。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括:计算模块;该计算模块,用于若该第三信息与该第四信息之间的相似度小于该第一阈值,计算第一关联概率,该第一关联概率是该第一DSL代码段包括的控件标识与该第一DSL代码段包括的控件标识关联的文字信息间的关联概率;该处理模块,还用于若该第一关联概率大于或等于第二阈值,则将该第三信息作为该第一目标信息;该处理模块,还用于若该第一关联概率小于该第二阈值,则对该第一DSL代码段包括的控件标识进行更新,将该更新后的第三信息作为该第一目标信息,该更新后的第三信息包括更新后的控件标识。
结合三方面的第二种可能的实现方式,在第三种可能的实现方式中,该装置还包括:发送模块、接收模块和更新模块;该计算模块,还用于计算第二关联概率,该第二关联概率是第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率,该第一控件标识为该第一DSL代码段中的任一控件标识;该发送模块,用于向用户发送第一提示信息,其中,该第一提示信息包括第二关联概率较高的前M个预设控件标识、该第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及该第一控件标识对应的文字信息,该M为正整数;该接收模块,用于接收该用户发送的第一确认信息,其中,该第一确认信息用于指示第二控件标识,该第二控件标识为该用户从该前M个预设控件标识以及该第一控件标识中选择出的控件标识;该更新模块,用于根据该第一确认消息,将该第一控件标识更新为该第二控件标识。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,该装置还包括:分词模块和查询模块;该分词模块,用于将第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;该查询模块,用于查询该预设控件标识与该一个或者多个分词的关联概率;该计算模块,还用于根据该预设控件标识与该一个或者多个分词的关联概率,计算该第二关联概率。
结合第三方面的第一种可能的实现方式,第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,该发送模块,还用于向用户发送第二提示信息,其中,该第二提示信息包括该第三信息与该第四信息中不相同的信息以及图像信息,该图像信息包括该不相同的信息在该第一GUI图中的对应区域的图像;该接收模块,还用于接收该用户发送的第二确认信息,该第二确认信息用于指示将该第四信息作为该第一目标信息;该处理模块,还用于根据该第二确认信息,将该第四信息作为该第一目标信息。
第四方面,本申请实施例提供了一种界面代码生成装置,该界面代码生成装置包括:获取模块、处理模块和生成模块;该获取模块,用于获取第一信息;其中,该第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息;该处理模块,用于根据该第一信息以及第二信息得到目标信息,其中,该第二信息包括第二DSL代码,以及该第二DSL代码包括的控件标识关联的文字信息,该目标信息包括目标DSL代码,以及该目标DSL代码包括的控件标识关联的文字信息;该第二DSL代码为第二GUI图对应的DSL代码,该第一GUI图为将该第二GUI图更新后的GUI图;该生成模块,用于根据该目标信息生成该第一GUI图的界面代码。
结合第四方面,在第一种可能的实现方式中,该装置还包括:确定模块;该确定模块,用于根据第三字符串和第四字符串的相似度确定该第一信息与该第二信息之间的相似度,其中,该第三字符串包括该第一DSL代码包括的字符串以及该第一DSL代码包括的控件标识关联的文字信息包括的字符串,该第四字符串包括该第二DSL代码包括的字符串以及该第二DSL代码包括的控件标识关联的文字信息包括的字符串;该处理模块,还用于若该第一信息与该第二信息之间的相似度大于或等于第三阈值,则将该第二信息作为该目标信息。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括:计算模块;该获取模块,还用于若该第一信息与该第二信息之间的相似度小于该第三阈值,则获取该第一DSL代码中的定制点DSL代码段,该第二DSL代码中不存在与该定制点DSL代码段相同的的代码段,该定制点DSL代码段包括至少一个控件标识;该计算模块,用于计算第三关联概率,该第三关联概率是该定制点DSL代码段包括的控件标识与该定制点DSL代码段包括的控件标识关联的文字信息间的关联概率;该处理模块,还用于若该第三关联概率大于或等于第四阈值,则将该第一信息作为该目标信息;该处理模块,还用于若该第三关联概率小于该第四阈值,则对该定制点DSL代码段包括的控件标识进行更新,将更新后的第一信息作为该目标信息,该更新后的第一信息包括更新后的控件标识。
结合四方面的第二种可能的实现方式,在第三种可能的实现方式中,该装置还包括:发送模块、接收模块和更新模块;该计算模块,还用于计算第四关联概率,该第四关联概率是该第三控件标识关联的文字信息以及该第三控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率,该第三控件标识为该定制点DSL代码段中的任一控件标识;该发送模块,用于向用户发送第三提示信息,其中,该第三提示信息包括该第四关联概率较高的前M个预设控件标识、该第三控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息以及该第三控件标识对应的文字信息,该M为正整数;该接收模块,用于接收该用户发送的第三确认信息,其中,该第三确认信息用于指示第四控件标识,该第四控件标识为该用户从该前M个预设控件标识以及第三控件标识中选择出的控件标识;该更新模块,用于根据该第三确认消息,将该第三控件标识更新为该第四控件标识。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,该装置还包括:分词模块和查询模块;该分词模块,用于将该第三控件标识关联的文字信息以及该第三控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;该查询模块,用于查询该预设控件标识与该一个或者多个分词的关联概率;该计算模块,还用于根据该预设控件标识与该一个或者多个分词的关联概率,计算该第四关联概率。
结合第四方面的第一种可能的实现方式,第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,该发送模块,还用于向用户发送第四提示信息,其中,该第四提示信息包括该第一信息与该第二信息中不相同的信息以及图像信息,该图像信息包括该不相同的信息在该第一GUI图中的对应区域的图像;该接收模块,还用于接收该用户发送的第四确认信息,该第四确认信息用于指示将该第二信息作为该目标信息;该处理模块,还用于根据该第四确认信息,将该第二信息作为该目标信息。
第五方面,本申请提供了一种界面代码生成装置,该界面代码生成装置可以包括:至少一个处理器,涉及的程序指令在该至少一个处理器中执行,以实现根据第一方面的方法及其任一设计中的界面代码生成装置的功能。可选的,该界面代码生成装置还可以包括至少一个存储器,该存储器存储有涉及的程序指令。该界面代码生成装置可以是第一方面的方法及其任一设计中的界面代码生成装置。
第六方面,本申请提供了一种界面代码生成装置,该界面代码生成装置可以包括:至少一个处理器,涉及的程序指令在该至少一个处理器中执行,以实现根据第二方面的方法及其任一设计中的界面代码生成装置的功能。可选的,该界面代码生成装置还可以包括至少一个存储器,该存储器存储有涉及的程序指令。该界面代码生成装置可以是第二方面的方法及其任一设计中的界面代码生成装置。
第七方面,本申请提供了一种系统芯片,该系统芯片可以应用在界面代码生成装置中,该系统芯片包括:至少一个处理器,涉及的程序指令在该至少一个处理器中执行,以实现根据第一方面的方法及其任一设计中的界面代码生成装置的功能。可选的,该系统芯片还可以包括至少一个存储器,该存储器存储有涉及的程序指令。
第八方面,本申请提供了一种系统芯片,该系统芯片可以应用在界面代码生成装置中,该系统芯片包括:至少一个处理器,涉及的程序指令在该至少一个处理器中执行,以实现根据第二方面的方法及其任一设计中的界面代码生成装置的功能。可选的,该系统芯片还可以包括至少一个存储器,该存储器存储有涉及的程序指令。
第九方面,本申请提供了一种计算机存储介质,该计算机存储介质可以应用在界面代码生成装置中,该计算机可读存储介质中存储有程序指令,涉及的程序指令运行时,以实现根据第一方面的方法及其任一设计中的界面代码生成装置的功能,或者以实现根据第二方面的方法及其任一设计中的界面代码生成装置的功能。
第十方面,本申请提供了一种计算机程序产品,该计算机程序产品包含程序指令,涉及的程序指令被执行时,以实现根据第一方面的方法及其任一设计中界面代码生成装置的功能,或者以实现根据第二方面的方法及其任一设计中的界面代码生成装置的功能。
可以理解的,上述提供的任一种装置、系统芯片、计算机存储介质或计算机程序产品等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的界面代码生成系统架构示意图;
图2为本申请实施例提供的硬件设备的硬件结构示意图;
图3为本申请实施例提供的界面代码生成方法的流程示意图一;
图4为本申请实施例提供的第二GUI图;
图5为本申请实施例提供的训练模型示意图;
图6为本申请实施例提供的第一GUI图;
图7为本申请实施例提供的第一GUI图中贡献最大的区域示意图;
图8为本申请实施例提供的界面代码生成方法的流程示意图二;
图9为本申请实施例提供的界面代码生成方法的流程示意图三;
图10为本申请实施例提供的界面代码生成方法的流程示意图四;
图11为本申请实施例提供的客户端的结构示意图一;
图12为本申请实施例提供的客户端的结构示意图二;
图13为本申请实施例提供的客户端的结构示意图三;
图14为本申请实施例提供的客户端的结构示意图四;
图15为本申请实施例提供的客户端的结构示意图五。
具体实施方式
如图1所示,为本申请实施例提供的界面代码生成系统100的架构示意图。图1中,界面代码生成系统100包括服务器101、客户端103以及网络102。
其中,服务器101或者客户端103存储有一个或多个旧GUI图对应的工程代码,若需要对该一个或多个GUI图中的部分或全部GUI对应的工程代码进行更新时,服务器101或者客户端103可以通过执行下述图3所示的界面代码生成方法,来得到更新后的工程代码。
需要说明的是,服务器101或者客户端103可以独立执行下述图3所示的界面代码生成方法,或者,服务器101可以通过网络102与客户端103通信,二者共同执行附图3所示的界面代码生成方法。
应注意,图1所示的界面代码生成系统100仅用于举例,并非用于限制本申请的技术方案。本领域的技术人员应当明白,在具体实现过程中,界面代码生成系统100还可以包括其他设备,同时也可根据具体需要来确定服务器和客户端的数量。
可选的,本申请实施例图1中的各设备,例如服务器101或客户端103,可以是一个设备内的一个功能模块。可以理解的是,上述功能既可以是硬件设备中的元件,例如台式电脑中的芯片,也可以是在专用硬件上运行的软件功能。
例如,图1中的服务器101或客户端103均可以通过图2中的硬件设备200来实现。图2所示为可适用于本申请实施例的硬件设备的硬件结构示意图。该硬件设备200包括至少一个处理器201,通信线路202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路202可包括一通路,在上述组件之间传送信息,例如总线。
通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网接口,无线接入网接口(radio access network,RAN)等。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路202与处理器相连接。存储器也可以和处理器集成在一起。本申请实施例提供的存储器通常可以具有非易失性。其中,存储器203用于存储执行本申请方案所涉及的计算机执行指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本申请实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,硬件设备200可以包括多个处理器,例如图2中的处理器201和处理器207。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,硬件设备200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的硬件设备200可以是一个通用设备或者是一个专用设备。在具体实现中,硬件设备200可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digitalassistant,PDA)、平板电脑、嵌入式设备或有图2中类似结构的设备。本申请实施例不限定硬件设备200的类型。
下面将结合图1和图2,并且以客户端为例对本申请实施例提供的界面代码生成方法进行具体阐述。
可以理解的,本申请实施例中,客户端可以执行本申请实施例中的部分或全部步骤,这些步骤仅是示例,本申请实施例还可以执行其它步骤或者各种步骤的变形。此外,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部步骤。
当客户端中存储有一个或多个旧GUI图对应的工程代码,若需要对该一个或多个旧GUI图中的部分或全部GUI图对应的工程代码进行更新,客户端可以根据旧GUI图对应的领域特定语言(domain-specific language,DSL)代码、旧GUI图对应的DSL代码包括的控件标识关联的文字信息、更新后的GUI图对应的DSL代码、更新后的GUI图对应的DSL代码包括的控件标识关联的文字信息,生成更新后的GUI图对应的界面代码。
下面以第一GUI图、第二GUI图为例对本申请实施例提供的界面代码生成方法进行具体阐述。其中,第一GUI图为更新后的GUI图中的任一GUI图,第二GUI图为该第一GUI图对应的旧GUI图,即该第一GUI图更新前的存储于客户端的GUI图。
如图3所示,为本申请实施例提供的一种界面代码生成方法,该界面代码生成方法包括步骤301、步骤302和步骤303。
首先,客户端可以存储有第二信息,或者客户端可以获取第二信息。
其中,客户端可以是图1中所示的客户端103。第二信息可以包括第二DSL代码,以及第二DSL代码包括的控件标识关联的文字信息。
其中,第二DSL代码可以是第二GUI图对应的DSL代码。该第二DSL代码可以包括至少一个控件标识。控件标识可以用于标识控件(例如,按钮控件、图片控件等)。例如,按钮控件的控件标识可以是btn,图片控件的控件标识可以是img。
可选的,客户端获取第二信息,包括:客户端根据预设的DSL规则,获取第二DSL代码;客户端通过文字识别技术获取第二DSL代码包括的控件标识关联的文字信息。
一种可能的实现方式,客户端根据预设的DSL规则,从第二GUI图对应的界面代码中提取第二DSL代码。
例如,下述代码为图4所示的第二GUI图对应的界面代码。
客户端可以根据预设的DSL规则,从上述界面代码中提取下述第二DSL代码。需要说明的是,该预设的DSL规则可以根据用户的需求进行设置,本申请实施例不进行具体限定。
一种可能的实现方式,客户端先依次截取出第二DSL代码中每个控件标识对应的图像区域,再通过光学字符识别(optical character recognition,OCR)技术识别每个图像区域中的文字信息,进而获取第二DSL代码包括的控件标识关联的文字信息,并将该第二DSL代码包括的控件标识关联的文字信息填入第二DSL代码中对应的控件标识后面。
例如,下述DSL代码为填入文字信息后的第二DSL代码。
另一种可能的实现方式,客户端先依次截取出第二DSL代码中每个控件标识对应的图像区域,再通过OCR技术识别每个图像区域中的文字信息,进而获取第二DSL代码包括的控件标识关联的文字信息,并生成控件标识与控件标识关联的文字信息对应表。
如表1所示,为图4对应的第二DSL代码包括的控件标识与该控件标识关联的文字信息对应表。
表1
控件标识 | 控件标识关联的文字信息 |
text | 荣耀经典耳机USB Type-C版(白色) |
text | 新品开售!可直接适配荣耀Note10,HUAWEI P20系列,Mate10Pro手机 |
text | 华为价: |
text | ¥99.00 |
text | 手机购买 |
text | 购买数量 |
btn-subtr | - |
text-field | 1 |
btn-add | + |
btn | 加入购物车 |
btn | 立即下单 |
步骤301、客户端获取第一信息。
其中,第一信息可以包括第一GUI图对应的第一DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息。该第一DSL代码可以包括至少一个控件标识。
一种可能的实现方式,客户端根据第二GUI图与第二DSL代码的对应关系获取第一DSL代码。
客户端可以先通过图5所示的训练模型500学习第二GUI图与第二DSL代码的对应关系,再通过图5所示的训练模型500获取第一DSL代码。
其中,该训练模型包括长短期记忆网络(long short-term memory,LSTM)501、卷积神经网络(convolutional neural networks,CNN)502、LSTM 503以及归一化指数softmax函数模块504。
首先,客户端将第二DSL代码输入到LSTM 501,可以学习第二DSL代码中控件之间的规律。将第二GUI图输入到CNN 502,可以学习第二GUI图中控件对应的图像的特征。将LSTM 501的输出和CNN 502的输出串联后,输入到LSTM 503,再将LSTM 503的输出输入到softmax函数模块504,可以获取第二GUI图与第二DSL代码的对应关系。
后续,客户端将空代码文本输入到LSTM 501,再将第一GUI图输入到CNN 502,最后将LSTM 501的输出和CNN 502的输出串联后,输入到LSTM 503,再将LSTM 503的输出输入到softmax函数模块504,可以获取第一DSL代码。
示例性的,将图4所示的第二GUI图和第二DSL代码输入图5所示的训练模型500,可以学习第二GUI图与第二DSL代码的对应关系,再将空代码文本和图6所示的第一GUI图输入到如图5所示的训练模型500后,可以获取如下第一DSL代码。
可选的,客户端在获取第一DSL代码的过程中,客户端标记并存储在生成每个控件标识时,第一GUI图中贡献最大的区域。
示例性的,客户端可以通过图像翻译与自然语言学习中的注意力机制(attentionmechanism)标记在生成每个控件标识时,第一GUI图中贡献最大的区域,并存储该区域对应的图像。
如图7所示,区域701是加入购物车按钮控件和立即下单按钮控件所在标签层对应的区域,区域702是客户端在生成加入购物车按钮控件时第一GUI图中贡献最大的区域,区域703是客户端在生成立即下单按钮控件时第一GUI图中贡献最大的区域。
一种可能的实现方式,客户端通过文字识别技术获取第一DSL代码包括的控件标识关联的文字信息。
示例1,客户端先依次截取出第一DSL代码中每个控件标识对应的图像区域,再通过OCR技术识别每个图像区域中的文字信息,进而获取第一DSL代码包括的控件标识关联的文字信息,并将该第一DSL代码包括的控件标识关联的文字信息填入第一DSL代码中对应的控件标识后面。
例如,下述DSL代码为填入文字信息后的第一DSL代码。
另一种可能的实现方式,客户端先依次截取出第一DSL代码中每个控件标识对应的图像区域,再通过OCR技术识别每个图像区域中的文字信息,进而获取第一DSL代码包括的控件标识关联的文字信息,并生成控件标识与控件标识关联的文字信息对应表。
如表2所示,为图6对应的第一DSL代码包括的控件标识与该控件标识关联的文字信息对应表。
表2
步骤302、客户端根据第一信息以及第二信息得到目标信息。
其中,目标信息包括目标DSL代码,以及目标DSL代码包括的控件标识关联的文字信息。该目标DSL代码包括至少一个控件标识。如:目标信息可以包括第一信息与第二信息相同的部分,以及纠错部分等等。如此,客户端可以复用旧代码,以减少图像识别过程中产生的错误;客户端还可以纠错新增的定制点的代码,以提高生成界面代码的准确性。
一种示例中,客户端根据第一信息以及第二信息得到目标信息可以包括:根据第一字符串和第二字符串的相似度确定所述第三信息与所述第四信息之间的相似度;若所述第三信息与所述第四信息之间的相似度大于或等于第一阈值,则将所述第四信息作为所述第一目标信息;若所述第三信息与所述第四信息之间的相似度小于所述第一阈值,计算第一关联概率;若所述第一关联概率大于或等于第二阈值,则将所述第三信息作为所述第一目标信息;若所述第一关联概率小于所述第二阈值,则对所述第一DSL代码段包括的控件标识进行更新,将所述更新后的第三信息作为所述第一目标信息,最后将第一目标信息加入目标信息中。具体的,该过程可以参照图8中步骤801-步骤807所示。
又一种示例中,客户端根据第一信息以及第二信息得到目标信息可以包括:根据第三字符串和第四字符串的相似度确定所述第一信息与所述第二信息之间的相似度;若所述第一信息与所述第二信息之间的相似度大于或等于第三阈值;若所述第一信息与所述第二信息之间的相似度小于所述第三阈值,则获取所述第一DSL代码中的定制点DSL代码段;计算第三关联概率;若所述第三关联概率大于或等于第四阈值,则将所述第一信息作为所述目标信息;若所述第三关联概率小于所述第四阈值,则对所述定制点DSL代码段包括的控件标识进行更新,将更新后的第一信息作为所述目标信息。具体的,该过程可参照图9中步骤901-步骤908所示。
步骤303、客户端根据目标信息生成第一GUI图的界面代码。
可选的,客户端中的编译器根据目标信息生成第一GUI图的界面代码。
基于图3所示方法,客户端可以通过获取包括第一GUI图对应的DSL代码及文字信息的第一信息和包括第二GUI图对应的DSL代码及文字信息的第二信息,并根据第一信息和第二信息得到目标信息,再根据目标信息生成第一GUI图的界面代码,可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
下面结合图8所示,对一种示例中的具体过程进行描述。
图8为本申请实施例提供的一种界面代码生成方法,包括:步骤801-步骤807。
步骤801、客户端获取第一信息。
步骤801的具体过程可以参考步骤301。
可选的,客户端将第一信息按照一定的规则分成N个部分,将第二信息按照相同的规则分成K个部分,再根据该N个部分和该K个部分得到目标信息,其中,N和K为正整数。
可选的,第一DSL代码包括N个DSL代码段,第二DSL代码包括K个DSL代码段。
例如,客户端按照预设的分段规则将第一DSL代码分为N个DSL代码段,并按照该预设的分段规则将第二DSL代码分为K个DSL代码段。
例如:客户端可以以row标签为单位,将图6所示的第一GUI图对应的第一DSL代码分为如下5个代码段,每个代码段包括的控件标识关联的文字信息如表3-表7所示。
row{stack{text,text}}
row{text,text,text,icon-qr}
row{text stack{img,text}}
row{text,btn-subtr,text-field,btn-add}
row{stack{text row{btn,img}}}
表3
控件标识 | 控件标识关联的文字信息 |
text | 荣耀经典耳机USB Type-C版(白色) |
text | 新品开售!可直接适配荣耀Note10,HUAWEI P20系列,Mate10Pro手机 |
表4
控件标识 | 控件标识关联的文字信息 |
text | 华为价: |
text | ¥99.00 |
text | 手机购买 |
表5
控件标识 | 控件标识关联的文字信息 |
text | 选择颜色 |
text | 白色 |
表6
控件标识 | 控件标识关联的文字信息 |
text | 购买数量 |
btn-subtr | - |
text-field | 1 |
btn-add | + |
表7
控件标识 | 控件标识关联的文字信息 |
btn | 加入购物车 |
img | 立即下单 |
例如:客户端可以以row标签为单位,将图4所示的第二GUI图对应的第二DSL代码分为如下4个代码段,每个代码段包括的控件标识关联的文字信息如表8-表11所示。
row{stack{text,text}}
row{text,text,text,icon-qr}
row{text,btn-subtr,text-field,btn-add}
row{stack{text row{btn,btn}}}
表8
控件标识 | 控件标识关联的文字信息 |
text | 荣耀经典耳机USB Type-C版(白色) |
text | 新品开售!可直接适配荣耀Note10,HUAWEI P20系列,Mate10Pro手机 |
表9
控件标识 | 控件标识关联的文字信息 |
text | 华为价: |
text | ¥99.00 |
text | 手机购买 |
表10
控件标识 | 控件标识关联的文字信息 |
text | 购买数量 |
btn-subtr | - |
text-field | 1 |
btn-add | + |
表11
控件标识 | 控件标识关联的文字信息 |
btn | 加入购物车 |
btn | 立即下单 |
可选的,对于第三信息和第四信息,第三信息包括第一DSL代码段,以及第一DSL代码段包括的控件标识关联的文字信息,第一DSL代码段为该N个DSL代码段中任一个代码段,第四信息包括第二DSL代码段,以及第二DSL代码段包括的控件标识关联的文字信息,第二DSL代码段为该K个DSL代码段中,与第一DSL代码段相似度最高的DSL代码,第二DSL代码段包括的控件标识关联的文字信息是K个DSL代码段包括的控件标识关联的文字信息中,与第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息,如图8所示,客户端根据第三信息以及第四信息得到第一目标信息,包括步骤802-步骤806。
步骤802、客户端根据第一字符串和第二字符串的相似度确定第三信息与第四信息之间的相似度。
其中,第一字符串可以包括第一DSL代码段包括的字符串以及第一DSL代码段包括的控件标识关联的文字信息包括的字符串,第二字符串可以包括第二DSL代码段包括的字符串以及第二DSL代码段包括的控件标识关联的文字信息包括的字符串。
若第一DSL代码段为图6所示的第一GUI图对应的第一DSL代码包括的5个DSL代码段中的最后一个DSL代码段,即row{stack{text row{btn,img}}},第一DSL代码段包括的控件标识关联的文字信息为:btn:加入购物车,img:立即下单。在图4所示的第二GUI图对应的第二DSL代码包括的4个DSL代码段中,与该第一DSL代码段相似度最高的DSL代码段为row{stack{text row{btn,btn}}},且该DSL代码段包括的控件标识关联的文字信息是该4个DSL代码段包括的控件标识关联的文字信息中,与第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息,因此,第二DSL代码段为row{stack{text row{btn,btn}}},第二DSL代码段包括的控件标识关联的文字信息为:btn:加入购物车,btn:立即下单。
需要说明的是,为了减少确定第一字符串和第二字符串相似度的过程中,因控件标识的字符长度不等而影响该相似度的准确性,客户端可以将DSL代码段包括的控件标识用字符长度相同的不同代号替代。
例如:将btn用A替代,将img用B替代。替代后,上述第一DSL代码段为row{stack{text row{A,B}}},第一DSL代码段包括的控件标识关联的文字信息为:A:加入购物车,B:立即下单。上述第二DSL代码段为row{stack{text row{A,A}}},第二DSL代码段包括的控件标识关联的文字信息为:A:加入购物车,A:立即下单。因此,第一字符串为row{stack{textrow{A:加入购物车,B:立即下单}}},第二字符串为row{stack{text row{A:加入购物车,A:立即下单}}}。
可选的,客户端利用文本对比技术,获取第一字符串和第二字符串的相似度,将第一字符串与第二字符串的相似度作为第三信息和第四信息的相似度。
例如:上述例子中的第一字符串与第二字符串仅有一个字符不一样(第一字符串中最后一个控件标识的代号是B,第二字符串中最后一个控件标识的代号是A),客户端可以通过Needleman-Wunsch算法,计算第一字符串和第二字符串的相似度为97.2%,即第三信息和第四信息的相似度为97.2%。
步骤803、若第三信息与第四信息之间的相似度大于或等于第一阈值,则将第四信息作为第一目标信息。
例如:若第一阈值为97%,上述例子中第三信息和第四信息的相似度为97.2%,因此,将第四信息作为第一目标信息。即客户端认为在生成第一DSL代码时出现了误识别,将按钮控件识别成了图片控件。此时将第四信息作为第一目标信息可以提高生成代码的准确率。
可选的,客户端还可以根据用户指示确定将第四信息作为第一目标信息。具体过程包括步骤803a-步骤803c。
步骤803a、客户端向用户发送第二提示信息。
其中,第二提示信息包括第三信息与第四信息中不相同的信息以及图像信息,图像信息包括该不相同的信息在第一GUI图中的对应区域的图像。
例如,客户端可以向用户显示图8所示的界面,用户若点击是,客户端可以将第四信息作为第一目标信息。
步骤803b、客户端接收用户发送的第二确认信息。
其中,该第二确认信息用于指示将第四信息作为第一目标信息。
步骤803c、客户端根据第二确认信息,将第四信息作为第一目标信息。
可选的,客户端还可以根据用户指示确定将第三信息作为第一目标信息。具体过程包括步骤803d-步骤803f。
步骤803d、客户端向用户发送第二提示信息。
其中,第二提示信息包括第三信息与第四信息中不相同的信息以及图像信息,图像信息包括该不相同的信息在第一GUI图中的对应区域的图像。
例如,客户端可以向用户显示图8所示的界面,用户若点击否,客户端可以将第三信息作为第一目标信息。
步骤803e、客户端接收用户发送的第五确认信息。
其中,该第五确认信息用于指示将第三信息作为第一目标信息。
步骤803f、客户端根据第五确认信息,将第三信息作为第一目标信息。
步骤804、若第三信息与第四信息之间的相似度小于第一阈值,客户端计算第一关联概率。
其中,第一关联概率是第一DSL代码段包括的控件标识与第一DSL代码段包括的控件标识关联的文字信息间的关联概率。
若第一DSL代码段为图6所示的第一GUI图对应的第一DSL代码包括的5个DSL代码段中的第三个DSL代码段,即row{text stack{img,text}},第一DSL代码段包括的控件标识关联的文字信息为:text:选择颜色,text:白色。在图4所示的第二GUI图对应的第二DSL代码包括的4个DSL代码段中,与第一DSL代码段的相似度都不高,因此,第三信息和第四信息之间的相似度小于第一阈值(例如:97%)。
第一DSL代码段包括的控件标识有text和img,下面以img为例,介绍计算第一关联概率的具体过程。
可选的,若第一DSL代码包括的控件标识关联的文字信息是具体信息(例如:白色,棉等),客户端将该文字信息用该具体信息的上层信息代替(例如:颜色、面料等)。
第一DSL代码包括的控件标识关联的文字信息有选择颜色和白色。客户端可以先将白色用颜色代替,再将选择颜色和颜色进行分词,得到分词“选”、“择”、“颜”、“色”、“选择”、“择颜”、“颜色”、“选择颜”、“择颜色”和“选择颜色”,并查询到上述每个分词在预先统计的数据中与控件标识img的关联概率如表12所示。
表12
分词 | 选 | 择 | 颜 | 色 | 选择 | 择颜 | 颜色 | 选择颜 | 择颜色 | 选择颜色 |
关联概率 | 10% | 5% | 30% | 28% | 9% | 8% | 8% | 10% | 7% | 6% |
客户端可以根据下述公式计算第一关联概率P1。
其中,n为分词的个数,pi为第i个分词与控件标识的关联概率。
根据表12可以计算第一关联概率为100%-(1-10%)(1-5%)(1-30%)(1-28%)(1-9%)(1-8%)(1-8%)(1-10%)(1-7%)(1-6%)=73%。
步骤805、若第一关联概率大于或等于第二阈值,将第三信息作为第一目标信息。
例如,若第一关联概率大于或等于90%,将第三信息作为第一目标信息。
步骤806、若第一关联概率小于第二阈值,将第一DSL代码段包括的控件标识进行更新,将更新后的第三信息作为第一目标信息。
其中,更新后的第三信息可以包括更新后的控件标识。
可选的,对于第一控件标识,该第一控件标识为第一DSL代码段中的任一控件标识,对第一控件标识进行更新,包括步骤806a-步骤806d。
步骤806a、客户端计算第二关联概率。
其中,第二关联概率是第一控件标识关联的文字信息以及该第一控件标识附近的控件标识(例如,第一控件标识的上一层控件标识)关联的文字信息与预设控件标识之间的关联概率。
可选的,预设控件标识是数据库中与第一控件标识相似的控件标识。
若与img相似的控件标识有btn和slct-img,则img对应的预设控件标识是btn和slct-img。
上述例子中img对应的第一关联概率为73%,小于第二阈值,则客户端需要计算第一控件标识关联的文字信息以及第一控件标识附近的控件标识关联的文字信息与btn的关联概率,以及第一控件标识关联的文字信息以及第一控件标识附近的控件标识关联的文字信息与slct-img的关联概率。
可选的,客户端计算第二关联概率,包括:客户端将第一控件标识关联的文字信息以及第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;客户端查询预设控件标识与一个或者多个分词的关联概率;客户端根据预设控件标识与一个或者多个分词的关联概率,计算第二关联概率。
例如,img以及img附近的控件标识关联的文字信息有选择颜色和白色。客户端可以先将白色用颜色代替,再将选择颜色和颜色进行分词,得到分词“选”、“择”、“颜”、“色”、“选择”、“择颜”、“颜色”、“选择颜”、“择颜色”和“选择颜色”,并查询到上述每个分词在预先统计的数据中与控件标识btn的关联概率如表13所示,上述每个分词在预先统计的数据中与控件标识slct-img的关联概率如表14所示。
表13
分词 | 选 | 择 | 颜 | 色 | 选择 | 择颜 | 颜色 | 选择颜 | 择颜色 | 选择颜色 |
关联概率 | 10% | 5% | 30% | 28% | 9% | 8% | 8% | 9% | 6% | 6% |
表14
分词 | 选 | 择 | 颜 | 色 | 选择 | 择颜 | 颜色 | 选择颜 | 择颜色 | 选择颜色 |
关联概率 | 30% | 10% | 30% | 28% | 40% | 10% | 8% | 20% | 7% | 30% |
客户端可以根据下述公式计算第二关联概率P2。
其中,n为分词的个数,pi为第i个分词与控件标识的关联概率。
根据表13可以计算btn对应的第二关联概率为100%-(1-6%)(1-5%)(1-20%)(1-28%)(1-9%)(1-8%)(1-8%)(1-9%)(1-6%)(1-6%)=68%。
根据表14可以计算slct-img对应的第二关联概率为100%-(1-30%)(1-10%)(1-30%)(1-28%)(1-40%)(1-10%)(1-8%)(1-20%)(1-7%)(1-30%)=92%。
步骤806b、客户端向用户发送第一提示信息。
其中,第一提示信息包括第二关联概率较高的前M个预设控件标识、第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及第一控件标识对应的文字信息,M为正整数。
其中,前M个预设控件标识中任一个预设控件标识对应的文字信息可以包括该一个或多个分词中,对该任一个预设控件标识对应的第二关联概率贡献概率最大的分词。第一控件标识对应的文字信息可以包括该一个或多个分词中,对该第一控件标识对应的第二关联概率贡献概率最大的分词。
可选的,第一提示信息还可以包括第一GUI图中,第一控件标识对应的图像区域,以及第一DSL代码中,第一控件标识的位置信息。
例如,第一提示信息可以包括btn,btn对应的文字信息“颜”、“颜”的贡献概率30%、slct-img、slct-img对应的文字信息“选择”、“选择”的贡献概率“40%”、img、img对应的文字信息“颜”、“颜”的贡献概率30%、img在第一GUI图中对应的图像区域、img在第一DSL代码中的位置信息等。
步骤806c、客户端接收用户发送的第一确认信息。
其中,第一确认信息用于指示第二控件标识,第二控件标识为用户从前M个预设控件标识以及第一控件标识中选择出的控件标识。
步骤806d、客户端根据第一确认消息,将第一控件标识更新为第二控件标识。
若用户选择slct-img,则客户端将第一DSL代码段中的img更新为slct-img;若用户选择btn,则客户端将第一DSL代码段中的img更新为btn,若用户选择img,则客户端不更新第一DSL代码段。
若第一DSL代码段中还存在第一关联概率小于第二阈值的控件标识,执行步骤806;若第一DSL代码段中不存在第一关联概率小于第二阈值的控件标识,但第一DSL代码中存在未确定第三信息和第四信息之间的相似度的DSL代码段,执行步骤802;若第一DSL代码段中不存在第一关联概率小于第二阈值的控件标识,且第一DSL代码中不存在未确定第三信息和第四信息之间的相似度的DSL代码段,执行步骤807。
步骤807、客户端根据目标信息生成第一GUI图的界面代码。
可选的,客户端中的编译器根据目标信息生成第一GUI图的界面代码。
基于图8所示方法,客户端可以通过获取第一信息中的N个DSL代码段以及N个DSL代码段包括的控件标识关联的文字信息和第二信息中的K个DSL代码段以及K个DSL代码段包括的控件标识关联的文字信息,并根据N个DSL代码段中每个DSL代码段以及每个DSL代码段包括的控件标识关联的文字信息和K个DSL代码段中每个DSL代码段以及每个DSL代码段包括的控件标识关联的文字信息得到第一目标信息,再根据N个第一目标信息生成第一GUI图的界面代码,可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
在又一种示例中,客户端还可以直接根据第一信息和第二信息得到目标信息。
图9为本申请实施例提供的又一种界面代码生成方法,如图9所示,该方法可以包括步骤901-步骤908。
步骤901、客户端获取第一信息。
步骤901的具体过程可以参考步骤301。
步骤902、客户端根据第三字符串和第四字符串的相似度确定第一信息与第二信息之间的相似度。
其中,第三字符串包括第一DSL代码包括的字符串以及第一DSL代码包括的控件标识关联的文字信息包括的字符串,第四字符串包括第二DSL代码包括的字符串以及第二DSL代码包括的控件标识关联的文字信息包括的字符串。
步骤903、若第一信息与第二信息之间的相似度大于或等于第三阈值,则客户端将第二信息作为目标信息。
可选的,客户端还可以根据用户指示确定将第二信息作为目标信息。具体过程包括步骤903a-步骤903c。
步骤903a、客户端向用户发送第四提示信息。
其中,第四提示信息包括第一信息与第二信息中不相同的信息以及图像信息,图像信息包括不相同的信息在第一GUI图中的对应区域的图像。
步骤903b、客户端接收用户发送的第四确认信息。
第四确认信息用于指示将第二信息作为目标信息。
步骤903c、客户端根据第四确认信息,将第二信息作为目标信息。
可选的,客户端还可以根据用户指示确定将第二信息作为目标信息。具体过程包括步骤903d-步骤903f。
步骤903d、客户端向用户发送第四提示信息。
其中,第四提示信息包括第一信息与第二信息中不相同的信息以及图像信息,图像信息包括不相同的信息在第一GUI图中的对应区域的图像。
步骤903e、客户端接收用户发送的第六确认信息。
其中,该第六确认信息用于指示将第一信息作为目标信息。
步骤903f、客户端根据第六确认信息,将第一信息作为目标信息。
步骤904、若第一信息与第二信息之间的相似度小于第三阈值,则客户端获取第一DSL代码中的定制点DSL代码段。
其中,第二DSL代码中不存在与定制点DSL代码段相同的的代码段,定制点DSL代码段包括至少一个控件标识。
步骤905、客户端计算第三关联概率。
其中,第三关联概率是定制点DSL代码段包括的控件标识与定制点DSL代码段包括的控件标识关联的文字信息间的关联概率。
步骤906、若第三关联概率大于或等于第四阈值,则客户端将第一信息作为目标信息。
步骤907、若第三关联概率小于第四阈值,则客户端对定制点DSL代码段包括的控件标识进行更新,将更新后的第一信息作为目标信息。
其中,更新后的第一信息包括更新后的控件标识。
可选的,对于第三控件标识,第三控件标识为该定制点DSL代码段中的任一控件标识,对第三控件标识进行更新,包括步骤907a-步骤907d。
步骤907a、客户端计算第四关联概率。
其中,第四关联概率是第三控件标识关联的文字信息以及第三控件标识附近的控件标识(例如,第三控件标识的上一层控件标识)关联的文字信息与预设控件标识之间的关联概率。
可选的,预设控件标识是数据库中与第三控件标识相似的控件标识。
可选的,客户端计算第四关联概率,包括:客户端将第三控件标识关联的文字信息以及第三控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;客户端查询预设控件标识与一个或者多个分词的关联概率;客户端根据预设控件标识与一个或者多个分词的关联概率,计算第四关联概率。
步骤907b、客户端向用户发送第三提示信息。
其中,第三提示信息包括第四关联概率较高的前M个预设控件标识、第三控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息以及第三控件标识对应的文字信息,M为正整数。
其中,前M个预设控件标识中任一个预设控件标识对应的文字信息可以包括该一个或多个分词中,对该任一个预设控件标识对应的第四关联概率贡献概率最大的分词。第三控件标识对应的文字信息可以包括该一个或多个分词中,对该第三控件标识对应的第四关联概率贡献概率最大的分词。
可选的,第三提示信息还可以包括第一GUI图中,第三控件标识对应的图像区域,以及第一DSL代码中,第三控件标识的位置信息。
步骤907c、客户端接收用户发送的第三确认信息。
其中,第三确认信息用于指示第四控件标识,第四控件标识为用户从前M个预设控件标识以及第三控件标识中选择出的控件标识。
步骤907d、客户端根据第三确认消息,将第三控件标识更新为第四控件标识。
需要说明的是,步骤902-步骤907的具体过程可以参考步骤802-步骤806的具体过程,此处不再赘述。
步骤908、客户端根据目标信息生成第一GUI图的界面代码。
可选的,客户端中的编译器根据目标信息生成第一GUI图的界面代码。
基于图9所示方法,客户端可以通过获取包括第一GUI图对应的DSL代码及文字信息的第一信息和包括第二GUI图对应的DSL代码及文字信息的第二信息,若第一信息和第二信息之间的相似度大于或等于第三阈值,将第二信息作为目标信息,若第一信息和第二信息之间的相似度小于第三阈值,计算第三关联概率,若第三关联概率大于或等于第四阈值,将第一信息作为目标信息,若第三关联概率小于第四阈值,对定制点DSL代码段包括的控件标识进行更新,将更新后的第一信息作为目标信息,再根据目标信息生成第一GUI图的界面代码,可以生成更准确的界面代码,并且不需要用户手动填写内容,提高了用户体验。
当服务器中存储有一个或多个旧GUI图对应的工程代码,若需要对该一个或多个旧GUI图中的部分或全部GUI图对应的工程代码进行更新,服务器可以将旧GUI图对应的DSL代码以及旧GUI图对应的DSL代码包括的控件标识关联的文字信息发送给客户端,后续,客户端可以根据旧GUI图对应的DSL代码、旧GUI图对应的DSL代码包括的控件标识关联的文字信息、更新后的GUI图对应的DSL代码、更新后的GUI图对应的DSL代码包括的控件标识关联的文字信息,生成更新后的GUI图对应的界面代码。
如图10所示,为本申请实施例提供的一种界面代码生成方法,该界面代码生成方法是从客户端与服务器交互的角度进行介绍,该界面代码生成方法包括步骤1001-步骤1013。
首先,服务器可以存储有第二信息,或者服务器可以获取第二信息。
其中,服务器可以是图1中所示的服务器101。第二信息可以包括第二DSL代码,以及第二DSL代码包括的控件标识关联的文字信息。
其中,第二DSL代码可以是第二GUI图对应的DSL代码。该第二DSL代码可以包括至少一个控件标识。控件标识可以用于标识控件(例如,按钮控件、图片控件等)。例如,按钮控件的控件标识可以是btn,图片控件的控件标识可以是img。
步骤1001、客户端接收服务器发送的第二信息。
其中,客户端可以是图1中所示的客户端103,服务器101可以通过网络102与客户端103通信。
步骤1002、客户端获取第一信息。
其中,第一信息可以包括第一GUI图对应的第一DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息。该第一DSL代码可以包括至少一个控件标识。
可选的,第一DSL代码包括N个DSL代码段,第二DSL代码包括K个DSL代码段。
步骤1003、客户端根据第一字符串和第二字符串的相似度确定第三信息与第四信息之间的相似度。
其中,第一字符串可以包括第一DSL代码段包括的字符串以及第一DSL代码段包括的控件标识关联的文字信息包括的字符串,第二字符串可以包括第二DSL代码段包括的字符串以及第二DSL代码段包括的控件标识关联的文字信息包括的字符串。
其中,第三信息包括第一DSL代码段,以及第一DSL代码段包括的控件标识关联的文字信息,第一DSL代码段为该N个DSL代码段中任一个代码段,第四信息包括第二DSL代码段,以及第二DSL代码段包括的控件标识关联的文字信息,第二DSL代码段为该K个DSL代码段中,与第一DSL代码段相似度最高的DSL代码,第二DSL代码段包括的控件标识关联的文字信息是K个DSL代码段包括的控件标识关联的文字信息中,与第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息。
步骤1004、若第三信息与第四信息之间的相似度大于或等于第一阈值,则客户端将第四信息作为第一目标信息。
步骤1005、若第三信息与第四信息之间的相似度小于第一阈值,客户端计算第一关联概率。
其中,第一关联概率是第一DSL代码段包括的控件标识与第一DSL代码段包括的控件标识关联的文字信息间的关联概率。
步骤1006、若第一关联概率大于或等于第二阈值,将第三信息作为第一目标信息。
步骤1007、若第一关联概率小于第二阈值,客户端向服务器发送第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息。
其中,第一控件标识为第一DSL代码段中的任一控件标识。
步骤1008、服务器计算第二关联概率。
其中,第二关联概率是第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率。
步骤1009、客户端接收服务器发送的第二关联概率。
步骤1010、客户端向用户发送第一提示信息。
其中,第一提示信息包括第二关联概率较高的前M个预设控件标识、第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及第一控件标识对应的文字信息,M为正整数。
其中,前M个预设控件标识中任一个预设控件标识对应的文字信息可以包括该一个或多个分词中,对该任一个预设控件标识对应的第二关联概率贡献概率最大的分词。第一控件标识对应的文字信息可以包括该一个或多个分词中,对该第一控件标识对应的第二关联概率贡献概率最大的分词。
可选的,第一提示信息还可以包括第一GUI图中,第一控件标识对应的图像区域,以及第一DSL代码中,第一控件标识的位置信息。
步骤1011、客户端接收用户发送的第一确认信息。
其中,第一确认信息用于指示第二控件标识,第二控件标识为用户从前M个预设控件标识以及第一控件标识中选择出的控件标识。
步骤1012、客户端根据第一确认消息,将第一控件标识更新为第二控件标识。
若第一DSL代码段中还存在第一关联概率小于第二阈值的控件标识,执行步骤1007;若第一DSL代码段中不存在第一关联概率小于第二阈值的控件标识,但第一DSL代码中存在未确定第三信息和第四信息之间的相似度的DSL代码段,执行步骤1003;若第一DSL代码段中不存在第一关联概率小于第二阈值的控件标识,且第一DSL代码中不存在未确定第三信息和第四信息之间的相似度的DSL代码段,执行步骤1013。
步骤1013、客户端根据目标信息生成第一GUI图的界面代码。
需要说明的是,图10所示方法的具体过程可以参考图8所示方法的对应描述,此处不再赘述。
可以理解的是,上述客户端或者服务器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法操作,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对客户端或者服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面以客户端为例进行具体介绍。
比如,以采用集成的方式划分各个功能模块的情况下,图11示出了一种客户端110的结构示意图。该客户端110包括:获取模块1101、处理模块1102和生成模块1103。获取模块1101,用于获取第一信息;其中,该第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及该第一DSL代码包括的控件标识关联的文字信息;处理模块1102,用于根据该第一信息以及第二信息得到目标信息,其中,该第二信息包括第二DSL代码,以及该第二DSL代码包括的控件标识关联的文字信息,该目标信息包括目标DSL代码,以及该目标DSL代码包括的控件标识关联的文字信息;该第二DSL代码为第二GUI图对应的DSL代码,该第一GUI图为将该第二GUI图更新后的GUI图;生成模块1103,用于根据该目标信息生成该第一GUI图的界面代码。
可选的,如图12所示,该客户端110还包括:确定模块1104。该第一DSL代码包括N个DSL代码段,该第二DSL代码包括K个DSL代码段,其中,N和K为正整数;对于第三信息和第四信息,该第三信息包括第一DSL代码段,以及该第一DSL代码段包括的控件标识关联的文字信息,该第一DSL代码段为该N个DSL代码段中任一个代码段,该第四信息包括第二DSL代码段,以及该第二DSL代码段包括的控件标识关联的文字信息,该第二DSL代码段为该K个DSL代码段中,与该第一DSL代码段相似度最高的DSL代码,该第二DSL代码段包括的控件标识关联的文字信息是该K个DSL代码段包括的控件标识关联的文字信息中,与该第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息;确定模块1104,用于根据第一字符串和第二字符串的相似度确定该第三信息与该第四信息之间的相似度,其中,该第一字符串包括该第一DSL代码段包括的字符串以及该第一DSL代码段包括的控件标识关联的文字信息包括的字符串,该第二字符串包括该第二DSL代码段包括的字符串以及该第二DSL代码段包括的控件标识关联的文字信息包括的字符串;处理模块1102,还用于若该第三信息与该第四信息之间的相似度大于或等于第一阈值,将该第四信息作为该第一目标信息。
可选的,如图13所示,客户端110还包括:计算模块1105。计算模块1105,用于若该第三信息与该第四信息之间的相似度小于该第一阈值,计算第一关联概率,该第一关联概率是该第一DSL代码段包括的控件标识与该第一DSL代码段包括的控件标识关联的文字信息间的关联概率;该处理模块,还用于若该第一关联概率大于或等于第二阈值,则将该第三信息作为该第一目标信息;该处理模块,还用于若该第一关联概率小于该第二阈值,则对该第一DSL代码段包括的控件标识进行更新,将该更新后的第三信息作为该第一目标信息,该更新后的第三信息包括更新后的控件标识。
可选的,如图14所示,客户端110还包括:发送模块1106、接收模块1107和更新模块1108。计算模块1105,还用于计算第二关联概率,该第二关联概率是第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率,该第一控件标识为该第一DSL代码段中的任一控件标识;发送模块1106,用于向用户发送第一提示信息,其中,该第一提示信息包括第二关联概率较高的前M个预设控件标识、该第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及该第一控件标识对应的文字信息,该M为正整数;接收模块1107,用于接收该用户发送的第一确认信息,其中,该第一确认信息用于指示第二控件标识,该第二控件标识为该用户从该前M个预设控件标识以及该第一控件标识中选择出的控件标识;更新模块1108,用于根据该第一确认消息,将该第一控件标识更新为该第二控件标识。
可选的,如图15所示,客户端110还包括:分词模块1109和查询模块1110。分词模块1109,用于将第一控件标识关联的文字信息以及该第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;查询模块1110,用于查询该预设控件标识与该一个或者多个分词的关联概率;计算模块1105,还用于根据该预设控件标识与该一个或者多个分词的关联概率,计算该第二关联概率。
可选的,发送模块1106,还用于向用户发送第二提示信息,其中,该第二提示信息包括该第三信息与该第四信息中不相同的信息以及图像信息,该图像信息包括该不相同的信息在该第一GUI图中的对应区域的图像;接收模块1107,还用于接收该用户发送的第二确认信息,该第二确认信息用于指示将该第四信息作为该第一目标信息;处理模块1102,还用于根据该第二确认信息,将该第四信息作为该第一目标信息。
其中,上述方法实施例涉及的各操作的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本实施例中,该客户端110以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该客户端110可以采用图2所示的形式。
比如,图2中的处理器201可以通过调用存储器203中存储的计算机执行指令,使得客户端110执行上述方法实施例中的界面代码生成方法。
示例性的,图15中的获取模块1101、处理模块1102、生成模块1103、确定模块1104、计算模块1105、发送模块1106、接收模块1107、更新模块1108、分词模块1109和查询模块1110的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现。或者,图15中的获取模块1101、处理模块1102、生成模块1103、确定模块1104、计算模块1105、更新模块1108、分词模块1109和查询模块1110的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现,图15中的发送模块1106和接收模块1107的功能/实现过程可以通过图2中的通信接口204来实现。
由于本实施例提供的客户端110可执行上述的界面代码生成方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或操作,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种界面代码生成方法,其特征在于,所述方法包括:
获取第一信息;其中,所述第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及所述第一DSL代码包括的控件标识关联的文字信息;
根据所述第一信息以及第二信息得到目标信息,其中,所述第二信息包括第二DSL代码,以及所述第二DSL代码包括的控件标识关联的文字信息,所述目标信息包括目标DSL代码,以及所述目标DSL代码包括的控件标识关联的文字信息;所述第二DSL代码为第二GUI图对应的DSL代码,所述第一GUI图为将所述第二GUI图更新后的GUI图;
根据所述目标信息生成所述第一GUI图的界面代码。
2.根据权利要求1所述的方法,其特征在于,所述第一DSL代码包括N个DSL代码段,所述第二DSL代码包括K个DSL代码段,其中,N和K为正整数;
对于第三信息和第四信息,所述第三信息包括第一DSL代码段,以及所述第一DSL代码段包括的控件标识关联的文字信息,所述第一DSL代码段为所述N个DSL代码段中任一个代码段,所述第四信息包括第二DSL代码段,以及所述第二DSL代码段包括的控件标识关联的文字信息,所述第二DSL代码段为所述K个DSL代码段中,与所述第一DSL代码段相似度最高的DSL代码,所述第二DSL代码段包括的控件标识关联的文字信息是所述K个DSL代码段包括的控件标识关联的文字信息中,与所述第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息,根据所述第三信息以及所述第四信息得到第一目标信息,包括:
根据第一字符串和第二字符串的相似度确定所述第三信息与所述第四信息之间的相似度,其中,所述第一字符串包括所述第一DSL代码段包括的字符串以及所述第一DSL代码段包括的控件标识关联的文字信息包括的字符串,所述第二字符串包括所述第二DSL代码段包括的字符串以及所述第二DSL代码段包括的控件标识关联的文字信息包括的字符串;
若所述第三信息与所述第四信息之间的相似度大于或等于第一阈值,则将所述第四信息作为所述第一目标信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第三信息与所述第四信息之间的相似度小于所述第一阈值,计算第一关联概率,所述第一关联概率是所述第一DSL代码段包括的控件标识与所述第一DSL代码段包括的控件标识关联的文字信息间的关联概率;
若所述第一关联概率大于或等于第二阈值,则将所述第三信息作为所述第一目标信息;
若所述第一关联概率小于所述第二阈值,则对所述第一DSL代码段包括的控件标识进行更新,将所述更新后的第三信息作为所述第一目标信息,所述更新后的第三信息包括更新后的控件标识。
4.根据权利要求3所述的方法,其特征在于,对于第一控件标识,所述第一控件标识为所述第一DSL代码段中的任一控件标识,所述对所述第一控件标识进行更新,包括:
计算第二关联概率,所述第二关联概率是所述第一控件标识关联的文字信息以及所述第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率;
向用户发送第一提示信息,其中,所述第一提示信息包括第二关联概率较高的前M个预设控件标识、所述第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及所述第一控件标识对应的文字信息,所述M为正整数;
接收所述用户发送的第一确认信息,其中,所述第一确认信息用于指示第二控件标识,所述第二控件标识为所述用户从所述前M个预设控件标识以及所述第一控件标识中选择出的控件标识;
根据所述第一确认消息,将所述第一控件标识更新为所述第二控件标识。
5.根据权利要求4所述的方法,其特征在于,所述计算第二关联概率,包括:
将第一控件标识关联的文字信息以及所述第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;
查询所述预设控件标识与所述一个或者多个分词的关联概率;
根据所述预设控件标识与所述一个或者多个分词的关联概率,计算所述第二关联概率。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述将所述第四信息作为所述第一目标信息,包括:
向用户发送第二提示信息,其中,所述第二提示信息包括所述第三信息与所述第四信息中不相同的信息以及图像信息,所述图像信息包括所述不相同的信息在所述第一GUI图中的对应区域的图像;
接收所述用户发送的第二确认信息,所述第二确认信息用于指示将所述第四信息作为所述第一目标信息;
根据所述第二确认信息,将所述第四信息作为所述第一目标信息。
7.一种界面代码生成装置,其特征在于,所述装置包括:获取模块、处理模块和生成模块;
所述获取模块,用于获取第一信息;其中,所述第一信息包括第一图形用户界面GUI图对应的第一领域特定语言DSL代码,以及所述第一DSL代码包括的控件标识关联的文字信息;
所述处理模块,用于根据所述第一信息以及第二信息得到目标信息,其中,所述第二信息包括第二DSL代码,以及所述第二DSL代码包括的控件标识关联的文字信息,所述目标信息包括目标DSL代码,以及所述目标DSL代码包括的控件标识关联的文字信息;所述第二DSL代码为第二GUI图对应的DSL代码,所述第一GUI图为将所述第二GUI图更新后的GUI图;
所述生成模块,用于根据所述目标信息生成所述第一GUI图的界面代码。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:确定模块;
所述第一DSL代码包括N个DSL代码段,所述第二DSL代码包括K个DSL代码段,其中,N和K为正整数;
对于第三信息和第四信息,所述第三信息包括第一DSL代码段,以及所述第一DSL代码段包括的控件标识关联的文字信息,所述第一DSL代码段为所述N个DSL代码段中任一个代码段,所述第四信息包括第二DSL代码段,以及所述第二DSL代码段包括的控件标识关联的文字信息,所述第二DSL代码段为所述K个DSL代码段中,与所述第一DSL代码段相似度最高的DSL代码,所述第二DSL代码段包括的控件标识关联的文字信息是所述K个DSL代码段包括的控件标识关联的文字信息中,与所述第一DSL代码段包括的控件标识关联的文字信息的相似度最高的文字信息;
所述确定模块,用于根据第一字符串和第二字符串的相似度确定所述第三信息与所述第四信息之间的相似度,其中,所述第一字符串包括所述第一DSL代码段包括的字符串以及所述第一DSL代码段包括的控件标识关联的文字信息包括的字符串,所述第二字符串包括所述第二DSL代码段包括的字符串以及所述第二DSL代码段包括的控件标识关联的文字信息包括的字符串;
所述处理模块,还用于若所述第三信息与所述第四信息之间的相似度大于或等于第一阈值,将所述第四信息作为第一目标信息。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:计算模块;
所述计算模块,用于若所述第三信息与所述第四信息之间的相似度小于所述第一阈值,计算第一关联概率,所述第一关联概率是所述第一DSL代码段包括的控件标识与所述第一DSL代码段包括的控件标识关联的文字信息间的关联概率;
所述处理模块,还用于若所述第一关联概率大于或等于第二阈值,则将所述第三信息作为所述第一目标信息;
所述处理模块,还用于若所述第一关联概率小于所述第二阈值,则对所述第一DSL代码段包括的控件标识进行更新,将所述更新后的第三信息作为所述第一目标信息,所述更新后的第三信息包括更新后的控件标识。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:发送模块、接收模块和更新模块;
所述计算模块,还用于计算第二关联概率,所述第二关联概率是第一控件标识关联的文字信息以及所述第一控件标识附近的控件标识关联的文字信息与预设控件标识之间的关联概率,所述第一控件标识为所述第一DSL代码段中的任一控件标识;
所述发送模块,用于向用户发送第一提示信息,其中,所述第一提示信息包括第二关联概率较高的前M个预设控件标识、所述第一控件标识、前M个预设控件标识中每个预设控件标识对应的文字信息、以及所述第一控件标识对应的文字信息,所述M为正整数;
所述接收模块,用于接收所述用户发送的第一确认信息,其中,所述第一确认信息用于指示第二控件标识,所述第二控件标识为所述用户从所述前M个预设控件标识以及所述第一控件标识中选择出的控件标识;
所述更新模块,用于根据所述第一确认消息,将所述第一控件标识更新为所述第二控件标识。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:分词模块和查询模块;
所述分词模块,用于将第一控件标识关联的文字信息以及所述第一控件标识附近的控件标识关联的文字信息进行分词,得到一个或者多个分词;
所述查询模块,用于查询所述预设控件标识与所述一个或者多个分词的关联概率;
所述计算模块,还用于根据所述预设控件标识与所述一个或者多个分词的关联概率,计算所述第二关联概率。
12.根据权利要求10-11任一项所述的装置,其特征在于,
所述发送模块,还用于向用户发送第二提示信息,其中,所述第二提示信息包括所述第三信息与所述第四信息中不相同的信息以及图像信息,所述图像信息包括所述不相同的信息在所述第一GUI图中的对应区域的图像;
所述接收模块,还用于接收所述用户发送的第二确认信息,所述第二确认信息用于指示将所述第四信息作为所述第一目标信息;
所述处理模块,还用于根据所述第二确认信息,将所述第四信息作为所述第一目标信息。
13.一种界面代码生成装置,其特征在于,所述装置包括:至少一个处理器,至少一个存储器以及通信接口,其特征在于,
所述通信接口、所述至少一个存储器与所述至少一个处理器耦合;所述界面代码生成装置通过所述通信接口与其他设备通信,所述至少一个存储器用于存储计算机程序,使得所述计算机程序被所述至少一个处理器执行时实现如权利要求1-6中任一项所述的界面代码生成方法。
14.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在至少一个存储节点上运行时,所述至少一个存储节点执行权利要求1-6中任一项所述的界面代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910325102.3A CN111831279B (zh) | 2019-04-22 | 2019-04-22 | 界面代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910325102.3A CN111831279B (zh) | 2019-04-22 | 2019-04-22 | 界面代码生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831279A true CN111831279A (zh) | 2020-10-27 |
CN111831279B CN111831279B (zh) | 2022-05-31 |
Family
ID=72911810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910325102.3A Active CN111831279B (zh) | 2019-04-22 | 2019-04-22 | 界面代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831279B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667232A (zh) * | 2020-12-21 | 2021-04-16 | 深圳前海微众银行股份有限公司 | 界面代码生成方法、装置、设备及存储介质 |
CN116501436A (zh) * | 2023-06-29 | 2023-07-28 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
CN117331559A (zh) * | 2023-11-06 | 2024-01-02 | 久方智能(广东)有限公司 | 一种前端无代码生成应用界面的方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090235188A1 (en) * | 2008-03-11 | 2009-09-17 | Creative Information Technology | Method for designing a graphical interface program |
US20130074148A1 (en) * | 2010-05-20 | 2013-03-21 | Oedses Klaas Van Megchelen | Method and system for compiling a unique sample code for specific web content |
CN103970750A (zh) * | 2013-01-25 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 一种生成html网页的方法和装置 |
CN105930159A (zh) * | 2016-04-20 | 2016-09-07 | 中山大学 | 一种基于图像的界面代码生成的方法及系统 |
CN106066797A (zh) * | 2016-06-03 | 2016-11-02 | 用友网络科技股份有限公司 | 基于dsl理念的优化模型驱动开发方法和装置 |
US20160321044A1 (en) * | 2005-08-25 | 2016-11-03 | Versata Fz-Llc | Methods for User Interface Generation and Application Modification |
CN108228183A (zh) * | 2018-01-12 | 2018-06-29 | 北京三快在线科技有限公司 | 前端界面代码生成方法、装置、电子设备及存储介质 |
CN108268258A (zh) * | 2016-12-29 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 一种用于获取网页代码的方法、装置及电子设备 |
CN108304183A (zh) * | 2018-02-26 | 2018-07-20 | 北京车和家信息技术有限公司 | 一种用户界面生成方法、装置及电子设备 |
CN108345456A (zh) * | 2018-03-07 | 2018-07-31 | 平安普惠企业管理有限公司 | 页面代码生成方法、装置、计算机设备和存储介质 |
CN108415705A (zh) * | 2018-03-13 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 网页生成方法、装置、存储介质及设备 |
CN108536467A (zh) * | 2018-04-08 | 2018-09-14 | 中国联合网络通信集团有限公司 | 代码的定位处理方法、装置、终端设备及存储介质 |
US20180336018A1 (en) * | 2017-05-16 | 2018-11-22 | International Business Machines Corporation | Method and system for template extraction based on source code similarity |
CN109343845A (zh) * | 2018-08-14 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 一种代码文件生成方法和装置 |
CN109408058A (zh) * | 2018-10-31 | 2019-03-01 | 北京影谱科技股份有限公司 | 基于机器学习的前端辅助开发方法和装置 |
CN109471625A (zh) * | 2018-09-28 | 2019-03-15 | 北京金山云网络技术有限公司 | 网页生成方法、装置、电子设备及计算机可读存储介质 |
CN109508189A (zh) * | 2018-10-18 | 2019-03-22 | 北京奇艺世纪科技有限公司 | 一种布局模板处理方法、装置及计算机可读存储介质 |
-
2019
- 2019-04-22 CN CN201910325102.3A patent/CN111831279B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160321044A1 (en) * | 2005-08-25 | 2016-11-03 | Versata Fz-Llc | Methods for User Interface Generation and Application Modification |
US20090235188A1 (en) * | 2008-03-11 | 2009-09-17 | Creative Information Technology | Method for designing a graphical interface program |
US20130074148A1 (en) * | 2010-05-20 | 2013-03-21 | Oedses Klaas Van Megchelen | Method and system for compiling a unique sample code for specific web content |
CN103970750A (zh) * | 2013-01-25 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 一种生成html网页的方法和装置 |
CN105930159A (zh) * | 2016-04-20 | 2016-09-07 | 中山大学 | 一种基于图像的界面代码生成的方法及系统 |
CN106066797A (zh) * | 2016-06-03 | 2016-11-02 | 用友网络科技股份有限公司 | 基于dsl理念的优化模型驱动开发方法和装置 |
CN108268258A (zh) * | 2016-12-29 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 一种用于获取网页代码的方法、装置及电子设备 |
US20180336018A1 (en) * | 2017-05-16 | 2018-11-22 | International Business Machines Corporation | Method and system for template extraction based on source code similarity |
CN108228183A (zh) * | 2018-01-12 | 2018-06-29 | 北京三快在线科技有限公司 | 前端界面代码生成方法、装置、电子设备及存储介质 |
CN108304183A (zh) * | 2018-02-26 | 2018-07-20 | 北京车和家信息技术有限公司 | 一种用户界面生成方法、装置及电子设备 |
CN108345456A (zh) * | 2018-03-07 | 2018-07-31 | 平安普惠企业管理有限公司 | 页面代码生成方法、装置、计算机设备和存储介质 |
CN108415705A (zh) * | 2018-03-13 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 网页生成方法、装置、存储介质及设备 |
CN108536467A (zh) * | 2018-04-08 | 2018-09-14 | 中国联合网络通信集团有限公司 | 代码的定位处理方法、装置、终端设备及存储介质 |
CN109343845A (zh) * | 2018-08-14 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 一种代码文件生成方法和装置 |
CN109471625A (zh) * | 2018-09-28 | 2019-03-15 | 北京金山云网络技术有限公司 | 网页生成方法、装置、电子设备及计算机可读存储介质 |
CN109508189A (zh) * | 2018-10-18 | 2019-03-22 | 北京奇艺世纪科技有限公司 | 一种布局模板处理方法、装置及计算机可读存储介质 |
CN109408058A (zh) * | 2018-10-31 | 2019-03-01 | 北京影谱科技股份有限公司 | 基于机器学习的前端辅助开发方法和装置 |
Non-Patent Citations (5)
Title |
---|
S. NATARAJAN 等: "P2A: A Tool for Converting Pixels to Animated Mobile Application User Interfaces", 《2018 IEEE/ACM 5TH INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS (MOBILESOFT)》 * |
THOROGOOD MILES 等: "slideDeck.js: A Platform for Generating Accessible and Interactive Web-Based Course Content", 《PROCEEDINGS OF THE 21ST WESTERN CANADIAN CONFERENCE ON COMPUTING EDUCATION》 * |
TONY BELTRAMELLI 等: "pix2code: Generating Code from a Graphical User", 《PROCEEDINGS OF THE ACM SIGCHI SYMPOSIUM ON ENGINEERING INTERACTIVE COMPUTING SYSTEMS》 * |
任胜兵 等: "Web页面自动化设计中布局挖掘和样式匹配算法", 《计算机工程与应用》 * |
李琦 等: "基于数据模式和界面模式的界面代码生成方法", 《西部大开发(土地开发工程研究)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667232A (zh) * | 2020-12-21 | 2021-04-16 | 深圳前海微众银行股份有限公司 | 界面代码生成方法、装置、设备及存储介质 |
CN116501436A (zh) * | 2023-06-29 | 2023-07-28 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
CN116501436B (zh) * | 2023-06-29 | 2023-09-08 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
CN117331559A (zh) * | 2023-11-06 | 2024-01-02 | 久方智能(广东)有限公司 | 一种前端无代码生成应用界面的方法 |
CN117331559B (zh) * | 2023-11-06 | 2024-05-03 | 久方智能(广东)有限公司 | 一种前端无代码生成应用界面的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111831279B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831279B (zh) | 界面代码生成方法及装置 | |
CN106104472B (zh) | 指定逻辑验证规则并将逻辑验证规则应用于数据 | |
CN107643984B (zh) | 用于输出信息的方法和装置 | |
CN108369591B (zh) | 用于缓存和参数化ir的系统和方法 | |
CN111611441B (zh) | 异构数据的处理方法、装置以及计算机设备 | |
CN104572072A (zh) | 一种对基于mvc模式的程序的语言转换方法与设备 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN110909868A (zh) | 基于图神经网络模型的节点表示方法和装置 | |
CN110647322B (zh) | 列表渲染方法、装置、电子设备和计算机可读介质 | |
CN110880100A (zh) | 业务审批的处理方法、装置及系统 | |
US11366704B2 (en) | Configurable analytics for microservices performance analysis | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
CN115454445A (zh) | 代码检查方法及装置、计算机可读存储介质、终端 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN105190546A (zh) | 成本计算装置、成本计算方法及计算机可读记录介质 | |
CN113434542B (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
CN112541688B (zh) | 业务数据校验方法、装置、电子设备及计算机存储介质 | |
CN117669518A (zh) | 文件生成方法、系统、计算机设备及存储介质 | |
CN116483345A (zh) | 一种表单生成方法、装置、电子设备及存储介质 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
KR102310587B1 (ko) | 연속된 이미지들에 대한 스켈레톤 데이터 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 | |
US11636022B2 (en) | Server and control method thereof | |
CN115511644A (zh) | 用于目标保单的处理方法、电子设备和可读存储介质 | |
CN113792247B (zh) | 基于代码特征生成功能流程图的方法、装置、设备和介质 | |
CN113076485B (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 |