CN110806873B - 目标控件确定方法、装置、电子设备及存储介质 - Google Patents
目标控件确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110806873B CN110806873B CN201911055435.5A CN201911055435A CN110806873B CN 110806873 B CN110806873 B CN 110806873B CN 201911055435 A CN201911055435 A CN 201911055435A CN 110806873 B CN110806873 B CN 110806873B
- Authority
- CN
- China
- Prior art keywords
- layout
- control
- target
- custom
- target control
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000005457 optimization Methods 0.000 abstract description 11
- 238000011161 development Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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)
- Stored Programmes (AREA)
Abstract
本公开实施例公开了一种目标控件确定方法、装置、电子设备及存储介质。该方法包括:接收待优化的目标控件的查找请求;获取所述查找请求中布局控件的标识;在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;获取所述自定义布局组合控件的布局文件;响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;输出所述目标控件的信息。通过本公开实施例,能够针对开发出的代码自动进行查找并找出待优化的目标控件,提升了代码优化效率,降低了开发成本,减少了人工的依赖,还能保证结果的完整性和正确性。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种目标控件确定方法、装置、电子设备及存储介质。
背景技术
随着软件开发项目的不断迭代,软件开发项目中会使用大量的自定义组合控件,以便对同一样式的用户界面布局进行封装,达到项目组件库的统一和复用的目的。但本公开发明人发现,由于个人编程风格不一,一些开发人员由于不知道可以对自定义组合控件进行优化,导致项目中存在很多自定义组合控件带有多余一层布局,所以对整个软件开发项目进行优化自定义组合控件是一项很有必要的工作。
发明内容
本公开实施例提供一种目标控件确定方法、装置、电子设备及存储介质。
第一方面,本公开实施例中提供了一种目标控件确定方法。
具体的,所述目标控件确定方法,包括:
接收待优化的目标控件的查找请求;
获取所述查找请求中布局控件的标识;
在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
获取所述自定义布局组合控件的布局文件;
响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;
输出所述目标控件的信息。
结合第一方面,本公开在第一方面的第一种实现方式中,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
结合第一方面和/或第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
结合第一方面、第一方面的第一种实现方式和/或第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,输出所述目标控件的信息,包括:
以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和/或第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,还包括:
接收所述树形结构中对所述布局文件的点击请求;
打开所述布局文件。第二方面,本公开实施例中提供了一种目标控件确定装置。
具体的,所述目标控件确定装置,包括:
第一接收模块,被配置为接收待优化的目标控件的查找请求;
第一获取模块,被配置为获取所述查找请求中布局控件的标识;
查找模块,被配置为在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
第二获取模块,被配置为获取所述自定义布局组合控件的布局文件;
第一确定模块,被配置为响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;
输出模块,被配置为输出所述目标控件的信息。
结合第二方面,本公开在第二方面的第一种实现方式中,所述第一接收模块之前,还包括:
展示模块,被配置为响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
第一产生模块,被配置为响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
结合第二方面和/或第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,所述第一接收模块之前,还包括:
第二产生模块,被配置为响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
结合第二方面、第二方面的第一种实现方式和/或第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述输出模块,包括:
展示子模块,被配置为以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和/或第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,还包括:
第二接收模块,被配置为接收所述树形结构中对所述布局文件的点击请求;
打开模块,被配置为打开所述布局文件。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,目标控件确定装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持目标控件确定装置执行上述第一方面中目标控件确定方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述目标控件确定装置还可以包括通信接口,用于目标控件确定装置与其他设备或通信网络通信。第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法。
第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储目标控件确定装置所用的计算机指令,其包含用于执行上述任一方法所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开实施例针对软件开发项目的代码,在接收到目标控件的查找请求后,获取查找请求中布局空间的标识,在预设代码范围内查找所请求的布局控件父类的自定义布局组合控件子类,获得自定义布局组合控件,并获得自定义布局组合控件的布局文件,响应于布局文件的根布局中未使用预设标签而确定该自定义布局组合控件子类为待优化的目标控件,进而输出目标控件的信息。通过本公开实施例,能够针对开发出的代码自动进行查找并找出待优化的目标控件,提升了代码优化效率,降低了开发成本,减少了人工的依赖,还能保证结果的完整性和正确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的目标控件确定方法的流程图;
图2示出根据图1所示实施方式的步骤S101之前产生查找请求部分的流程图;
图3示出根据本公开一实施方式的针对目标控件信息的操作部分的流程图;
图4示出了根据本公开一实施方式查找目标控件的结果展示示意图;
图5示出根据本公开一实施方式的目标控件确定装置的结构框图;
图6示出根据图5所示实施方式的第一接收模块501之前产生查找请求部分的结构框图;
图7示出根据本公开一实施方式的针对目标控件信息的操作部分的结构框图;
图8是适于用来实现根据本公开一实施方式的目标控件确定方法的电子设备的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出根据本公开一实施方式的目标控件确定方法的流程图。如图1所示,所述目标控件确定方法包括以下步骤:
在步骤S101中,接收待优化的目标控件的查找请求;
在步骤S102中,获取所述查找请求中布局控件的标识;
在步骤S103中,在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
在步骤S104中,获取所述自定义布局组合控件的布局文件;
在步骤S105中,响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;
在步骤S106中,输出所述目标控件的信息。
本实施例中,自定义布局组合控件是软件开发人员通过将相同或相似布局抽取而封装成的一个独立的控件,例如可以将登录页面上显示用户名输入框、密码输入框和登录按钮三个控件的区域单独抽取出来形成一个自定义布局组合控件。当再次需要时,可以将该自定义布局组合控件添加到布局文件中而进行复用,通过这种方式可以提高开发效率,降低开发成本。自定义布局组合控件可以是布局控件的子类。布局控件可以是软件开发***自带的布局控件,也可以是软件开发项目的软件开发人员自定义的布局父控件。例如,Android***自带的常用布局控件包括以下四类:LinearLayout线性布局、RelativeLayout相对布局、FrameLayout帧布局、ConstraintLayout约束布局。
软件开发人员还可以针对自定义布局组合控件自定义对应的布局文件,该布局文件可以是xml布局文件,在页面加载时,可以根据该布局文件中的内容展示该自定义布局组合控件。
用户界面通常会包括多个视图层级,由于自定义布局组合控件的布局文件是软件开发人员自定义的,在其布局文件中不可避免的会人为引入一些无用的父节点视图,这些父节点会增加布局层级,例如自定义FrameLayout组合控件,其xml文件父节点为FrameLayout,则可以使用<merge>标签替换根节点<FrameLayout>,用于在最后加载解析布局时,直接将<merge>标签下的子视图添加到自定义FrameLayout控件中,从而减少了对无用<FrameLayout>节点的解析和加载,如此减少了一层布局,也降低了布局解析时间。
待优化目标控件的查找请求中可以携带当前所要针对的布局控件的标识,在获得该查找请求中布局控件的标识后,可以在预设代码范围内查找父类为该布局控件的自定义布局组合控件。
软件开发人员可以针对自定义布局组合控件生成布局文件。在查找出来的父类为查找请求携带的布局控件的自定义组合控件时,进一步判断该自定义组合控件是否对应有布局文件,如果有布局文件,则可以查看该布局文件中的根布局中是否使用了预设标签,如果使用了该预设标签,则该自定义布局组合控件中并未引入无用的视图层级,无需进行优化;而如果该布局文件的根布局中未使用预设标签,则可以确定该自定义布局组合控件可能会引入无用的视图层级,因此该自定义布局组合控件为待优化的目标控件。
在一些实施例中,预设标签可以是合并标签,用于在一个布局包含另一个布局时,将这两个布局进行合并,以便减少一个视图层级。在Android***中,该预设标签可以是merge标签。
因此,利用本公开实施例可以从软件开发项目的代码中查找到待优化的目标控件,也即存在无用视图层级的目标控件。预设代码范围可以是整个软件开发项目对应的所有代码,也可以是该软件开发项目对应的部分代码,具体可根据实际情况而定,在此不做限制。本公开实施例针对软件开发项目中的部分或者全部代码,从中查找自定义布局组合控件(这是因为引入无用视图层级的通常是开发人员自定义的组合控件),并根据自定义布局组合控件的布局文件确定自定义布局组合控件是否为待优化的目标控件,也即确定自定义布局组合控件的布局中是否存在无用视图层级。
如果开发人员针对自定义布局组合控件定义了布局文件,并且在布局文件中引入了无用视图层级,则可以确定该自定义布局组合控件为待优化的目标控件。
在查找出待优化的目标控件之后,还可以输出该目标控件的信息。目标控件的信息包括但不限于待优化的目标控件的数量、目标控件的名称、目标控件对应的布局文件和/或如何进行优化的提示信息等。如何进行优化的提示信息例如可以是提示相关人员在目标控件的布局文件中使用预设标签等。本公开实施例针对软件开发项目的代码,在接收到目标控件的查找请求后,获取查找请求中布局空间的标识,在预设代码范围内查找所请求的布局控件父类的自定义布局组合控件子类,获得自定义布局组合控件,并获得自定义布局组合控件的布局文件,响应于布局文件的根布局中未使用预设标签而确定该自定义布局组合控件子类为待优化的目标控件,进而输出目标控件的信息。通过本公开实施例,能够针对开发出的代码自动进行查找并找出待优化的目标控件,提升了代码优化效率,降低了开发成本,减少了人工的依赖,还能保证结果的完整性和正确性。
在本实施例的一个可选实现方式中,如图2所示,所述步骤S101,即接收待优化的目标控件的查找请求的步骤之前,所述方法进一步包括以下步骤:
在步骤S201中,响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
在步骤S202中,响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
该可选的实现方式中,在需要对软件开发项目进行布局优化时,可以在预设代码范围内查找父类为布局控件的自定义布局组合控件,这是因为自定义布局组合控件通常是***自带的布局控件或者自定义布局父控件的子类,因此可以针对预设代码范围内的一个或者多个布局控件进行查找,找到父类为该布局控件的所有自定义布局组合控件。
相关人员可以直接在预设代码范围内的代码中对第一布局控件进行右键点击,进而在展示出的右击菜单列表中点击目标控件查找选项;***在检测到针对预设代码范围内的代码中第一布局控件上的右键点击事件时,可以展示包括目标控件查找选项的右击菜单列表,进而再检测到针对目标控件查找选项的点击事件后,可以产生待优化的目标控件的查找请求,该查找请求中可以包括该第一布局控件的标识,以便触发在该预设代码范围内自动查找父类为第一布局控件的自定义布局组合控件的流程。这种方式下,可以针对其中一个布局控件查找其子类为自定义布局组合控件的目标控件。
在本实施例的一个可选实现方式中,所述步骤S101,即接收待优化的目标控件的查找请求的步骤之前,所述方法进一步包括以下步骤:
响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
该可选的实现方式中,可以在展示软件开发项目代码的窗口菜单栏中设置目标控件查找选项,相关人员可以在该窗口菜单栏中点击该目标控件查找选项后,自动触发查找父类为用户自定义的至少一个第二布局控件或者***默认的至少一个第三布局控件的自定义布局组合控件的流程。第二布局控件可以是相关人员自定义的一个或者多个布局控件,第三布局控件可以是***默认的一个或多个布局控件,例如相关人员在点击目标控件查找选项后,可以自动弹出用于配置待查找的第二布局控件的窗口,该窗口中可以展示所有***自带的布局控件的可选项,该窗口还可以包括能够自行输入自定义布局父控件的选项。相关人员通过该弹出的窗口配置待查找的第二布局控件之后,可以通过点击“确定”等按钮而触发自动查找父类为第二布局控件的自定义布局组合控件的流程。而如果用户没有配置第二布局控件的情况下,可以针对***默认的第三布局控件进行查找。通过这种方式,可以针对其中一种或多种布局控件查找其子类为自定义布局组合控件的目标控件。
在本实施例的一个可选实现方式中,所述输出所述目标控件的信息的步骤,包括:
以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
该可选的实现方式中,目标控件的信息可以在树形结构中展示。树形结构的根节点可以包括待优化的目标控件的数量,叶节点可以包括待优化的目标控件的布局文件,中间节点可以包括目标控件以及目标控件的父类等信息,目标控件以及目标控件的父类在树形结构中以层级结构展示,也即父类为目标控件的上一层节点,而目标控件为父类的下一层节点。
在本实施例的一个可选实现方式中,如图3所示,所述方法进一步还包括以下步骤:
在步骤S301中,接收所述树形结构中对所述布局文件的点击请求;
在步骤S302中,打开所述布局文件。
该可选的实现方式中,相关人员可以通过点击树形结构中展示出的布局文件,来打开待优化的目标控件的布局文件,进而直接针对该布局文件进行修改,以便优化软件开发项目的布局。
图4示出了根据本公开一实施方式查找目标控件的结果展示示意图。如图4所示,相关人员针对代码中的Ralativelayout这个父类布局控件进行右键点击后,界面上展示出右键点击菜单列表,该菜单列表的下方包括目标控件查找选项(Find UI optimization),点击该目标控件查找选项后,在界面下方展示出包括目标控件信息的树形结构。该树形结构的最上层展示了所针对的父类布局控件Ralativelayout,还展示了所查找出的待优化的目标控件的数据为3,该3个目标控件分别为OpenshoptipOverLayView、NaposActionBar和SettingTopView,这三个目标控件下方展示的是对应的布局文件;其中,OpenshoptipOverLayView和SettingTopView上层还展示了其父类。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5示出根据本公开一实施方式的目标控件确定装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,所述目标控件确定装置包括:
第一接收模块501,被配置为接收待优化的目标控件的查找请求;
第一获取模块502,被配置为获取所述查找请求中布局控件的标识;
查找模块503,被配置为在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
第二获取模块504,被配置为获取所述自定义布局组合控件的布局文件;
确定模块505,被配置为响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;
输出模块506,被配置为输出所述目标控件的信息。
本实施例中,自定义布局组合控件是软件开发人员通过将相同或相似布局抽取而封装成的一个独立的控件,例如可以将登录页面上显示用户名输入框、密码输入框和登录按钮三个控件的区域单独抽取出来形成一个自定义布局组合控件。当再次需要时,可以将该自定义布局组合控件添加到布局文件中而进行复用,通过这种方式可以提高开发效率,降低开发成本。自定义布局组合控件可以是布局控件的子类。布局控件可以是软件开发***自带的布局控件,也可以是软件开发项目的软件开发人员自定义的布局父控件。例如,Android***自带的常用布局控件包括以下四类:LinearLayout线性布局、RelativeLayout相对布局、FrameLayout帧布局、ConstraintLayout约束布局。
软件开发人员还可以针对自定义布局组合控件自定义对应的布局文件,该布局文件可以是xml布局文件,在页面加载时,可以根据该布局文件中的内容展示该自定义布局组合控件。
用户界面通常会包括多个视图层级,由于自定义布局组合控件的布局文件是软件开发人员自定义的,在其布局文件中不可避免的会人为引入一些无用的父节点视图,这些父节点会增加布局层级,例如自定义FrameLayout组合控件,其xml文件父节点为FrameLayout,则可以使用<merge>标签替换根节点<FrameLayout>,用于在最后加载解析布局时,直接将<merge>标签下的子视图添加到自定义FrameLayout控件中,从而减少了对无用<FrameLayout>节点的解析和加载,如此减少了一层布局,也降低了布局解析时间。
待优化目标控件的查找请求中可以携带当前所要针对的布局控件的标识,在获得该查找请求中布局控件的标识后,可以在预设代码范围内查找父类为该布局控件的自定义布局组合控件。
软件开发人员可以针对自定义布局组合控件生成布局文件。在查找出来的父类为查找请求携带的布局控件的自定义组合控件时,进一步判断该自定义组合控件是否对应有布局文件,如果有布局文件,则可以查看该布局文件中的根布局中是否使用了预设标签,如果使用了该预设标签,则该自定义布局组合控件中并未引入无用的视图层级,无需进行优化;而如果该布局文件的根布局中未使用预设标签,则可以确定该自定义布局组合控件可能会引入无用的视图层级,因此该自定义布局组合控件为待优化的目标控件。
在一些实施例中,预设标签可以是合并标签,用于在一个布局包含另一个布局时,将这两个布局进行合并,以便减少一个视图层级。在Android***中,该预设标签可以是merge标签。
因此,利用本公开实施例可以从软件开发项目的代码中查找到待优化的目标控件,也即存在无用视图层级的目标控件。预设代码范围可以是整个软件开发项目对应的所有代码,也可以是该软件开发项目对应的部分代码,具体可根据实际情况而定,在此不做限制。本公开实施例针对软件开发项目中的部分或者全部代码,从中查找自定义布局组合控件(这是因为引入无用视图层级的通常是开发人员自定义的组合控件),并根据自定义布局组合控件的布局文件确定自定义布局组合控件是否为待优化的目标控件,也即确定自定义布局组合控件的布局中是否存在无用视图层级。
如果开发人员针对自定义布局组合控件定义了布局文件,并且在布局文件中引入了无用视图层级,则可以确定该自定义布局组合控件为待优化的目标控件。
在查找出待优化的目标控件之后,还可以输出该目标控件的信息。目标控件的信息包括但不限于待优化的目标控件的数量、目标控件的名称、目标控件对应的布局文件和/或如何进行优化的提示信息等。如何进行优化的提示信息例如可以是提示相关人员在目标控件的布局文件中使用预设标签等。本公开实施例针对软件开发项目的代码,在接收到目标控件的查找请求后,获取查找请求中布局空间的标识,在预设代码范围内查找所请求的布局控件父类的自定义布局组合控件子类,获得自定义布局组合控件,并获得自定义布局组合控件的布局文件,响应于布局文件的根布局中未使用预设标签而确定该自定义布局组合控件子类为待优化的目标控件,进而输出目标控件的信息。通过本公开实施例,能够针对开发出的代码自动进行查找并找出待优化的目标控件,提升了代码优化效率,降低了开发成本,减少了人工的依赖,还能保证结果的完整性和正确性。
在本实施例的一个可选实现方式中,如图6所示,所述第一接收模块501之前,还包括:
展示模块601,被配置为响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
第一产生模块602,被配置为响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
该可选的实现方式中,在需要对软件开发项目进行布局优化时,可以在预设代码范围内查找父类为布局控件的自定义布局组合控件,这是因为自定义布局组合控件通常是***自带的布局控件或者自定义布局父控件的子类,因此可以针对预设代码范围内的一个或者多个布局控件进行查找,找到父类为该布局控件的所有自定义布局组合控件。
相关人员可以直接在预设代码范围内的代码中对第一布局控件进行右键点击,进而在展示出的右击菜单列表中点击目标控件查找选项;***在检测到针对预设代码范围内的代码中第一布局控件上的右键点击事件时,可以展示包括目标控件查找选项的右击菜单列表,进而再检测到针对目标控件查找选项的点击事件后,可以产生待优化的目标控件的查找请求,该查找请求中可以包括该第一布局控件的标识,以便触发在该预设代码范围内自动查找父类为第一布局控件的自定义布局组合控件的流程。这种方式下,可以针对其中一个布局控件查找其子类为自定义布局组合控件的目标控件。
在本实施例的一个可选实现方式中,所述第一接收模块501之前,还包括:
第二产生模块,被配置为响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
该可选的实现方式中,可以在展示软件开发项目代码的窗口菜单栏中设置目标控件查找选项,相关人员可以在该窗口菜单栏中点击该目标控件查找选项后,自动触发查找父类为用户自定义的至少一个第二布局控件或者***默认的至少一个第三布局控件的自定义布局组合控件的流程。第二布局控件可以是相关人员自定义的一个或者多个布局控件,第三布局控件可以是***默认的一个或多个布局控件,例如相关人员在点击目标控件查找选项后,可以自动弹出用于配置待查找的第二布局控件的窗口,该窗口中可以展示所有***自带的布局控件的可选项,该窗口还可以包括能够自行输入自定义布局父控件的选项。相关人员通过该弹出的窗口配置待查找的第二布局控件之后,可以通过点击“确定”等按钮而触发自动查找父类为第二布局控件的自定义布局组合控件的流程。而如果用户没有配置第二布局控件的情况下,可以针对***默认的第三布局控件进行查找。通过这种方式,可以针对其中一种或多种布局控件查找其子类为自定义布局组合控件的目标控件。
在本实施例的一个可选实现方式中,所述输出模块506,包括:
展示子模块,被配置为以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
该可选的实现方式中,目标控件的信息可以在树形结构中展示。树形结构的根节点可以包括待优化的目标控件的数量,叶节点可以包括待优化的目标控件的布局文件,中间节点可以包括目标控件以及目标控件的父类等信息,目标控件以及目标控件的父类在树形结构中以层级结构展示,也即父类为目标控件的上一层节点,而目标控件为父类的下一层节点。
在本实施例的一个可选实现方式中,如图7所示,所述装置进一步还包括:
第二接收模块701,被配置为接收所述树形结构中对所述布局文件的点击请求;
打开模块702,被配置为打开所述布局文件。
该可选的实现方式中,相关人员可以通过点击树形结构中展示出的布局文件,来打开待优化的目标控件的布局文件,进而直接针对该布局文件进行修改,以便优化软件开发项目的布局。
本公开实施方式还提供了一种电子设备,如图8所示,包括至少一个处理器801;以及与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行以实现:
接收待优化的目标控件的查找请求;
获取所述查找请求中布局控件的标识;
在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
获取所述自定义布局组合控件的布局文件;
响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件;
输出所述目标控件的信息。
其中,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
其中,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
其中,输出所述目标控件的信息,包括:
以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
其中,还包括:
接收所述树形结构中对所述布局文件的点击请求;
打开所述布局文件。
具体地,处理器801、存储器802可以通过总线或者其他方式连接,图8中以通过总线连接为例。存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器801通过运行存储在存储器802中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现本公开实施例中的上述方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储航运网络运输的历史数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,电子设备可选地包括通信组件803,存储器802可选地包括相对于处理器801远程设置的存储器,这些远程存储器可以通过通信组件803连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器802中,当被一个或者多个处理器801执行时,执行本公开实施例中的上述方法。
上述产品可执行本公开实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本公开实施方式所提供的方法。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种目标控件确定方法,其特征在于,包括:
接收待优化的目标控件的查找请求;
获取所述查找请求中布局控件的标识;
在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
获取所述自定义布局组合控件的布局文件;
响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件,使用预设标签用于指示所述自定义布局组合控件中未引入无用的视图层级;
输出所述目标控件的信息。
2.根据权利要求1所述的方法,其特征在于,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
3.根据权利要求1所述的方法,其特征在于,接收待优化的目标控件的查找请求之前,还包括:
响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
4.根据权利要求1-3任一项所述的方法,其特征在于,输出所述目标控件的信息,包括:
以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收所述树形结构中对所述布局文件的点击请求;
打开所述布局文件。
6.一种目标控件确定装置,其特征在于,包括:
第一接收模块,被配置为接收待优化的目标控件的查找请求;
第一获取模块,被配置为获取所述查找请求中布局控件的标识;
查找模块,被配置为在预设代码范围内查找所述布局控件的子类,获得自定义布局组合控件;
第二获取模块,被配置为获取所述自定义布局组合控件的布局文件;
第一确定模块,被配置为响应于所述布局文件的根布局中未使用预设标签,确定所述自定义布局组合控件为待优化的所述目标控件,使用预设标签用于指示所述自定义布局组合控件中未引入无用的视图层级;
输出模块,被配置为输出所述目标控件的信息。
7.根据权利要求6所述的装置,其特征在于,所述第一接收模块之前,还包括:
展示模块,被配置为响应于检测到针对所述预设代码范围内第一布局控件而产生的右击事件,展示右击菜单列表;其中,所述右击菜单列表包括目标控件查找选项;
第一产生模块,被配置为响应于检测到针对所述目标控件查找选项的点击事件,产生所述查找请求;其中,所述查找请求用于请求查找父类为所述第一布局控件的所述自定义组合布局控件。
8.根据权利要求6所述的装置,其特征在于,所述第一接收模块之前,还包括:
第二产生模块,被配置为响应于检测到针对窗口菜单栏中目标控件查找选项的点击操作,产生所述查找请求;其中,所述查找请求用于请求查找父类为用户自定义的至少一个第二布局控件或者默认的至少一个第三布局控件的所述自定义组合布局控件。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述输出模块,包括:
展示子模块,被配置为以树形结构展示所述目标控件的信息;其中,所述树形结构的根节点包括待优化的所述目标控件的数量,叶节点包括待优化的所述目标控件的布局文件,中间节点包括所述目标控件以及目标控件的父类。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二接收模块,被配置为接收所述树形结构中对所述布局文件的点击请求;
打开模块,被配置为打开所述布局文件。
11.一种电子设备,其特征在于,包括存储器和至少一个处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述至少一个处理器执行以实现权利要求1-5任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055435.5A CN110806873B (zh) | 2019-10-31 | 2019-10-31 | 目标控件确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055435.5A CN110806873B (zh) | 2019-10-31 | 2019-10-31 | 目标控件确定方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806873A CN110806873A (zh) | 2020-02-18 |
CN110806873B true CN110806873B (zh) | 2023-07-21 |
Family
ID=69489915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911055435.5A Active CN110806873B (zh) | 2019-10-31 | 2019-10-31 | 目标控件确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806873B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538486B (zh) * | 2020-04-01 | 2024-02-13 | 北京小米松果电子有限公司 | 布局文件嵌套层数筛查方法、装置及电子设备 |
CN111580873B (zh) * | 2020-04-01 | 2023-11-07 | 北京小米松果电子有限公司 | 页面更新方法及装置、终端、存储介质 |
CN112528594B (zh) * | 2020-12-16 | 2024-04-12 | 上海尚往网络科技有限公司 | 控件标识方法和设备 |
CN114997120B (zh) * | 2021-03-01 | 2023-09-26 | 北京字跳网络技术有限公司 | 文档标签的生成方法、装置、终端和存储介质 |
CN115509665B (zh) * | 2022-09-29 | 2023-07-07 | 上海弘玑信息技术有限公司 | 一种录制窗口中控件的方法、装置、介质及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0105658D0 (en) * | 2001-03-08 | 2001-04-25 | Ibm | Method computer program and system for style sheet generation |
CN103399979A (zh) * | 2013-07-04 | 2013-11-20 | 电子科技大学 | 一种板级电路测试性模型自动生成方法 |
WO2017173914A1 (zh) * | 2016-04-07 | 2017-10-12 | 北京橙鑫数据科技有限公司 | 信息展示界面的变更方法和装置 |
CN107566502A (zh) * | 2017-09-14 | 2018-01-09 | 奇酷互联网络科技(深圳)有限公司 | 恢复桌面的方法、设备、移动终端以及计算机存储介质 |
CN110134895A (zh) * | 2019-05-10 | 2019-08-16 | 拉扎斯网络科技(上海)有限公司 | 页面展示方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428725B2 (en) * | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US10430180B2 (en) * | 2010-05-26 | 2019-10-01 | Automation Anywhere, Inc. | System and method for resilient automation upgrade |
US9015608B2 (en) * | 2012-07-16 | 2015-04-21 | Sap Se | Regenerating a user interface area |
-
2019
- 2019-10-31 CN CN201911055435.5A patent/CN110806873B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0105658D0 (en) * | 2001-03-08 | 2001-04-25 | Ibm | Method computer program and system for style sheet generation |
CN103399979A (zh) * | 2013-07-04 | 2013-11-20 | 电子科技大学 | 一种板级电路测试性模型自动生成方法 |
WO2017173914A1 (zh) * | 2016-04-07 | 2017-10-12 | 北京橙鑫数据科技有限公司 | 信息展示界面的变更方法和装置 |
CN107566502A (zh) * | 2017-09-14 | 2018-01-09 | 奇酷互联网络科技(深圳)有限公司 | 恢复桌面的方法、设备、移动终端以及计算机存储介质 |
CN110134895A (zh) * | 2019-05-10 | 2019-08-16 | 拉扎斯网络科技(上海)有限公司 | 页面展示方法、装置、电子设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于Ajax的Web通用报表生成工具的设计;陈媛;徐传运;孙曙光;;重庆工学院学报(自然科学版)(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110806873A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806873B (zh) | 目标控件确定方法、装置、电子设备及存储介质 | |
US11868231B2 (en) | System and method for evaluating code by a hybrid of local and cloud-based computers | |
US8972873B2 (en) | Multi-environment widget assembly, generation, and operation | |
US20180278494A1 (en) | Automated constructing method of cloud manufacturing service and cloud manufacturing system | |
US9772929B2 (en) | System and method for automated testing of software applications with dynamic user interfaces spanning multiple technologies | |
US11667033B2 (en) | Systems and methods for robotic process automation | |
CN108347358A (zh) | 云连接的自动化测试 | |
US8352913B2 (en) | Generating and resolving component names in an integrated development environment | |
US10031729B1 (en) | Method and system for implementing custom UI actions in a web application using hidden containers | |
US20080147675A1 (en) | Application server with automatic and autonomic application configuration validation | |
US20110246913A1 (en) | Automated User Interface Generator | |
CN111563220A (zh) | 业务网站项目构建方法、装置、计算机设备和存储介质 | |
US20110022943A1 (en) | Document object model (dom) application framework | |
US20180321831A1 (en) | Smart controls for user interface design and implementation | |
KR20180080535A (ko) | 웹 데이터 수집 장치 및 방법 | |
US11301366B2 (en) | Test automation systems and methods using logical identifiers | |
US20210117313A1 (en) | Language agnostic automation scripting tool | |
US9501298B2 (en) | Remotely executing operations of an application using a schema that provides for executable scripts in a nodal hierarchy | |
US9678856B2 (en) | Annotated test interfaces | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN115686606A (zh) | 一种项目依赖树的展示方法、装置、***及介质 | |
US20240020350A1 (en) | Method and system for navigation control | |
US10606569B2 (en) | Declarative configuration elements | |
US11093220B2 (en) | Generating interfaces from data and service definitions for developing applications | |
CN107077484B (zh) | 生成应用的网络浏览器视图 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |