一种代码生成方法及装置与流程

文档序号:25585494发布日期:2021-06-22 17:00阅读:99来源:国知局
本公开涉及代码处理
技术领域
:,尤其涉及一种代码生成方法及装置。
背景技术
::相关技术中,在使用androidstudio开发软件过程中,针对诸如ui(userinterface,界面)的设计文件中的android组件需要编写findviewbyid、setclicklistener等代码,例如对于activity组件、fragment组件、dialog(对话框)组件等组件需要编码findviewbyid、setclicklistener等代码,以控制针对组件的操作,如findviewbyid用于从xml文件中获取组件名称,setclicklistener用于设置针对组件的监听操作,因为针对不同类型的组件都需要编码相类似代码,从而导致大量重复代码的编码,降低开发效率。其中activity组件用于提供一个屏幕,以辅助用户完成某项任务,fragment组件是activity组件中的一个组件,可以将多个fragment组件组合在一个activity组件中来构建多窗格ui,以及在多个activity中重复使用某个fragment组件。技术实现要素:本公开提供一种代码生成方法及装置,以至少解决相关技术中编写重复代码导致的开发效率降低的问题。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种代码生成方法,包括:获取待处理对象的文件标识信息;基于所述文件标识信息,获得所述文件标识信息指向的设计文件;确定所述设计文件中的目标对象以及所述目标对象的属性信息;响应代码生成指令,调用预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码,所述至少描述目标对象的代码为所述待处理对象的代码,以利用所述待处理对象的代码控制所述待处理对象的使用。可选的,所述获取待处理对象的文件标识信息包括:获取用户针对所述待处理对象的初始代码的第一操作数据,所述第一操作数据用于表示针对初始代码中一待处理对象的文件标识信息的选中操作;基于所述第一操作数据,获得所述待处理对象的文件标识信息。可选的,所述确定所述设计文件中的目标对象以及所述目标对象的属性信息包括:获得所述设计文件中每个组成部分的属性信息;在显示区域中显示每个组成部分的属性信息;获取用户针对所述显示区域中显示的组成部分的第二操作数据;将所述第二操作数据对应的组成部分确定为所述目标对象以及将所述第二操作数据对应的组成部分的属性信息确定为所述目标对象的属性信息。可选的,所述响应代码生成指令,调用预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码包括:响应所述代码生成指令,根据预设代码规则,将预设固定内容与所述属性信息对应的内容进行拼接,得到目标对象代码,所述目标对象代码用于描述目标对象;将所述目标对象代码插入到所述待处理对象的初始代码中,以得到至少描述目标对象的代码。可选的,所述确定所述设计文件中的目标对象以及所述目标对象的属性信息通过第一线程执行,所述响应代码生成指令,调用预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码包括:在通过所述第一线程确定所述设计文件中所有目标对象的属性信息后,响应所述代码生成指令,通过所述第一线程调用所述预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码。可选的,所述确定所述设计文件中的目标对象以及所述目标对象的属性信息通过第一线程执行,所述方法还包括:在通过所述第一线程确定所述设计文件中的部分目标对象的属性信息后,触发所述代码生成指令;所述响应代码生成指令,调用预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码包括:响应所述代码生成指令,启用第二线程,通过所述第二线程调用所述预设代码生成方法,根据所述部分目标对象的属性信息,生成至少描述目标对象的代码。可选的,所述方法还包括:通过所述第二线程调用所述预设代码生成方法,根据所述部分目标对象的属性信息,生成至少描述目标对象的代码的同时,通过所述第一线程确定所述设计文件中的剩余目标对象以及所述剩余目标对象的属性信息;通过所述第二线程调用所述预设代码生成方法,根据所述剩余目标对象的属性信息,生成至少描述目标对象的代码。根据本公开实施例的第二方面,提供一种代码生成装置,包括:第一获取单元,被配置为执行获取待处理对象的文件标识信息;第二获取单元,被配置为执行基于所述文件标识信息,获得所述文件标识信息指向的设计文件;确定单元,被配置为执行确定所述设计文件中的目标对象以及所述目标对象的属性信息;生成单元,被配置为执行响应代码生成指令,调用预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码,所述至少描述目标对象的代码为所述待处理对象的代码,以利用所述待处理对象的代码控制所述待处理对象的使用。可选的,所述第一获取单元,被配置为执行获取用户针对所述待处理对象的初始代码的第一操作数据,所述第一操作数据用于表示针对初始代码中一待处理对象的文件标识信息的选中操作;基于所述第一操作数据,获得所述待处理对象的文件标识信息。可选的,所述确定单元,包括:获得子单元,被配置为执行获得所述设计文件中每个组成部分的属性信息;显示子单元,被配置为执行在显示区域中显示每个组成部分的属性信息;获取子单元,被配置为执行获取用户针对所述显示区域中显示的组成部分的第二操作数据;确定子单元,被配置为执行将所述第二操作数据对应的组成部分确定为所述目标对象以及将所述第二操作数据对应的组成部分的属性信息确定为所述目标对象的属性信息。可选的,所述生成单元,被配置为执行响应所述代码生成指令,根据预设代码规则,将预设固定内容与所述属性信息对应的内容进行拼接,得到目标对象代码,所述目标对象代码用于描述目标对象;将所述目标对象代码插入到所述待处理对象的初始代码中,以得到至少描述目标对象的代码。可选的,所述确定单元通过第一线程执行确定所述设计文件中的目标对象以及所述目标对象的属性信息,所述生成单元,被配置为执行在所述确定单元通过所述第一线程确定所述设计文件中所有目标对象的属性信息后,响应所述代码生成指令,通过所述第一线程调用所述预设代码生成方法,根据所述目标对象的属性信息,生成至少描述目标对象的代码。可选的,所述确定单元通过第一线程执行确定所述设计文件中的目标对象以及所述目标对象的属性信息,所述装置还包括:触发单元,被配置为执行在所述确定单元通过所述第一线程确定所述设计文件中的部分目标对象的属性信息后,触发所述代码生成指令;所述生成单元,被配置为执行响应所述代码生成指令,启用第二线程,通过所述第二线程调用所述预设代码生成方法,根据所述部分目标对象的属性信息,生成至少描述目标对象的代码。可选的,所述生成单元通过所述第二线程调用所述预设代码生成方法,根据所述部分目标对象的属性信息,生成至少描述目标对象的代码的同时,所述确定单元被配置为通过所述第一线程确定所述设计文件中的剩余目标对象以及所述剩余目标对象的属性信息;所述生成单元被配置为通过所述第二线程调用所述预设代码生成方法,根据所述剩余目标对象的属性信息,生成至少描述目标对象的代码。根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述代码生成方法。根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述代码生成方法。根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序令被处理器执行时实现上述代码生成方法。本公开的实施例提供的技术方案至少带来以下有益效果:上述代码生成方法、装置、电子设备及存储介质,获取待处理对象的文件标识信息,基于文件标识信息,获得文件标识信息指向的设计文件,确定设计文件中的目标对象以及目标对象的属性信息,响应代码生成指令,调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码,至少描述目标对象的代码为待处理对象的代码,以利用待处理对象的代码控制待处理对象的使用,这样针对任一待处理对象的设计文件来说,能够自动描述设计文件中的目标对象,以在待处理对象的代码中自动加入目标对象的描述,省去开发人员针对不同目标对象编写大量重复代码的环节,从而提高开发效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。图1是根据一示例性实施例示出的一种代码生成方法的流程图;图2是根据一示例性实施例示出的一种显示属性信息的示意图;图3是根据一示例性实施例示出的一种代码生成装置的装置框图;图4是根据一示例性实施例示出的另一种代码生成装置的装置框图;图5是根据一示例性实施例示出的电子设备的示意图。具体实施方式为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。图1是根据一示例性实施例示出的一种代码生成方法的流程图,可以包括以下步骤:在步骤s11中,获取待处理对象的文件标识信息。其中待处理对象的文件标识信息用于指向待处理对象的设计文件,待处理对象的文件标识信息作为待处理对象的设计文件的标识,其可以是但不限于是待处理对象的设计文件的文件名称、文件存储路径等能够唯一指向设计文件的信息。待处理对象的设计文件可以采用但不限于采用xml(extensiblemarkuplanguage,可扩展标记语言),以xml形式将组件的内容(如属性信息)写入到设计文件中。本实施例中获取待处理对象的文件标识信息的一种方式如下:获取用户针对待处理对象的初始代码的第一操作数据,第一操作数据用于表示针对初始代码中一待处理对象的文件标识信息的选中操作;基于第一操作数据,获得待处理对象的文件标识信息。待处理对象的初始代码是用户手动编写但缺少目标对象的属性信息的代码,本实施例获得文件标识信息的最终目的是为了根据目标对象的属性信息,生成用于描述目标对象的目标对象代码,以完善待处理对象的代码,使得待处理对象的代码包含目标对象代码。第一操作数据可以是针对显示区域所显示的初始代码中内容进行选中时产生的数据,例如通过监测显示区域中可移动标识(如鼠标或光标)的移动,在监测移动过程中确定可移动标识选中初始代码中的一个文件标识信息,则将可移动标识选中的文件标识信息确定为待处理对象的文件标识信息。针对上述获取待处理对象的文件标识信息的方式,本实施例预先构建一个用于对待处理对象的初始代码进行操作的目标类,该目标类具备监控可移动标识的操作的功能,通过对可移动标识的监控得到文件标识信息。如待处理对象为一个界面,该界面的初始代码需要进行代码完善,例如该界面的初始代码中缺少activity组件、fragment组件、dialog(对话框)组件的代码,则在完善界面的初始代码过程中需要通过预先构建的目标类来获得界面的文件标识信息,其中目标类的一种可行方式如下:针对androidstudio这一运行环境开发一个用于自动生成代码的插件,该插件能够自动生成界面中组件的代码,以完善界面的初始代码,在插件开发过程中,针对插件创建一个action类,action类继承自basegenerateaction类,在action类的actionperformed()方法中通过anactionevent参数,获取editor对象,通过editor对象的getselectionmodel方法获取selectionmodel对象,该selectionmodel对象用于监测通过可移动标识所选中的内容,以从selectionmodel对象中获取到待处理对象的文件标识信息,由此在本实施例中在监测可移动标识的移动过程中,可调用action类的actionperformed()方法,以借助actionperformed()方法中的editor对象的getselectionmodel方法获取selectionmodel对象,以得到待处理对象的文件标识信息,实现通过插件中的action类获得文件标识信息,插件中的action类则为目标类。在步骤s12中,基于文件标识信息,获得文件标识信息指向的设计文件。设计文件中含有待处理对象的各组成部分,且设计文件中记录有待处理对象的各组成部分的属性信息,例如设计文件以xml形式记录各组成部分的属性信息,属性信息包括但不限于id,name,isselected,isclickable。name参数默认与id一致,表示组成部分的属性名称,能够作为组成部分的标识信息,可以自定义;isselected表示是否选中,即是否需要生成代码;isclickable表示是否创建该组成部分的点击事件。因本实施例针对设计文件中的各组成部分来说,需要从各组成部分中确定出需自动生成代码的组成部分(简称目标对象),设计文件作为存储组成部分的对象,所以在获取到文件标识信息后,获得文件标识信息指向的设计文件。filenameindex.getfilesbyname()方法能够利用文件名称获取到对应的文件,因此本实施例中若文件标识信息为设计文件的文件名称,可通过filenameindex.getfilesbyname()方法利用设计文件的文件名称,获取到设计文件,filenameindex.getfilesbyname()方法可绑定在上述action类中。若文件标识信息为设计文件的文件存储路径,可通过文件存储路径获取到设计文件,如果文件存储路径对应有多个文件,则可以借助文件名称筛选出设计文件。在步骤s13中,确定设计文件中的目标对象以及目标对象的属性信息。目标对象是从设计文件的所有组成部分中选择的需生成代码的一个组成部分,设计文件中可能有多个组成部分需生成代码,本实施例可从设计文件中确定出所有需生成代码的目标对象,并得到目标对象的属性信息,如上述属性信息包括但不限于id,name,isselected,isclickable。在本实施例中,确定目标对象并得到属性信息的一种方式如下:获得设计文件中每个组成部分的属性信息;在显示区域中显示每个组成部分的属性信息;获取用户针对显示区域中显示的组成部分的第二操作数据;将第二操作数据对应的组成部分确定为目标对象以及将第二操作数据对应的组成部分的属性信息确定为目标对象的属性信息。针对设计文件,遍历设计文件中的所有内容,以得到设计文件中每个组成部分的属性信息,例如设计文件以标签形式存储所有组成部分,一个标签(对应一个组成部分)中可以嵌套其他标签,因此本实施例可采用但不限于采用递归方式读取设计文件中的组成部分,以得到每个组成部分的属性信息。在得到每个组成部分的属性信息后,将每个组成部分的属性信息显示在显示区域中,如图2所示的显示方式。为了能够显示每个组成部分的属性信息,创建一个dialog类,dialog类继承自jdialog类,使用form的方式来定义显示区域在显示属性信息时的布局。由于组成部分的属性信息不是固定的,所以在dialog类中需要使用jtable类来展示这些内容,例如针对存储组成部分的属性信息的数据集合进行逐行遍历,读取每个组成部分的属性信息,将读取到的数据保存在一个二维数组中,这样在显示过程中可从二维数组中获取对应的组成部分的属性信息,以显示在显示区域。用户针对显示区域显示的组成部分的第二操作数据用于从所有组成部分中确定出目标对象,针对显示区域显示的组成部分的操作可以是但不限于是点选操作,如图2中通过点选操作选中作为目标对象的组成部分以及通过点选操作选择目标对象的属性信息,从而实现基于针对显示区域显示的组成部分的第二操作数据确定出目标对象和目标对象的属性信息。例如对于图2中id为root_view的组成部分来说,其能够作为目标对象,且其属性信息包括:id,name,isselected(取值表示选中),isclickable(取值表示创建点击事件),针对图2中id为commodity_img的组成部分来说,也能够作为目标对象,但其属性信息包括:id,name,isselected(取值表示选中),因为isclickable没有被点选,所以不包括这一属性。在本实施例中,获取文件标识信息、获得文件标识信息指向的设计文件以及显示属性信息可通过特定组件实现,如在选中文件标识信息且监测到右键操作后在显示区域中显示含有特定组件的操作菜单,在触发特定组件后与特定组件绑定的action类被触发,以调用action类的actionperformed()方法,以借助actionperformed()方法中的editor对象的getselectionmodel方法获取selectionmodel对象,以得到待处理对象的文件标识信息。然后通过filenameindex.getfilesbyname()方法获取到设计文件,通过filenameindex.getfilesbyname()方法以递归方式读取设计文件中的组成部分,以得到每个组成部分的属性信息。每个组成部分的属性信息在dialog类的jtable类中存储,如以二维数组形式存储,在显示过程中可从二维数组中获取对应的组成部分的属性信息,以显示在显示区域。除上述通过监测可移动标识的移动得到文件标识信息和点选操作确定目标对象之外,本实施例还可以采用其他操作,如手势、接收到用户的语音数据等来得到文件标识信息和确定目标对象,本实施例不再一一说明。在步骤s14中,响应代码生成指令,调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码,至少描述目标对象的代码为待处理对象的代码,以利用待处理对象的代码控制待处理对象的使用,其中控制待处理的使用可以是利用待处理对象的代码控制待处理对象的显示和/或响应针对待处理对象中目标对象的操作,如响应针对待处理对象中目标对象的点击操作等。代码生成指令是在确定出设计文件中的所有目标对象的属性信息后生成,如针对图2来说,在监测到与代码生成指令相对应的组件被触发,如“ok”组件被触发,该组件绑定的代码生成指令被调用,从而执行代码生成指令的响应。预设代码生成方法是与代码生成指令绑定的以自动生成代码的方法,通过调用预设代码生成方法能够自动根据目标对象的属性信息,生成至少描述目标对象的代码,描述目标对象是代码中自动加入的目标对象的代码,以通过描述目标对象对目标对象的显示和操作中的至少一种进行控制,如调用writecommandaction.runwritecommandaction()方法生成目标对象代码并将其写入到待处理对象的初始代码中,过程如下:根据预设代码规则,将预设固定内容与属性信息对应的内容进行拼接,得到目标对象代码,将目标对象代码插入到待处理对象的初始代码中,以得到至少描述目标对象的代码,使得初始代码中自动加入针对目标对象的描述,完成对初始代码的完善,其中,描述目标对象包括对目标对象的布局和操作进行描述,如对目标对象在待处理对象中的显示(如在待处理对象中的位置、目标对象的尺寸)和针对目标对象进行何种操作进行描述,这样在将目标对象代码插入到初始代码后得到至少描述目标对象的代码,完成待处理对象的代码中目标对象代码的自动生成。在插入过程中可以调用editor的getdocument().insertstring()方法进行代码插入。预设代码规则用于指示拼接方式(如先后顺序等等)、不同类型内容在代码中的书写规范等等,针对不同代码提供方来说,预设代码规则可能会有所不同,本实施例不再一一举例说明。属性信息对应的内容为属性信息中各参数的取值,如属性信息包括但不限于id,name,isselected,isclickable,则属性信息对应的内容为这些参数的取值,在本实施例中jtable类的二维数组中也能够存储目标对象的属性信息,在响应代码生成指令过程中,能够从jtable类的二维数组中获取目标对象的属性信息对应的内容,以完成目标对象的属性信息的自动获取和拼接。上述代码生成方法,获取待处理对象的文件标识信息,基于文件标识信息,获得文件标识信息指向的设计文件,确定设计文件中的目标对象以及目标对象的属性信息,响应代码生成指令,调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码,至少描述目标对象的代码为待处理对象的代码,以利用待处理对象的代码控制待处理对象的使用,这样针对任一待处理对象的设计文件来说,能够自动描述设计文件中的目标对象,以在待处理对象的代码中自动加入目标对象的描述,省去开发人员针对不同目标对象编写大量重复代码的环节,从而提高开发效率。在本实施例中,上述确定设计文件中的目标对象以及目标对象的属性信息可以通过第一线程执行,在通过第一线程确定设计文件中所有目标对象的属性信息后,响应代码生成指令,通过第一线程调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码。在通过第一线程确定设计文件中所有目标对象的属性信息后,触发代码生成指令。例如在以上述图2所示界面选择目标对象以及目标对象的属性信息,如果监测到界面中的“ok”组件被触发(如被点击),确定第一线程得到设计文件中所有目标对象的属性信息,触发代码生成指令,其中代码生成指令可以与界面中的“ok”组件关联,如果监测到界面中的“ok”组件被触发,与其关联的代码生成指令被自动触发。上述界面中的“ok”组件是否被触发是本实施例中确定第一线程得到设计文件中所有目标对象的属性信息的一种可行方式,在实际应用中还可以采用其他可行方式,例如将第一线程确定设计文件中所有目标对象的属性信息与一个第一预设动作相关联,如预设姿态、预设文本内容中的至少一种相关联,如果监测到第一预设动作,确定第一线程得到设计文件中所有目标对象的属性信息。因代码生成过程是一个相对来说较为耗时的操作,本实施例提供的代码生成方法还可以通过第一线程确定目标对象的属性信息,通过第二线程调用预设代码生成方法,第一线程和第二线程可以并行同时执行,其过程如下:确定设计文件中的目标对象以及目标对象的属性信息通过第一线程执行,在通过第一线程确定设计文件中的部分目标对象的属性信息后,触发代码生成指令;响应代码生成指令,启用第二线程,通过第二线程调用预设代码生成方法,根据部分属性信息,生成至少描述目标对象的代码,以通过一个独立线程完成代码的自动生成,从而降低耗时,提高开发效率。并且本实施例的代码生成是在编译之前完成,相对于在编译过程中生成代码,提高编译速度。在通过第一线程确定设计文件中的部分目标对象的属性信息后,启用第二线程,以通过第二线程来调用预设代码生成方法生成代码,对于设计文件中的剩余目标对象来说,可以继续获取剩余目标对象的属性信息以在代码中加入剩余目标对象的描述,相对应的本实施例提供的代码生成方法还可以包括:通过第二线程调用预设代码生成方法,根据部分目标对象的属性信息,生成至少描述目标对象的代码的同时,通过第一线程确定设计文件中的剩余目标对象以及剩余目标对象的属性信息;通过第二线程调用预设代码生成方法,根据剩余目标对象的属性信息,生成至少描述目标对象的代码,这样通过第二线程对已经得到的目标对象的属性信息进行处理的同时,能够通过第一线程继续确定剩余目标对象的属性信息,从而实现一边调用预设代码生成方法进行处理,一边得到目标对象的属性信息,提高开发效率。在本实施例中,通过第二线程可对第一线程先后得到的两部分目标对象的属性信息(如先得到的部分目标对象的属性信息和后得到的剩余目标对象的属性信息)进行处理,在待处理对象的代码中加入先后得到的两部分目标对象的属性信息的描述。例如通过第二线程分别生成这两部分目标对象的目标对象代码,每部分目标对象的目标对象代码用于描述同一部分目标对象,如对同一部分目标对象的显示和操作进行描述。其中设计文件中的部分目标对象可以是设计文件中至少一个目标对象,如监测到第一线程从设计文件中选择一个目标对象且确定该目标对象的属性信息后,启用第二线程。当然也可以是在监测到第一线程确定多个目标对象的属性信息且还没有确定所有目标对象的属性信息前,启用第二线程,使得第二线程能够先处理部分目标对象的属性信息。多个目标对象可以是设计文件中预设比例的目标对象,如预设比例可以是50%,以在得到设计文件中一半目标对象的属性信息后启用第二线程。对于第一线程确定目标对象的属性信息的监控可以是在监测到从图2所示界面中选中至少一个目标对象且完成对该目标对象的属性信息的选择,如在监测到从界面中选中一个目标对象且从该目标对象列表的所有属性信息中选中至少一个目标对象和该目标对象的属性信息后,启用第二线程。或者是将第一线程确定设计文件中的部分目标对象的属性信息与一个第二预设动作相关联,如果监测到第二预设动作,确定第一线程得到设计文件中的部分目标对象的属性信息,对于第二预设动作的说明请参见上述第一预设动作。图3是根据一示例性实施例示出的一种代码生成装置的框图。参照图3,该代码生成装置包括:第一获取单元10、第二获取单元20、确定单元30和生成单元40。第一获取单元10,被配置为执行获取待处理对象的文件标识信息。其中第一获取单元10,被配置为执行获取用户针对待处理对象的初始代码的第一操作数据,第一操作数据用于表示针对初始代码中一待处理对象的文件标识信息的选中操作;基于第一操作数据,获得待处理对象的文件标识信息。第二获取单元20,被配置为执行基于文件标识信息,获得文件标识信息指向的设计文件。确定单元30,被配置为执行确定设计文件中的目标对象以及目标对象的属性信息。确定单元30的一种可选结构是:确定单元30包括:获得子单元、显示子单元、获取子单元和确定子单元。获得子单元,被配置为执行获得设计文件中每个组成部分的属性信息。显示子单元,被配置为执行在显示区域中显示每个组成部分的属性信息。获取子单元,被配置为执行获取用户针对显示区域中显示的组成部分的第二操作数据。确定子单元,被配置为执行将第二操作数据对应的组成部分确定为目标对象以及将第二操作数据对应的组成部分的属性信息确定为目标对象的属性信息。生成单元40,被配置为执行响应代码生成指令,调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码,至少描述目标对象的代码为待处理对象的代码,以利用待处理对象的代码控制待处理对象的使用。如生成单元40,被配置为执行响应代码生成指令,根据预设代码规则,将预设固定内容与属性信息对应的内容进行拼接,得到目标对象代码,目标对象代码用于描述目标对象;将目标对象代码插入到待处理对象的初始代码中,以得到至少描述目标对象的代码。在本实施例中,确定单元30通过第一线程执行确定设计文件中的目标对象以及目标对象的属性信息,生成单元40,被配置为执行在确定单元通过第一线程确定设计文件中所有目标对象的属性信息后,响应代码生成指令,通过第一线程调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码。上述代码生成装置,在获取待处理对象的文件标识信息,基于文件标识信息,获得文件标识信息指向的设计文件,确定设计文件中的目标对象以及目标对象的属性信息,响应代码生成指令,调用预设代码生成方法,根据目标对象的属性信息,生成至少描述目标对象的代码,至少描述目标对象的代码为待处理对象的代码,以利用待处理对象的代码控制待处理对象的使用,这样针对任一待处理对象的设计文件来说,能够自动描述设计文件中的目标对象,以在待处理对象的代码中自动加入目标对象的描述,省去开发人员针对不同目标对象编写大量重复代码的环节,从而提高开发效率。图4是根据一示例性实施例示出的一种代码生成装置的框图。参照图4,该代码生成装置还包括:触发单元50。确定单元通过第一线程执行确定设计文件中的目标对象以及目标对象的属性信息,触发单元50,被配置为执行在确定通过第一线程确定设计文件中的部分目标对象的属性信息后,触发代码生成指令;生成单元40,被配置为执行响应代码生成指令,启用第二线程,通过第二线程调用预设代码生成方法,根据部分目标对象的属性信息,生成至少描述目标对象的代码。并且本实施例的代码生成是在编译之前完成,相对于在编译过程中生成代码,提高编译速度。其中,生成单元40通过第二线程调用预设代码生成方法,根据部分目标对象的属性信息,生成至少描述目标对象的代码的同时,确定单元30被配置为通过第一线程确定设计文件中的剩余目标对象以及剩余目标对象的属性信息;生成单元40被配置为通过第二线程调用预设代码生成方法,根据剩余目标对象的属性信息,生成至少描述目标对象的代码。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。本示例性实施例还提供一种电子设备,其结构如图5所示,图5所示电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电力组件506,多媒体组件505,音频组件510,输入/输出(i/o)的接口512,传感器组件514,以及通信组件516。处理组件502通常控制电子设备500的整体操作,诸如与显示,数据通信和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述代码生成方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体组件,以方便多媒体组件505和处理组件502之间的交互。存储器504被配置为存储各种类型的数据以支持在设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或代码生成方法的指令,设计文件、目标对象的属性信息等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。多媒体组件505包括在电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp),如利用屏幕显示数据校验结果。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件505包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(mic),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。i/o接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述代码生成方法。在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的计算机可读存储介质可以是存储器,上述指令可由电子设备的处理器执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,计算机程序令被处理器执行时实现上述代码生成方法。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1