代码生成方法、装置、计算机装置及存储介质与流程

文档序号:17441079发布日期:2019-04-17 04:46阅读:150来源:国知局
代码生成方法、装置、计算机装置及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种代码生成方法、装置、计算机装置及存储介质。



背景技术:

目前在进行移动端应用开发时,通常会依据设计文档进行代码开发。具体的,设计文档包括视觉文档以及交互文档,视觉代码用于开发页面的布局,也可称为布局文档,通过视觉可以编写页面显示的代码,通过交互文档可以编写交互处理的代码。

通过现有技术进行代码开发,代码开发的时间在项目中所占用的时间通常较长,若应用版本迭代较快,需要开发的内容较多时,往往无法在短期内完成开发,导致项目延期。



技术实现要素:

鉴于以上内容,有必要提供一种代码生成方法、装置、计算机装置及存储介质,能够缩短代码开发的时间,提高代码开发的效率。

本发明提供一种代码生成方法,所述方法包括:

获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档;

从所述布局需求文档中获取所述目标页面的页面元素;

将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码;

从所述交互需求文档中获取所述目标页面的交互信息;

根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。

在本发明可选实施中,所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,还包括:

启动所述活动组件,接收对所述活动组件包括的预设可操作对象的交互操作;

获取所述交互操作的交互结果;

判断所述交互结果是否为预期交互结果;

若所述交互结果不为所述预期交互结果,输出第一运行错误提醒。

在本发明可选实施例中,所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,还包括:

启动所述活动组件以显示所述目标页面;

从所述目标页面中获取显示图片,以及根据所述布局需求文档获取页面需求图片;

将所述显示图片与所述页面需求图片进行匹配;

若所述显示图片与所述页面需求图片的相似度低于预设相似度,输出第二运行错误提醒。

在本发明可选实施中,所述安卓布局文档以及所述与所述安卓布局文档关联的活动组件为预先创建的。

在本发明可选实施中,所述方法还包括:

若从所述布局需求文档中无法获取所述目标页面的页面元素,输出错误提醒消息。

在本发明可选实施例中,所述方法还包括:

若所述显示图片与所述页面需求图片的相似度低于预设相似度,在所述目标页面中对所述显示图片的显示范围进行标记显示。

在本发明可选实施例中,所述从所述交互需求文档中获取所述目标页面的交互信息包括:

扫描所述交互需求文档,获取与所述布局需求文档中标识相同的可操作对象,识别所述可操作对象的交互操作,得到所述目标页面的交互信息。

本发明提供一种代码生成装置,所述装置包括:

第一获取模块,用于获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档;

第二获取模块,用于从所述布局需求文档中获取所述目标页面的页面元素;

第一生成模块,用于将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码;

第三获取模块,用于从所述交互需求文档中获取所述目标页面的交互信息;

第二生成模块,用于根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。

在本发明可选实施例中,所述装置还包括第一校验模块,所述第一校验模块用于:

所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,启动所述活动组件,接收对所述活动组件包括的预设可操作对象的交互操作;

获取所述交互操作的交互结果;

判断所述交互结果是否为预期交互结果;

若所述交互结果不为所述预期交互结果,输出第一运行错误提醒。

在本发明可选实施例中,所述装置还包括第二校验模块,所述第二校验模块用于:

所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,启动所述活动组件以显示所述目标页面;

从所述目标页面中获取显示图片,以及根据所述布局需求文档获取页面需求图片;

将所述显示图片与所述页面需求图片进行匹配;

若所述显示图片与所述页面需求图片的相似度低于预设相似度,输出第二运行错误提醒。

在本发明可选实施例中,所述安卓布局文档以及所述与所述安卓布局文档关联的活动组件为预先创建的。

在本发明可选实施例中,所述装置还包括:

提醒模块,用于若从所述布局需求文档中无法获取所述目标页面的页面元素,输出错误提醒消息。

在本发明可选实施例中,所述装置还包括:

标记显示模块,用于若所述显示图片与所述页面需求图片的相似度低于预设相似度,在所述目标页面中对所述显示图片的显示范围进行标记显示。

在本发明可选实施例中,所述第三获取模块具体用于:

扫描所述交互需求文档,获取与所述布局需求文档中标识相同的可操作对象,识别所述可操作对象的交互操作,得到所述目标页面的交互信息。

本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的代码生成方法。

本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的代码生成方法。

由以上技术方案看出,本发明通过获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档;从所述布局需求文档中获取所述目标页面的页面元素;将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码;从所述交互需求文档中获取所述目标页面的交互信息;根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。由于得到的安卓布局文档包含从目标页面的页面元素转换的安卓页面元素代码,且与安卓布局文档关联的活动组件包含表达目标页面交互信息的交互代码,因此该安卓布局文档以及与该安卓布局文档关联的活动组件目标页面为实现所述目标页面的安卓代码。从而本发明,无需用户一一编写安卓代码,就能够生成安卓代码,实现了缩短代码开发的时间,提高代码开发的效率的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种代码生成方法的流程图;

图2是本发明实施例提供的一种代码生成装置的功能模块图;

图3是本发明实现代码生成方法的较佳实施例的计算机装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,图1为本发明实施例提供的一种代码生成方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s11,获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档。

通过本发明实施例生成的代码为安卓应用的程序代码。具体的,可以包括安卓应用的布局文件以及安卓应用的活动组件。

本实施例中,目标页面是通过本发明生成的代码所对应的页面。例如,目标页面是登陆页面,则通过本发明所述的方法可以生成登陆页面的代码。

其中,需求文档可以是对目标页面的整体规划的信息。具体的,需求文档可以包括布局需求文档和交互需求文档。

其中,布局需求文档中可以包含目标页面的布局信息,例如,布局信息可以是目标页面中包含哪些元素(如按钮、下拉框、文本框等信息)、页面的背景颜色等信息,并且,布局需求文档可以是html文件,也可以是xml文件等通过标记语言编写的文件。

其中,在交互需求文档中可以包含目标页面的交互情况,例如,目标页面中哪些按钮可以进行怎样的交互操作,并且,交互需求文档可以是html文件,也可以是javascript文件等可以保存交互信息的文件。

s12:从所述布局需求文档中获取所述目标页面的页面元素。

在本实施例中,可以通过识别布局需求文档中的标签来得到目标页面的页面元素。

具体的,可以读取布局需求文档,获取布局需求文档中所包含的标签以及标签的属性信息,同时获取标签之间或者标签内所包含的信息,即为目标页面的页面元素。

本实施例中,以布局描述文档为html文件为例说明。在html文件中,标签具有特定的编写格式,如<div></div>表明一个层,其中<div>表示开始标签,</div>表示结束标签,<div>与</div>之间的内容是在页面显示时,该层所显示的内容。又比如,存在<divstyle="color:#00ff00">,其中,color定义这个层的背景颜色信息,即为该标签的属性信息。基于此,通过该html文件中所获取到的页面元素可以是表示层的<div>以及该层的背景颜色信息。

可选的,在本发明其他实施例中,所述方法还包括:

若从所述布局需求文档中无法获取所述目标页面的页面元素,输出错误提醒消息。

其中,错误提醒消息可以是以错误日志形式向对应的目标页面的开发人员进行提醒,以使相应的开发人员快速跟踪出现的问题,进而解决问题。

例如,布局需求文档中的标签为命名不规则的标签,则可能无法识别该标签所标识的页面元素,此时输出错误提醒消息。

通过本实施例,若无法通过布局需求文档获取到页面元素,可以输出错误提醒消息,有利于开发人快速发现哪些页面元素没有被转换,可以为开发人员进行手动处理时提供辅助信息。

s13:将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码。

其中,安卓页面元素代码是适用于安卓程序的页面元素代码。

具体的,可以预先定义读取到什么页面元素就转换为何种安卓页面元素代码的对应转换关系。则在得到布局需求文档包含的页面元素之后,就可以根据该对应转换关系将目标页面的页面元素转换为目标页面的安卓页面元素代码。

例如,若读取到<div></div>,则转换为对应的<linearlayout></linearlayout>,应用于安卓程序中,并且将<div></div>之间的内容添加至<linearlayout></linearlayout>之间。

其中,安卓布局文档是用于安卓程序代码的xml布局文件,安卓布局文档可以是在将目标页面的页面元素转换为目标页面的安卓页面元素代码之后新建的文件。

对于安卓程序,通常一个页面包括xml布局文件和java代码文件。其中,xml布局文件内定义页面的布局,java代码内定义页面的逻辑跳转。具体的,常用的xml布局文档内有其固有的格式,因此可以根据常用的xml布局文件的模板生成安卓布局文档。

通过本发明所述的方法可以快速生成用于安卓程序的xml布局文件,无需手动编写用于安卓程序的xml布局文件,从而缩短开发时间,提高开发效率。

优选的,安卓布局文档可以为预先创建的。

s14,从所述交互需求文档中获取所述目标页面的交互信息。

在本实施例中,交互需求文档中可以包含哪些可操作底下那个可以进行哪些跳转的信息。

因此可以从交互需求文档中获取目标页面的交互信息。

可选的,所述从所述交互需求文档中获取所述目标页面的交互信息可以包括:

扫描所述交互需求文档,获取与所述布局需求文档中标识相同的可操作对象,识别所述可操作对象的交互操作,得到所述目标页面的交互信息。

其中,通过页面元素的标签的类型可以识别该页面元素是否为可操作对象,例如,页面元素中若包含<buttontype=“button”>,该标签表示按钮,因此,识别该标签button为可操作对象。

由于交互需求文档包含页面元素的交互信息,因此可以从交互需求文档中获取与布局需求文档中标识相同的可操作对象,进而识别可操作对象的交互操作(如,点击a按钮,跳转至首页,则交互操作为跳转至首页;执行b按钮,在新的窗口打开m页面等),即得到目标页面的交互信息。

例如,对于html代码:<buttononclick="copytext()">文本</button>,该html代码用于标识点击button以后,根据函数copytext()执行操作,即执行函数copytext()所定义的内容,即’onclick="copytext()"’表示该可操作对象的交互操作。

s15,根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。

其中,活动组件也可称为activity,activity是安卓中的一个应用组件,安卓应用显示的一个页面可以称为一个activity,一个安卓应用就是由多个activity所组成,不同的页面是不同的activity。用户通过activity可以与安卓应用进行交互。

在本实施例中,与安卓布局文档关联的活动组件可以是在从交互需求文档中获取目标页面的交互信息之后创建的。

优选的,安卓布局文档也可以为预先创建的。

例如,若安卓布局文档为payment_success.xml,则在activity中,通过setcontentview(r.layout.payment_success)将该activity与payment_success.xml进行关联,得到与该安卓布局文档关联的活动组件。可以理解的,若要关联的安卓布局文档为其他命名的xml文件,则将setcontentview中的表示文件名称的payment_success替换为其他命名的xml文件。

根据交互信息在与安卓布局文档关联的活动组件中创建目标页面的交互代码可以是:根据交互信息包含的可操作对象的交互操作,在与安卓布局文档关联的活动组件中生成该可操作对象对应的交互函数。

例如,若点击a按钮时,所执行的操作为在当前窗口打开主页(openhomepageincurrentwindow),则在activity中创建如下点击事件的代码:

其中,上述代码表示a按钮子点击之后,打开homepage.class所表示的主页。

通过以上步骤,对于一个安卓页面,可以得到表示该页面的xml布局文档以及与该xml布局文档关联的activity,从而得到了该页面的安卓代码。无需用户编写代码,就能够快速的生成安卓代码,提高开发的效率。

可选的,在本发明其他实施例中,所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,所述方法还包括:

启动所述活动组件,接收对所述活动组件包括的预设可操作对象的交互操作;

获取所述交互操作的交互结果;

判断所述交互结果是否为预期交互结果;

若所述交互结果不为所述预期交互结果,输出第一运行错误提醒。

在本实施例中,在安卓代码生成之后,可以对生成的安卓代码进行交互操作的测试,以检测安卓代码的准确性。

其中,上述预设可操作对象是活动组件中存在交互操作的对象,例如,按钮,文本框,选择按钮等。

上述交互操作可以是点击、双击、悬停等交互操作。

上述交互结果可以是在预设可操作对象接收到交互操作之后所执行的操作,例如,页面跳转、新窗口开启页面,显示下拉菜单等。

预期交互结果可以是生成的代码运行正确时所产生的交互结果。

其中,输出的运行错误提醒可以是在运行界面输出的报错提醒。

通过本实施例,可以对生成的安卓代码中所包含的交互功能进行测试,并对不符合预期的交互进行反馈提醒,减少开发人员的工作量,提高开发效率。

可选的,在本发明其他实施例中,所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,所述方法还包括:

启动所述活动组件以显示所述目标页面;

从所述目标页面中获取显示图片,以及根据所述布局需求文档获取页面需求图片;

将所述显示图片与所述页面需求图片进行匹配;

若所述显示图片与所述页面需求图片的相似度低于预设相似度,输出第二运行错误提醒。

其中,显示图片与页面需求图片可以是对应的图片。具体的,显示图片可以是从目标页面中截取的全景图片,例如,对目标页面的完整截图,同时,获取的页面需求图片可以是界面设计图,即设计的目标页面对应的显示样式;或者显示图片也可以是从目标页面中截取的部分图片,例如,某个按钮的图片,相应的,获取的页面需求图片也为该按钮设计时的图片。

其中,上述预设相似度可以根据需要预先设定,预设相似度用于判断显示图片与页面需求图片的相似度是否较低。例如,预设相似度为80%。

其中,第二运行错误提醒可以是在运行界面中弹出显示框,在弹出框中显示的相似度匹配结果。

通过本实施例,在安卓代码生成之后,无需开发人员手动检查比对安卓代码所表示的页面与设计时的页面是否一致,通过图像对比进行匹配,当相似度较低时,表明生成的安卓代码可能存在错误,进行提醒。当开发的页面较多时,通过本实施例,可以快速地对生成的代码进行检查,减少人力耗费,提高开发效率,加速开发的进度。

可选的,在本发明其他实施例中,所述方法还包括:

若所述显示图片与所述页面需求图片的相似度低于预设相似度,在所述目标页面中对所述显示图片的显示范围进行标记显示。

例如,显示图片为按钮,则显示图片包括的范围则为该按钮的显示范围;或者,显示图片为背景图片,则显示图片包括的范围为背景图片的显示范围。

其中标记显示可以是高亮颜色画圈标记,或者是通过不同的透明度进行显示。

在本实施例中,在显示图片与页面需求图片的相似度低于预设相似度时,在目标页面中对显示图片的显示范围进行标记显示,可以使开发人员直观的了解到所生成的代码与设计时的页面的不同之处,有利于快速调整生成的代码,提高开发的效率。

本发明提供的代码生成方法获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档;从所述布局需求文档中获取所述目标页面的页面元素;将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码;从所述交互需求文档中获取所述目标页面的交互信息;根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。由于得到的安卓布局文档包含从目标页面的页面元素转换的安卓页面元素代码,且与安卓布局文档关联的活动组件包含表达目标页面交互信息的交互代码,因此该安卓布局文档以及与该安卓布局文档关联的活动组件目标页面为实现所述目标页面的安卓代码。从而本发明,无需用户一一编写安卓代码,就能够生成安卓代码,实现了缩短代码开发的时间,提高代码开发的效率的目的。

如图2所示,图2为本发明实施例提供的一个代码生成装置的功能模块图。所述代码生成装置包括第一获取模块210、第二获取模块220、第一生成模块230、第三获取模块240和第二生成模块250。本发明所称的模块是指一种能够被计算机装置的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机装置的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

第一获取模块210,用于获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档。

通过本发明实施例生成的代码为安卓应用的程序代码。具体的,可以包括安卓应用的布局文件以及安卓应用的活动组件。

本实施例中,目标页面是通过本发明生成的代码所对应的页面。例如,目标页面是登陆页面,则通过本发明所述的方法可以生成登陆页面的代码。

其中,需求文档可以是对目标页面的整体规划的信息。具体的,需求文档可以包括布局需求文档和交互需求文档。

其中,布局需求文档中可以包含目标页面的布局信息,例如,布局信息可以是目标页面中包含哪些元素(如按钮、下拉框、文本框等信息)、页面的背景颜色等信息,并且,布局需求文档可以是html文件,也可以是xml文件等通过标记语言编写的文件。

其中,在交互需求文档中可以包含目标页面的交互情况,例如,目标页面中哪些按钮可以进行怎样的交互操作,并且,交互需求文档可以是html文件,也可以是javascript文件等可以保存交互信息的文件。

第二获取模块220,用于从所述布局需求文档中获取所述目标页面的页面元素。

在本实施例中,可以通过识别布局需求文档中的标签来得到目标页面的页面元素。

具体的,可以读取布局需求文档,获取布局需求文档中所包含的标签以及标签的属性信息,同时获取标签之间或者标签内所包含的信息,即为目标页面的页面元素。

本实施例中,以布局描述文档为html文件为例说明。在html文件中,标签具有特定的编写格式,如<div></div>表明一个层,其中<div>表示开始标签,</div>表示结束标签,<div>与</div>之间的内容是在页面显示时,该层所显示的内容。又比如,存在<divstyle="color:#00ff00">,其中,color定义这个层的背景颜色信息,即为该标签的属性信息。基于此,通过该html文件中所获取到的页面元素可以是表示层的<div>以及该层的背景颜色信息。

可选的,在本发明其他实施例中,所述装置还包括提醒模块。

所述提醒模块,用于若从所述布局需求文档中无法获取所述目标页面的页面元素,输出错误提醒消息。

其中,错误提醒消息可以是以错误日志形式向对应的目标页面的开发人员进行提醒,以使相应的开发人员快速跟踪出现的问题,进而解决问题。

例如,布局需求文档中的标签为命名不规则的标签,则可能无法识别该标签所标识的页面元素,此时输出错误提醒消息。

通过本实施例,若无法通过布局需求文档获取到页面元素,可以输出错误提醒消息,有利于开发人快速发现哪些页面元素没有被转换,可以为开发人员进行手动处理时提供辅助信息。

第一生成模块230,用于将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码。

其中,安卓页面元素代码是适用于安卓程序的页面元素代码。

具体的,可以预先定义读取到什么页面元素就转换为何种安卓页面元素代码的对应转换关系。则在得到布局需求文档包含的页面元素之后,就可以根据该对应转换关系将目标页面的页面元素转换为目标页面的安卓页面元素代码。

例如,若读取到<div></div>,则转换为对应的<linearlayout></linearlayout>,应用于安卓程序中,并且将<div></div>之间的内容添加至<linearlayout></linearlayout>之间。

其中,安卓布局文档是用于安卓程序代码的xml布局文件,安卓布局文档可以是在将目标页面的页面元素转换为目标页面的安卓页面元素代码之后新建的文件。

对于安卓程序,通常一个页面包括xml布局文件和java代码文件。其中,xml布局文件内定义页面的布局,java代码内定义页面的逻辑跳转。具体的,常用的xml布局文档内有其固有的格式,因此可以根据常用的xml布局文件的模板生成安卓布局文档。

通过本发明所述的方法可以快速生成用于安卓程序的xml布局文件,无需手动编写用于安卓程序的xml布局文件,从而缩短开发时间,提高开发效率。

优选的,安卓布局文档可以为预先创建的。

第三获取模块240,用于从所述交互需求文档中获取所述目标页面的交互信息。

在本实施例中,交互需求文档中可以包含哪些可操作底下那个可以进行哪些跳转的信息。

因此可以从交互需求文档中获取目标页面的交互信息。

可选的,所述第三获取模块240具体用于:

扫描所述交互需求文档,获取与所述布局需求文档中标识相同的可操作对象,识别所述可操作对象的交互操作,得到所述目标页面的交互信息。

其中,通过页面元素的标签的类型可以识别该页面元素是否为可操作对象,例如,页面元素中若包含<buttontype=“button”>,该标签表示按钮,因此,识别该标签button为可操作对象。

由于交互需求文档包含页面元素的交互信息,因此可以从交互需求文档中获取与布局需求文档中标识相同的可操作对象,进而识别可操作对象的交互操作(如,点击a按钮,跳转至首页,则交互操作为跳转至首页;执行b按钮,在新的窗口打开m页面等),即得到目标页面的交互信息。

例如,对于html代码:<buttononclick="copytext()">文本</button>,该html代码用于标识点击button以后,根据函数copytext()执行操作,即执行函数copytext()所定义的内容,即’onclick="copytext()"’表示该可操作对象的交互操作。

第二生成模块250,用于根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。

其中,活动组件也可称为activity,activity是安卓中的一个应用组件,安卓应用显示的一个页面可以称为一个activity,一个安卓应用就是由多个activity所组成,不同的页面是不同的activity。用户通过activity可以与安卓应用进行交互。

在本实施例中,与安卓布局文档关联的活动组件可以是在从交互需求文档中获取目标页面的交互信息之后创建的。

优选的,安卓布局文档也可以为预先创建的。

例如,若安卓布局文档为payment_success.xml,则在activity中,通过setcontentview(r.layout.payment_success)将该activity与payment_success.xml进行关联,得到与该安卓布局文档关联的活动组件。可以理解的,若要关联的安卓布局文档为其他命名的xml文件,则将setcontentview中的表示文件名称的payment_success替换为其他命名的xml文件。

根据交互信息在与安卓布局文档关联的活动组件中创建目标页面的交互代码可以是:根据交互信息包含的可操作对象的交互操作,在与安卓布局文档关联的活动组件中生成该可操作对象对应的交互函数。

例如,若点击a按钮时,所执行的操作为在当前窗口打开主页(openhomepageincurrentwindow),则在activity中创建如下点击事件的代码:

其中,上述代码表示a按钮子点击之后,打开homepage.class所表示的主页。

通过以上模块,对于一个安卓页面,可以得到表示该页面的xml布局文档以及与该xml布局文档关联的activity,从而得到了该页面的安卓代码。无需用户编写代码,就能够快速的生成安卓代码,提高开发的效率。

可选的,在本发明其他实施例中,所述装置还包括第一校验模块,所述第一校验模块用于:

所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,启动所述活动组件,接收对所述活动组件包括的预设可操作对象的交互操作;

获取所述交互操作的交互结果;

判断所述交互结果是否为预期交互结果;

若所述交互结果不为所述预期交互结果,输出第一运行错误提醒。

在本实施例中,在安卓代码生成之后,可以对生成的安卓代码进行交互操作的测试,以检测安卓代码的准确性。

其中,上述预设可操作对象是活动组件中存在交互操作的对象,例如,按钮,文本框,选择按钮等。

上述交互操作可以是点击、双击、悬停等交互操作。

上述交互结果可以是在预设可操作对象接收到交互操作之后所执行的操作,例如,页面跳转、新窗口开启页面,显示下拉菜单等。

预期交互结果可以是生成的代码运行正确时所产生的交互结果。

其中,输出的运行错误提醒可以是在运行界面输出的报错提醒。

通过本实施例,可以对生成的安卓代码中所包含的交互功能进行测试,并对不符合预期的交互进行反馈提醒,减少开发人员的工作量,提高开发效率。

可选的,在本发明其他实施例中,所述装置还包括第二校验模块,所述第二校验模块用于:

所述根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码之后,启动所述活动组件以显示所述目标页面;

从所述目标页面中获取显示图片,以及根据所述布局需求文档获取页面需求图片;

将所述显示图片与所述页面需求图片进行匹配;

若所述显示图片与所述页面需求图片的相似度低于预设相似度,输出第二运行错误提醒。

其中,显示图片与页面需求图片可以是对应的图片。具体的,显示图片可以是从目标页面中截取的全景图片,例如,对目标页面的完整截图,同时,获取的页面需求图片可以是界面设计图,即设计的目标页面对应的显示样式;或者显示图片也可以是从目标页面中截取的部分图片,例如,某个按钮的图片,相应的,获取的页面需求图片也为该按钮设计时的图片。

其中,上述预设相似度可以根据需要预先设定,预设相似度用于判断显示图片与页面需求图片的相似度是否较低。例如,预设相似度为80%。

其中,第二运行错误提醒可以是在运行界面中弹出显示框,在弹出框中显示的相似度匹配结果。

通过本实施例,在安卓代码生成之后,无需开发人员手动检查比对安卓代码所表示的页面与设计时的页面是否一致,通过图像对比进行匹配,当相似度较低时,表明生成的安卓代码可能存在错误,进行提醒。当开发的页面较多时,通过本实施例,可以快速地对生成的代码进行检查,减少人力耗费,提高开发效率,加速开发的进度。

可选的,在本发明其他实施例中,所述装置还包括标记显示模块。

所述标记显示模块,用于若所述显示图片与所述页面需求图片的相似度低于预设相似度,在所述目标页面中对所述显示图片的显示范围进行标记显示。

例如,显示图片为按钮,则显示图片包括的范围则为该按钮的显示范围;或者,显示图片为背景图片,则显示图片包括的范围为背景图片的显示范围。

其中标记显示可以是高亮颜色画圈标记,或者是通过不同的透明度进行显示。

在本实施例中,在显示图片与页面需求图片的相似度低于预设相似度时,在目标页面中对显示图片的显示范围进行标记显示,可以使开发人员直观的了解到所生成的代码与设计时的页面的不同之处,有利于快速调整生成的代码,提高开发的效率。

本发明提供的代码生成装置通过第一获取模块获取目标页面的需求文档,所述需求文档包括布局需求文档和交互需求文档;第二获取模块从所述布局需求文档中获取所述目标页面的页面元素;第一生成模块将所述目标页面的页面元素转换为所述目标页面的安卓页面元素代码,在安卓布局文档中添加所述安卓页面元素代码;第三获取模块从所述交互需求文档中获取所述目标页面的交互信息;第二生成模块根据所述交互信息在与所述安卓布局文档关联的活动组件中创建所述目标页面的交互代码。由于得到的安卓布局文档包含从目标页面的页面元素转换的安卓页面元素代码,且与安卓布局文档关联的活动组件包含表达目标页面交互信息的交互代码,因此该安卓布局文档以及与该安卓布局文档关联的活动组件目标页面为实现所述目标页面的安卓代码。从而本发明,无需用户一一编写安卓代码,就能够生成安卓代码,实现了缩短代码开发的时间,提高代码开发的效率的目的。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

如图3所示,图3是本发明实现代码生成方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。

所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、监控设备等终端。

所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。

所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如ram(random-accessmemory,随机存取存储器)、fifo(firstinfirstout,先进先出存储器)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、tf卡(trans-flashcard)、智能媒体卡(smartmediacard)、安全数字卡(securedigitalcard)、快闪存储器卡(flashcard)等储存设备等等。

所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图3中所述的各个单元是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种代码生成方法。所述处理器33又称中央处理器(cpu,centralprocessingunit),是一块超大规模的集成电路,是运算核心(core)和控制核心(controlunit)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1