CN110865812B - 一种用户界面识别方法和装置 - Google Patents

一种用户界面识别方法和装置 Download PDF

Info

Publication number
CN110865812B
CN110865812B CN201911019570.4A CN201911019570A CN110865812B CN 110865812 B CN110865812 B CN 110865812B CN 201911019570 A CN201911019570 A CN 201911019570A CN 110865812 B CN110865812 B CN 110865812B
Authority
CN
China
Prior art keywords
user interface
display image
determining
interface element
elements
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
Application number
CN201911019570.4A
Other languages
English (en)
Other versions
CN110865812A (zh
Inventor
张飞阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911019570.4A priority Critical patent/CN110865812B/zh
Publication of CN110865812A publication Critical patent/CN110865812A/zh
Application granted granted Critical
Publication of CN110865812B publication Critical patent/CN110865812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例公开了一种用户界面识别方法和装置,可以应用于各类游戏软件的用户界面识别,该方法中,通过分析待测软件运行时所展示的显示图像,通过遍历显示图像自动化的确定显示图像中包括的多个用户界面元素,其中至少包括第一用户界面元素和第二用户界面元素。通过确定出的该多个用户界面元素所在显示图像中区域的位置信息,可以确定多个用户界面元素所在区域的重叠情况,若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。由此可以高效准确的确定待测软件的用户界面元素超框情况。

Description

一种用户界面识别方法和装置
技术领域
本申请涉及数据处理领域,特别是涉及一种用户界面识别方法和装置。
背景技术
智能设备中可以配置各类软件,例如应用程序、小程序、APP等,通过运行软件为用户提供各类功能服务。软件在运行时,显示图像中可以包括各类用户界面(UserInterface,UI)元素或组合,例如虚拟按键、图像、文字等,显示图像中UI元素的显示情况是否混乱可以体现软件质量的好坏。
UI元素超框是一种常见的导致UI显示混乱的原因,UI元素超框是指在显示图像中,UI元素超出原本规定区域的情况,例如虚拟按键的文字过长,超出了该虚拟按键边框,UI元素超框会导致显示混乱,甚至会遮挡到其他UI元素,严重影响用户使用。
目前,主要采用人工的方式,通过肉眼检查软件中的UI元素超框。
发明内容
为了解决上述技术问题,本申请提供了一种用户界面识别方法和装置,可以高效准确的确定待测软件的用户界面元素超框情况。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种用户界面识别方法,所述方法包括:
对待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
确定所述多个用户界面元素所在区域的位置信息;
根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。
第二方面,本申请实施例提供了一种用户界面识别装置,所述装置包括确定单元和识别单元:
所述确定单元,用于对待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
所述确定单元,还用于确定所述多个用户界面元素所在区域的位置信息;
所述确定单元,还用于根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
所述识别单元,用于若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。
第三方面,本申请实施例还提供了一种用于用户界面识别的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如第一方面所述的用户界面识别方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如第一方面所述的用户界面识别方法。
由上述技术方案可以看出,通过对待测软件运行时所展示的显示图像进行遍历,可以自动化的确定显示图像中包括的多个用户界面元素,其中至少包括第一用户界面元素和第二用户界面元素。通过确定出的该多个用户界面元素所在显示图像中区域的位置信息,可以确定多个用户界面元素所在区域的重叠情况,若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。由此可以高效准确的确定待测软件的用户界面元素超框情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种用户界面识别方法的应用场景示意图;
图2为本申请实施例提供的一种待测软件运行时展示的显示图像示意图;
图3为本申请实施例提供的一种用户界面识别方法的流程图;
图4为本申请实施例提供的一种对Unity游戏引擎构建SDK的代码示意图;
图5为本申请实施例提供的一种包括有UI元素组合的显示图像示意图;
图6为本申请实施例提供的一种包括有UI元素组合的显示图像示意图;
图7为本申请实施例提供的一种待测软件的显示图像示意图;
图8为本申请实施例提供的一种包括有UI元素组合的显示图像示意图;
图9为本申请实施例提供的一种父UI元素和子UI元素间的宽高关系示意图;
图10为本申请实施例提供的一种针对Unity游戏引擎确定第一UI元素宽高信息的代码示意图;
图11为本申请实施例提供的一种针对虚幻引擎确定第一UI元素宽高信息的代码示意图;
图12为本申请实施例提供的一种计算文本元素缩放比例的代码示意图;
图13为本申请实施例提供的一种间接获取文字元素对齐方式的代码示意图;
图14为本申请实施例提供的一种上报超框情况时的展示页面图;
图15为本申请实施例提供的一种用户界面识别方法流程图;
图16a为本申请实施例提供的一种用户界面识别装置结构图;
图16b为本申请实施例提供的一种用户界面识别装置结构图;
图16c为本申请实施例提供的一种用户界面识别装置结构图;
图17为本申请实施例提供的一种用于用户界面识别的设备结构图;
图18为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
目前,主要采用人工的方式,即通过肉眼检查软件中的UI元素超框,由此导致检测效率和准确率都较低。
为此,本申请实施例提供的一种用户界面识别方法,以希望在确定待测软件的显示图像中UI元素间的拓扑关系之后,可以基于拓扑关系实现显示图像中UI元素的自动化遍历,识别其中UI元素的超框情况。基于该种自动化遍历方式,可以高效准确的确定待测软件中UI元素的超框情况。
需要说明,本申请实施例提供的用户界面识别方法可以用于为各类软件进行超框识别,包括:各种系统软件、应用软件、应用程序(Application,APP)及小程序等。例如:可以应用该用户界面识别方法对各类终端侧游戏软件或者网络游戏等进行超框识别。
首先,对本申请实施例的应用场景进行介绍。本申请实施例提供的用户界面识别方法比如可以用于待测软件上市前的超框识别中,通过在待测软件上市前进行超框识别,并根据识别结果采取相应的措施,可以保证软件上市时的质量,提高用户体验。例如:在完成待测软件开发后及上市前,可以通过本申请实施例提供的用户界面识别方法对其进行超框识别;或者,待测软件在不同国家以相应语言版本上市时,由于不同语言版本中的文字元素在显示图像中所占区域的宽度或高度不一定相同,因此在不同国家上市的待测软件中可能出现超框情况。在该种情形下,也可以应用本申请实施例提供的用户界面识别方法进行超框识别。
本申请提供的用户界面识别方法可以应用于图像识别设备,如终端设备、服务器。其中,该方法可以应用到部署有待测软件的终端设备中,终端设备例如可以是智能终端、计算机、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑等设备。
该用户界面识别方法还可以应用到服务器中,服务器是向部署有待测软件的终端设备提供用户界面识别服务的设备,该终端设备可以将待测软件运行时展示的显示图像上传给服务器,服务器利用本申请实施例提供的用户界面识别方法,为待测软件识别显示图像中UI元素的超框情况。其中,服务器可以是独立的服务器,也可以是集群中的服务器。
为了便于理解本申请的技术方案,下面结合实际应用场景对本申请实施例提供的用户界面识别方法进行介绍。
参见图1,该图示出了本申请实施例提供的一种用户界面识别方法的应用场景示意图。如图1所示,该场景中包括服务器101和终端设备102,该终端设备102中部署有需要进行UI元素超框识别的待测软件。在待测软件运行过程中,终端设备102可以将其展示的显示图像发送至服务器101,由服务器101根据显示图像来执行该用户界面识别方法。
在本申请实施例中,待测软件运行时展示的显示图像中可以包括UI元素及UI元素组合。其中,UI元素比如可以是显示图像中图像元素、文字元素等。UI元素组合对应于显示图像中的虚拟按键,即,虚拟按键可以由两个或多个UI元素(UI元素组合)组成。
举例来说:参见图2,该图示出了本申请实施例提供的一种待测软件运行时展示的显示图像示意图。如图2所示,该显示图像中包括多个虚拟按键对应的UI元素组合。其中,白色矩形区域可以是虚拟按键对应的图像元素,与白色区域重叠的文字可以是该虚拟按键对应的文字元素。例如:针对虚拟按键1(黑色虚线内的矩形区域),其中的白色矩形区域可以是该虚拟按键1对应的图像元素;其中的文字“4New Text New Text”可以是该虚拟按键1对应的文字元素。
在一种可能的实现方式中,服务器101可以根据显示图像,确定其中UI元素对应的拓扑关系。
其中,针对显示图像中UI元素间的拓扑关系,可以包括显示图像中的全部UI元素和这些UI元素在显示图像中的位置。例如:针对图2对应的显示图像,为其确定的UI元素间的拓扑关系可以包括:该显示图像中的全部文字元素、图像元素(包括虚拟按键对应的文字元素和图像元素等)和这些UI元素在显示图像中的位置。
在确定显示图像中UI元素对应的拓扑关系后,服务器101可以根据拓扑关系对该显示图像进行遍历,确定显示图像中包括的多个UI元素。接着,可以确定这些UI元素所在区域的位置信息。在显示图像中,UI元素所在区域可以是UI元素在显示图像中进行显示时所占用的区域,UI元素所在区域的位置信息可以用于标识该UI元素在显示图像中进行显示时的位置。
接下来,服务器101可以根据遍历出的UI元素的位置信息,确定这些UI元素所在区域间的重叠情况。为了方便表述,可以将UI元素中任意一个UI元素记为第一UI元素,将除该第一UI元素外的一个UI元素记为第二UI元素。
在本申请实施例中,可以通过识别第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框是否重叠,确定该显示图像是否出现超框情况。可以将UI元素所在区域的区域边框间重叠理解为,UI元素所在区域的区域边框出现交叉情形。若服务器101确定第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,识别该显示图像中出现超框情况。
举例来说,基于图2对应的示例,假设服务器101在根据显示图像中UI元素的位置信息确定UI元素所在区域间的重叠情况时,将该显示图像中的文字元素1作为第一UI元素,将图像元素1作为第二UI元素。第一UI元素(文字元素1)所在区域的区域边框为:文字“4NewText New Text”所在区域边缘的黑色细直线框,第二UI元素(图像元素1)所在区域的区域边框为:白色矩形边缘的黑色粗直线框。
基于第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框出现了交叉情形,由此,服务器101可以确定第一UI元素所在区域的区域边框和第二UI元素所在区域的区域边框重叠。进而,可以识别该显示图像上出现超框情况。
通过执行该方法,可以高效、准确的确定待测软件中UI元素的超框情况。
接下来,将结合附图对本申请实施例提供的用户界面识别方法进行介绍。
参见图3,该图示出了本申请实施例提供的一种用户界面识别方法的流程图,所述方法包括:
S301:对待测软件的显示图像进行遍历,确定显示图像中包括的多个UI元素。
在本申请中,待测软件可以是各类游戏软件,包括需要本地安装运行的游戏程序,也可以包括小程序等形式。
在本申请实施例中,可以对显示图像进行自动化遍历,来确定其中包括的UI元素。为了提高遍历速度,可以采用深度优先遍历算法确定显示图像中UI元素对应的拓扑关系。
在一种可能的实现方式中,可以将显示图像中UI元素的拓扑关系作为遍历UI元素的依据,即可以通过UI元素的拓扑关系对显示图像进行自动化遍历。本申请实施例不限定确定显示图像中UI元素对应的拓扑关系的具体方式,可以根据不同的应用场景或者不同的确定需求选择、设置适应性的确定方式。
例如:假设显示图像具有对应的文件,该文件包括该显示图像中UI元素对应的拓扑关系,针对该场景,则可直接从该文件中获取该显示图像中UI元素对应的拓扑关系。或者,假设显示图像中包括其中UI元素和对应位置的标识数据,针对该场景,可以根据该显示图像中的标识数据,确定其中UI元素对应的拓扑关系。以及,直接识别显示图像中的UI元素和UI元素在显示图像中对应的位置,进而确定出显示图像中UI元素对应的拓扑关系。
在本申请实施例中,从显示图像中确定的UI元素可以包括第一类元素和第二类元素。其中,第一类元素的内容可以是不固定的,第二类元素的内容可以是固定的。
举例来说,第一类元素可以是文字元素,在不同场景下(如待测软件在不同国家以相应语言版本上市时),针对不同语言版本的待测软件,其显示图像中文字元素所占区域的宽度或高度不一定相同,由此导致文字元素更容易出现超框情况。第二类元素可以是图像元素,在通常情况下,显示图像中图像的内容是固定的。也就是说,相比于内容固定的第二类元素,内容不固定的第一类元素更有可能出现超框情况。
基于此,在一种可能的实现方式中,可以将第一类元素作为第一UI元素,将第二类元素作为第二UI元素。如此,可以优先确定显示图像中第一类元素与其它UI元素所在区域间的重叠情况,提高对显示图像的超框情况的识别效率。
S302:确定多个UI元素所在区域的位置信息。
举例来说,针对游戏这一待测软件,显示图像中UI元素所在区域通常为矩形区域,为其确定的位置信息比如可以是该UI元素所在矩形区域的四个顶点的位置信息。
S303:根据位置信息确定多个UI元素所在区域间的重叠情况。
若第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,执行S305。
S304:识别在显示图像上出现超框情况。
通过显示图像中UI元素的位置信息,可以确定显示图像中UI元素所在区域间的重叠情况。若确定第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,可以识别在显示图像上出现超框情况。另外,若确定显示图像中UI元素所在区域的区域边框间都不重叠,可以识别显示图像中未出现超框情况。
由上述技术方案可以看出,通过对待测软件运行时所展示的显示图像进行遍历,可以自动化的确定显示图像中包括的多个UI元素,其中至少包括第一用户界面元素和第二用户界面元素。通过确定出的该多个UI元素所在显示图像中区域的位置信息,可以确定多个用户界面元素所在区域的重叠情况,若第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,识别在显示图像上出现超框情况。由此可以高效准确的确定待测软件的UI元素超框情况。
在本申请实施例中,可以生成一个软件开发工具包(Software Development Kit,SDK),以使其执行本申请实施例提供的用户界面识别方法来进行超框识别。在具体实现中,可以将SDK与待测软件一起进行打包、编译,使得待测软件在运行时通过加载该SDK来执行该用户界面识别方法。该种将SDK构建至待测软件的方法,方便后续对SDK与待测软件间的解耦。
举例来说,针对游戏这一待测软件,可以基于游戏引擎将该SDK构建至游戏中。其中,游戏引擎(Game Engine)可以是一些已编写好的可编辑电脑游戏系统,或是一些交互式实时图像应用程序的核心组件。游戏引擎中的系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序,而不用由零开始。实际情形下,大部分游戏引擎都支持多种操作系统平台(如Linux、Mac OS X、Windows),且包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等。
目前的游戏引擎可以包括Unity游戏引擎和虚幻引擎(Unreal Engine)。其中,Unity游戏引擎是一款由Unity Technologies研发的跨平台二维(Two dimensional,2D)/三维(Three dimensional,3D)游戏引擎,可用于开发Windows、MacOS及Linux平台的单机游戏;PlayStation、XBox、Wii、3DS和任天堂Switch等游戏主机平台的视频游戏;或是iOS、Android等移动设备的游戏等。Unity游戏引擎所支持的游戏平台还涉及基于WebGL技术的HTML5网页平台,以及tvOS、Oculus Rift、ARKit等新一代多媒体平台。除可以用于研发电子游戏之外,Unity游戏引擎还可被广泛用于建筑可视化、实时三维动画等类型互动内容的综合型创作工具。
虚幻引擎可以是由EPIC公司开发的游戏开发引擎。其为目前业界主流的游戏引擎之一。该引擎提供了游戏开发者所需的大量的核心技术、数据生成工具和基础支持。虚幻引擎是业内领先的游戏引擎,能够以极高的帧数渲染复杂场景,输出令人惊叹的画面效果。越来越多的游戏公司使用虚幻引擎开发新的游戏。
在本申请实施例中,针对Unity游戏引擎,可以将SDK以动态链接库(Dynamic LinkLibrary,DLL)文件的形式,构建至游戏项目工程的Assets目录中,以使游戏在运行时通过加载SDK来进行游戏的超框识别。参见图4,该图示出了本申请实施例提供的一种对Unity游戏引擎构建SDK的代码示意图,如图4所示,Unity游戏引擎加载SDK的方式可以包括:创建一个游戏脚本挂载到游戏对象,在脚本的Start函数中创建上述SDK组件,并传递游戏唯一识别标识AppId“123456”,本地化语言Language“En”,以及游戏的版本号Version“1.0001”。
本申请实施例中涉及的DLL可以是一种软件文件类型,又可称为“应用程序拓展”。在Windows系统中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库(即DLL文件)并放置于系统中。当执行一个程序时,相应的DLL文件就会被调用。在实际场景中,一个应用程序可调用多个DLL文件,一个DLL文件也可以被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
针对虚幻引擎,可以将SDK以插件GuiTest的形式,添加至游戏工程目录下的插件(Plugins)目录中。在刷新游戏工程项目后,Plugins目录中包括有GuiTest插件。
其中,虚幻引擎插件(Unreal Engine Plugin)可以是指虚幻引擎中的子系统,基于虚幻引擎的可扩展能力,可以在不修改虚幻引擎代码的前提下为虚幻引擎添加完整独立的新功能,甚至修改虚幻引擎中内建的功能。游戏开发者可以在不影响虚幻引擎功能的基础上开发插件以用于游戏。
在将SDK添加至游戏工程目录下的插件(Plugins)目录之后,可以将GuiTest插件源码和项目源码一起编译。完成编译后,游戏工程目录中的UE4编辑器的插件目录中也将包括有GuiTest插件。
接着,可以通过[编辑]->[项目设置]->[插件]->[GuiTest]的目录打开顺序,来查找GuiTest插件并对其进行开启。然后,可以在该插件中设置插件启动参数AppID,Version等。
在本申请实施例中,针对待测软件,其显示图像中的一个UI元素可以具有关联的UI元素。其中,由一组相互关联的UI元素所组成的UI元素组合(对应虚拟按键)可以共同实现一项功能。
举例来说,参见图5,该图示出了本申请实施例提供的一种包括有UI元素组合的显示图像示意图。如图5所示,针对一款手机游戏,其显示图像中可以具有实现某一项功能的控件,如图5的显示图像中实现“删除邮件”功能的控件、实现“提取邮件”功能的控件等。
其中,针对实现“删除邮件”功能的控件,其UI元素组合中关联的UI元素包括:文字元素2(即文字“删除邮件”)和图像元素2(对应于黑色实线框内的区域)。另外,实现“提取邮件”功能的控件也包括关联的UI元素,不再赘述。
可以理解,在S304中根据位置信息确定多个UI元素所在区域间的重叠情况时,仅需确定显示图像中关联的UI元素所在区域间的重叠情况,即可识别出该显示图像中是否出现超框情况。基于此,为了提高识别显示图像超框情况的效率,在一种可能的实现方式中,针对第一UI元素,S304中根据位置信息确定多个用户界面元素所在区域间的重叠情况的方法,可以包括:
S401:确定第一用户界面元素在显示图像中是否具有关联的UI元素。若确定第二UI元素与第一UI元素相关联,执行S402。
S402:根据位置信息确定第一UI元素和第二UI元素所在区域间的重叠情况。
也就是说,在本申请实施例中,针对第一UI元素,若为其确定出与其关联的UI元素,可以将该UI元素作为第二UI元素,并确定第一UI元素和第二UI元素所在区域间的重叠情况。
下面对S401-S402的方法进行举例说明:基于图5对应的示例,参见图6,该图示出了本申请实施例提供的一种包括有UI元素组合的显示图像示意图。如图6所示,假设第一UI元素为图6中的文字元素4,在执行S304、根据位置信息确定多个UI元素所在区域间的重叠情况时,可以为第一UI元素(文字元素4)确定在显示图像中是否包括与其关联的UI元素。
其中,假设为第一UI元素确定其与显示图像中的图像元素2相关联。如此,例如可以将图像元素2作为第二UI元素,并确定第一UI元素和第二UI元素所在区域的区域边框是否重叠。在该示例中,可以确定第一UI元素与第二UI元素所在区域的区域边框间重叠,由此可以确定该图6所示的显示图像出现超框情况。
可见,针对第一UI元素在显示图像中具有关联UI元素的情形,该方法仅需确定第一UI元素和关联的第二UI元素所在区域间的重叠情况,而无需确定第一UI元素与其它不关联的UI元素(如文字元素3、图像元素3等UI元素)所在区域间的重叠情况,提高了为待测软件识别超框情况的效率。
另外,针对待测软件,其显示图像中的UI元素可以不具有关联的UI元素。例如:参见图7,该图示出了本申请实施例提供的一种待测软件的显示图像示意图。如图7所示,该显示图像中的文字元素5不具有关联的UI元素。
基于此,在一种可能的实现方式中,S401中确定第一UI元素在显示图像中是否具有关联的UI元素的方法,可以包括:
S403:若第一UI元素在显示图像中不具有关联的UI元素,根据位置信息确定第一UI元素分别与显示图像中其他UI元素的重叠情况。
举例来说,基于图7对应的示例,当第一UI元素为显示图像中的文字元素5时,可以确定第一UI元素(文字元素5)分别与该显示图像中其他UI元素(如文字元素2、图像元素2、文字元素3、图像元素3等)的重叠情况。
由此,针对第一UI元素在显示图像中不具有关联的UI元素的情形,通过确定第一UI元素与其它UI元素所在区域间的重叠情况,也可以识别出待测软件的显示图像中的超框情况。
在本申请实施例中,在S402中根据位置信息确定第一UI元素和第二UI元素所在区域间的重叠情况时,如果确定第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,还可以为第一UI元素确定其超框情况的类型。
在本申请实施例中,超框情况可以包括第一类超框情况和第二类超框情况。其中,可以将第一类超框情况理解为:UI元素不仅超出关联的UI元素所在区域的区域边框,还覆盖不关联的UI元素所在区域的区域边框。可以将第二类超框情况理解为:UI元素仅超出关联的UI元素所在区域的区域边框,而不覆盖不关联的UI元素所在区域的区域边框。
基于此,在一种可能的实现方式中,针对S402中根据位置信息确定第一UI元素和第二UI元素所在区域间的重叠情况的方法,可以包括:
S501:若第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠,根据位置信息确定第一用户界面元素所在区域的区域边框是否还与其他UI元素所在区域的区域边框重叠。若是,执行S502,若否,执行S503。
S502:识别第一UI元素在所述显示图像上出现第一类超框情况。
S503:识别第一UI元素在所述显示图像上出现第二类超框情况。
在本申请实施例中,在确定第一UI元素所在区域的区域边框与第二UI元素所在区域的区域边框重叠的情形下,针对第一UI元素,还可以根据位置信息,确定其所在区域的区域边框是否和不关联的UI元素所在区域的区域边框重叠。若是,则可以确定该第一UI元素在该显示图像中出现第一类超框情况。若否,则可以识别该第一UI元素在该显示图像中出现第二类超框情况。
下面对S501-S503的方法进行举例说明:基于图6对应的示例,针对S402,在确定第一UI元素(文字元素4)所在区域的区域边框与第二UI元素(图像元素2)所在区域的区域边框重叠后,针对第一UI元素(文字元素4),还可以根据位置信息,确定其所在区域的区域边框是否和不关联的UI元素所在区域的区域边框重叠。
其中,基于图6所示的显示图像,针对第一UI元素(文字元素4),可以确定其所在区域的区域边框仅和关联的第二UI元素(图像元素2)所在区域的区域边框重叠。由此,可识别出第一UI元素在该图6所示的显示图像中出现第一类超框情况。
另外,参见图8,该图示出了本申请实施例提供的一种包括有UI元素组合的显示图像示意图,如图8所示,针对第一UI元素(文字元素6),可以确定其所在区域的区域边框和关联的第二UI元素(图像元素2)所在区域的区域边框重叠。除此之外,还可以确定其所在区域的区域边框和不关联的UI元素(图像元素4)所在区域的区域边框重叠。由此,可识别出第一UI元素在该图8所示的显示图像中出现第二类超框情况。
可见,通过该方法,可以进一步为第一UI元素确定其在显示图像中超框情况的类型。当第一UI元素属于第一类超框情况时,可以确定该第一UI元素不仅超出其关联的UI元素所在区域的区域边框,还覆盖其不关联的UI元素所在区域的区域边框。当第一UI元素属于第二类超框情况时,可以确定该第一UI元素仅超出其关联的UI元素所在区域的区域边框,而不覆盖不关联的UI元素所在区域的区域边框。
在一种可能的实现方式中,针对第一UI元素,在S303中确定多个UI元素所在区域的位置信息的方法,可以包括:
S601:确定第一UI元素所在区域的宽高信息。
第一UI元素所在区域的宽高信息可以包括第一UI元素所在区域的宽度数据和高度数据。
实际场景中,所确定的宽高信息比如可以是在世界坐标系下的宽高信息。其中,世界坐标系可以是按照笛卡尔坐标系定义出来的绝对坐标系。例如:针对游戏这一待测软件,游戏场景中的任意一点都可以由世界坐标系中的一个三维坐标(x,y,z)来表示。
下面以游戏作为待测软件为例,对S601、确定游戏显示图像中第一UI元素所在区域的宽高信息的方法进行介绍。
基于前述示例,针对游戏的Unity游戏引擎,其显示图像中第一UI元素的宽高信息计算方法可以包括:
可以通过Unity游戏引擎的GetWorldCorners函数,计算第一UI元素四个顶点在世界坐标系下的坐标,再通过WorldToScreenPoint函数将世界坐标系中四个顶点的坐标转换为屏幕坐标系下的坐标。从而,可以根据第一UI元素在屏幕坐标系下的坐标计算其宽高信息。
或者,针对第一UI元素在显示图像中具有关联的UI元素的情形下,例如显示图像中第一UI元素(图像元素)和一个文字元素相关联,可以将图像元素作为文字元素的父UI元素,文字元素作为图像元素的子UI元素。如此,可以根据父UI元素和子UI元素间的宽高关系,确定父UI元素或子UI元素间的宽高信息。
参见图9,该图示出了本申请实施例提供的一种父UI元素和子UI元素间的宽高关系示意图。如图9所示,其中的坐标系为相对坐标系,在该相对坐标系中,以父UI元素的左下角顶点的坐标为坐标原点。父UI元素和子UI元素间的关系由下述属性决定:锚框(ahchor)、最小锚点(anchorMin)、最大锚点(anchorMax)、最小偏移向量(offsetMin)、最大偏移向量(offsetMax)及差向量(sizeDelta)。
其中,Anchor是由anchorMin(x1,y1)和anchorMax(x2,y2)这两个锚点组成的一个矩形,锚点的横、纵坐标(X、Y)值范围为[0,1]。如图9所示,假设Anchor对应于父UI元素,Anchor’对应于子UI元素,其中,Anchor’是由anchorMin’(x3,y3)和anchorMax’(x4,y4)这两个锚点组成的一个矩形。
offsetMin表示父UI元素的anchorMin指向子UI元素的anchorMin’的向量offsetMax表示父UI元素的anchorMax指向子UI元素的anchorMax’的向量/>实际场景中,offsetMin和offsetMax在父UI元素的移动和缩放过程中始终不变。
而sizeDelta(x,y)表示offsetMax和offsetMin的差向量,即:
SizeDelta=offsetMax-offsetMin=(x4-x2-x3+x1,y4-y2-y3+y1);
这样,确定出父UI元素与子UI元素间的宽高关系为:
x4-x3=x+x2-x1;y4-y3=y+y2-y1,其中,x4-x3为子UI元素控件的宽度数据,x2-x1为父UI元素控件的宽度数据,y4-y3为子UI元素控件的高度数据,y2-y1即为父UI元素控件的高度数据。
通过该种方法,在第一UI元素具有相关联UI元素时,在已知这些UI元素中任意一个UI元素的宽高信息的情况下,可以基于父UI元素与子UI元素间的宽高关系,确定第一UI元素的宽高信息。参见图10,该图示出了本申请实施例提供的一种针对Unity游戏引擎确定第一UI元素宽高信息的代码示意图。如图10所示,在该代码中,可以用于根据父UI元素和子UI元素间的位置关系,计算子UI元素的宽高信息。代码中的“width”可以是子UI元素的宽度,可以通过公式width=sizeDelta.x+parent.x*(anchorMax.x-anchorMin.x)计算得出。其中,sizeDelta.x为上述的x,parent.x*(anchorMax.x-anchorMin.x)为上述的x2-x1。代码中的“hight”可以是指子UI元素的高度,可以通过公式height=sizeDelta.y+parent.y*(anchorMax.y-anchorMin.y)计算得出。其中,sizeDelta.y为上述的y,parent.y*(anchorMax.y-anchorMin.y)为上述的y2-y1
另外,针对游戏的虚幻引擎,可以通过虚幻引擎中的GetAbsolutePositionAtCoordinates函数,来分别计算第一UI元素的左上角和右下角的顶点的屏幕坐标,从而计算第一UI元素的屏幕坐标,以及第一UI元素的宽高信息。
参见图11,该图示出了本申请实施例提供的一种针对虚幻引擎确定第一UI元素宽高信息的代码示意图。如图11所示,在该代码中,可以通过GetAbsolutePositionAtCoordinates函数确定第一UI元素(对应于矩形)左上角(LeftTop)的坐标和右下角(RightBottom)的坐标。其中,左上角(LeftTop)的坐标为(LeftTop.X,LeftTop.Y),右下角的坐标为(RightBottom.X,RightBottom.Y)。
S602:根据宽高信息和对应的转换系数,确定第一UI元素所在区域的屏幕坐标。
其中,屏幕坐标系可以是建立在待测软件显示屏幕上的二维坐标系,可用于描述像素点在屏幕上的位置,屏幕坐标系的坐标原点可以是屏幕的左下角顶点。宽高信息对应的转换系数可以用于将当前坐标系下的宽高信息转换至屏幕坐标系下的宽高信息。
在本申请实施例中,在确定第一UI元素所在区域的宽高信息之后,可以根据宽高信息和对应的转换系数,确定第一UI元素所在区域的屏幕坐标。
在本申请实施例中,在第一UI元素为内容不固定的第一类元素中的文字元素的情形下,在S602中为第一UI元素确定其所在区域的屏幕坐标时,可以基于其对应的文字控件进行确定。其中,文字元素对应的文字控件可以是指文字元素对应的虚拟按键。
基于此,在一种可能的实现方式中,针对S602中根据宽高信息和对应的转换系数,确定第一UI元素所在区域的屏幕坐标的方法,可以包括:
S701:确定文字元素对应文字控件在屏幕坐标系和世界坐标系下的宽高比例。
在具体实现中,S701中确定宽高比例的方法可以包括:确定文字元素对应的文字控件在屏幕坐标系的中心坐标和宽高信息;确定该文字控件在世界坐标系下的宽高信息,根据该文字控件在屏幕坐标系和世界坐标系下的宽高信息,计算该文字控件在屏幕坐标系和世界坐标系下的宽高比例。
S702:将宽高比例作为文字元素所在区域在世界坐标系下的宽高信息对应的转换系数,确定文字元素所在区域的屏幕坐标。
在本申请实施例中,由于文字元素和对应的文字控件在世界坐标系中是共面的,因此,针对文字元素和其对应的文字控件,它们在屏幕坐标系和世界坐标系下的宽高比例是相同的。
由此,可以确定文字元素对应的文字控件在屏幕坐标系和世界坐标系下的宽高比例,以作为文字元素所在区域在世界坐标系下的宽高信息对应的转换系数。这样,根据文字元素所在区域在世界坐标系下的宽高信息和对应的转换系数,可以确定文字元素所在区域的屏幕坐标。
在具体实现中,S702中确定文字元素所在区域的屏幕坐标的方法可以包括:首先,可以根据文字元素对应的文字控件的首选宽度(preferredWidth)和首选高度(preferredHeight)属性,计算文字元素在世界坐标系下的宽高信息;然后,可以根据文字元素在世界坐标系下的宽高信息和对应的转换系数,计算文字元素在屏幕坐标系下的宽高信息;最后,可以根据文字元素在对应的文字控件中的对齐方式(如居中对齐等)、及该文字控件在屏幕坐标系中的中心坐标,确定文字元素在屏幕坐标系下的宽高坐标。
针对Unity游戏引擎,通过执行该方法便于为显示图像中的文字元素确定其所在区域的屏幕坐标。
另外,针对虚拟游戏引擎,计算显示图像中文字元素所在区域的屏幕坐标的方法可以包括:
首先,可以计算文字元素在屏幕坐标系下的中心坐标和宽高信息;然后,可以根据GetDPIScaleBasedOnSize函数计算文字控件在不同分辨率下的缩放比例(DpiScale)。接着,可以根据文本元素的GetDesiredSize函数和缩放比例,计算文本元素在屏幕坐标系下的宽高信息。参见图12,该图示出了本申请实施例提供的一种计算文本元素缩放比例的代码示意图。如图12所示,在该代码中,在计算文本宽高信息“CalculateTextSize”时,可以通过“GetDesiredSize”函数来确定文本元素的缩放比例“DpiScale”。
然后,计算文字元素在对应的文字控件中的对齐方式。其中,文字元素与对应的文本控件的对齐方式无法直接获取。由于文字元素针对对应的文字控件的对齐方式与文字控件的Justification属性相关,因此,本申请实施例提供了一种间接获取文字元素对齐方式的方法,参见图13,该图示出了本申请实施例提供的一种间接获取文字元素对齐方式的代码示意图。如图13所示,该代码中,在计算文字元素的Justification属性值“CalculateJustification”时,可以通过函数“GetName()”获取文字元素的名称,并通过调用“GetSignedIntPropertyValue()”函数,确定出该文字元素的Justification属性值。
最后,可以根据文字元素在屏幕坐标系下的宽高信息和对齐方式,计算文字元素的屏幕坐标。
S603:根据屏幕坐标确定第一UI元素所在区域的位置信息。
从而,在确定出第一UI元素所在区域的屏幕坐标后,可以以此确定第一UI元素所在区域的位置信息。
在本申请实施例中,为了方便待测软件的开发人员或测试人员等对待测软件中出现的UI超框情况进行处理,在一种可能的实现方式中,在S305中识别显示图像上出现超框情况之后,该方法还可以包括:
S801:记录超框情况和对应的显示图像。
在具体实现中,记录的超框情况可以包括超框UI元素、超框UI元素的超框类型,超框UI元素的保存路径等信息。
在实际场景中,SDK可以将超框情况和对应的显示图像上报至网络(web)后台。参见图14,该图示出了本申请实施例提供的一种上报超框情况时的展示页面图。如图14所示,其中展示有超框UI元素、超框UI元素的超框类型,超框UI元素的保存路径、被覆盖的UI元素区域以及识别时间等。其中,识别出需要上报的超框UI元素为显示图像左下角的4NewText。
通过执行该方法,方便开发人员或测试人员获取待测软件的超框情况并进行相应处理,实际情形下,开发人员或测试人员可以通过浏览器访问网络平台,以查看待测软件的超框信息,并基于超框信息进行处理。
在本申请实施例中,可以识别待测软件在运行过程中展示的每张显示图像的超框情况。而在实际场景中,可能会出现如下情形:待测软件运行时待识别的显示图像为已完成超框识别的显示图像。举例来说,针对游戏这一待测软件,假设当前的显示图像为a,在针对该显示图像a完成超框情况识别后,通过触发其中的一个控件1,使得该游戏的显示图像切换为b,在针对该显示图像b完成超框情况识别后,通过触发该显示图像b中的一个控件2,使得该游戏的显示图像又被切换为a。即,该当前待识别的显示图像a为已完成超框识别的显示图像。
为了避免重复确定显示图像中UI元素所在区域的位置信息,在一种可能的实现方式中,在S303中确定多个UI元素所在区域的位置信息之后,该方法还可以包括:
S901:记录位置信息和对应的显示图像。
也就是说,为待测软件记录已识别的显示图像和其中UI元素所在区域的位置信息。由此,针对待测软件的待识别的显示图像,可以根据已识别的显示图像和对应的位置信息,确定该待识别的显示图像是否已经被识别,若是,无需对该显示图像中UI元素所在区域的位置信息进行重复计算,减小了识别待测软件超框情况的工作量并提高了识别效率。
在实际场景中,待测软件的显示图像中可能包括被各种弹窗覆盖的UI元素,这类被弹窗覆盖的UI元素之间即使出现超框情况也不会影响用户对该待测软件的使用。由此,无需确定这类被弹窗覆盖的UI元素间的超框情况。
为此,在一种可能的实现方式中,在S303中确定多个UI元素所在区域的位置信息之前,该方法还可以包括:
S1001:判断多个UI元素中是否包括不可见UI元素,若包括,执行S1002。
S1002:从多个UI元素中删除不可见UI元素。
其中,不可见UI元素可以是用户无法在显示图像中见到的UI元素,例如被显示图像中的弹窗覆盖的UI元素。
在本申请实施例中,若在显示图像的UI元素中确定出其中包括不可见UI元素,则可以将确定的不可见UI元素删除。
在具体实现中,针对游戏这一待测软件,确定其显示图像中的UI元素是否为不可见UI元素的方法可以包括:针对Unity游戏引擎的游戏,可以通过摄像机向UI元素的四个顶点发送射线,如果这四条射线碰撞的第一个物体是该UI元素本身,则说明该UI元素可见,如果这四条射线碰撞的第一个物体都不是该UI元素本身,则说明该UI元素被完全覆盖,即为不可见UI元素。针对虚幻引擎的游戏,可以通过UI元素的可见(IsVisible)函数来判断其是否可见。
通过执行该方法,在S303及后续步骤中无需确定不可见UI元素的超框情况,减小了识别待测软件超框情况的工作量并提高了识别效率。
接下来,将结合实际应用场景对本申请实施例提供的用户界面识别方法进行介绍。
游戏出海时会发行不同的语言版本,即,游戏场景中的文字元素会以不同语言形式的文字显示,由此在游戏的显示图像中很容易出现超框情况,严重影响游戏体验。为此,本申请实施例提供的用户界面识别方法,可以用于识别游戏运行中显示图像的超框情况。
参见图15,该图示出了本申请实施例提供的一种用户界面识别方法流程图,如图15所示,在将可以执行该用户界面识别方法的SDK构建到游戏项目中之后,可以启动游戏并加载SDK,以及,将SDK状态、超框识别日志和时间间隔等信息发送至网络平台。然后,可以开始对游戏运行时展示的显示图像进行超框识别。其中,可以根据显示图像中UI元素的拓扑关系遍历显示图像中的UI元素,并基于UI元素所在区域的位置信息对每个UI元素进行超框判断,若确定UI元素超框,可以将超框情况发送至网络平台。然后,可以将该超框UI元素所在的显示图像发送至网络平台,并保存已识别的显示图像和对应的位置信息。
如果不需要对游戏进行超框情况检测,可以在游戏启动前,在网络页面设置SDK不启动检测功能。
该方法采用SDK的形式,提供一个实时检测超框情况的方法以供游戏开发和测试人员使用。在开发游戏的构建版本时,可以直接把SDK构建到游戏版本中。游戏启动后,SDK通过计算UI元素的屏幕坐标来确定UI元素是否发生超框,以排除UI元素覆盖等干扰,动态检测超框UI元素,实时上报网络平台,帮助测试人员及时发现超框漏洞,协助开发人员定位超框UI元素。该方法易于操作,降低了开发或测试人员的使用门槛。在游戏出海的大背景下,该方法是游戏安全、性能、适配测试之外的又一质量检测工具。
基于前述实施例提供的配对方法,本申请实施例提供一种用户界面识别装置,参见图16a,该图示出了本申请实施例提供的一种用户界面识别装置结构图,所述装置包括确定单元1601和识别单元1602:
所述确定单元1601,用于对待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
所述确定单元1601,还用于确定所述多个用户界面元素所在区域的位置信息;
所述确定单元1601,还用于根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
所述识别单元1602,用于若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。
在一种可能的实现方式中,所述确定单元1601,还具体用于:
针对所述第一用户界面元素,确定所述第一用户界面元素在所述显示图像中是否具有关联的用户界面元素;
若所述第二用户界面元素与所述第一用户界面元素相关联,根据所述位置信息确定所述第一用户界面元素和所述第二用户界面元素所在区域间的重叠情况。
在一种可能的实现方式中,所述确定单元1601,还具体用于:
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,根据所述位置信息确定所述第一用户界面元素所在区域的区域边框是否还与其他用户界面元素所在区域的区域边框重叠;
若是,识别所述第一用户界面元素在所述显示图像上出现第一类超框情况;
若否,识别所述第一用户界面元素在所述显示图像上出现第二类超框情况。
在一种可能的实现方式中,所述确定单元1601,还具体用于:
若所述第一用户界面元素在所述显示图像中不具有关联的用户界面元素,根据所述位置信息确定所述第一用户界面元素分别与所述显示图像中其他用户界面元素的重叠情况。
在一种可能的实现方式中,所述多个用户界面元素中包括内容不固定的第一类元素和内容固定的第二类元素;所述第一用户界面元素为所述第一类元素,所述第二用户界面元素为所述第二类元素。
在一种可能的实现方式中,所述确定单元1601,还具体用于:
针对所述第一用户界面元素,确定所述第一用户界面元素所在区域的宽高信息;
根据所述宽高信息和对应的转换系数,确定所述第一用户界面元素所在区域的屏幕坐标;
根据所述屏幕坐标确定所述第一用户界面元素所在区域的位置信息。
在一种可能的实现方式中,所述确定单元1601,还具体用于:
确定所述文字元素对应文字控件在屏幕坐标系和世界坐标系下的宽高比例;所述第一用户界面元素为内容不固定的第一类元素中的文字元素;
将所述宽高比例作为所述文字元素所在区域在世界坐标系下的宽高信息对应的转换系数,确定所述文字元素所在区域的屏幕坐标。
在一种可能的实现方式中,参见图16b,该图示出了本申请实施例提供的一种用户界面识别装置结构图,所述装置还包括记录单元1603,所述记录单元1603用于:
在所述识别在所述显示图像上出现超框情况之后,记录所述超框情况和对应的显示图像。
在一种可能的实现方式中,所述记录单元1603,还具体用于:
在所述确定所述多个用户界面元素所在区域的位置信息之后,记录所述位置信息和对应的显示图像。
在一种可能的实现方式中,参见图16c,该图示出了本申请实施例提供的一种用户界面识别装置结构图,所述装置还包括判断单元1604,所述判断单元1604,用于:
在所述确定所述多个用户界面元素所在区域的位置信息之前,判断所述多个用户界面元素中是否包括不可见用户界面元素;
若包括,从所述多个用户界面元素中删除所述不可见用户界面元素。
由上述技术方案可以看出,通过对待测软件运行时所展示的显示图像进行遍历,可以自动化的确定显示图像中包括的多个用户界面元素,其中至少包括第一用户界面元素和第二用户界面元素。通过确定出的该多个用户界面元素所在显示图像中区域的位置信息,可以确定多个用户界面元素所在区域的重叠情况,若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。由此可以高效准确的确定待测软件的用户界面元素超框情况。
本申请实施例还提供了一种用于用户界面识别的设备,下面结合附图对用于用户界面识别的设备进行介绍。请参见图17所示,本申请实施例提供了一种用于用户界面识别的设备1700,该设备1700还可以是终端设备,该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,简称PDA)、销售终端(Point of Sales,简称POS)、车载电脑等任意智能终端,以终端设备为手机为例:
图17示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图17,手机包括:射频(Radio Frequency,简称RF)电路1710、存储器1720、输入单元1730、显示单元1740、传感器1750、音频电路1760、无线保真(wireless fidelity,简称WiFi)模块1770、处理器1780、以及电源1790等部件。本领域技术人员可以理解,图17中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图17对手机的各个构成部件进行具体的介绍:
RF电路1710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1780处理;另外,将设计上行的数据发送给基站。通常,RF电路1710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(LowNoiseAmplifier,简称LNA)、双工器等。此外,RF电路1710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(General Packet Radio Service,简称GPRS)、码分多址(Code Division MultipleAccess,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(ShortMessaging Service,简称SMS)等。
存储器1720可用于存储软件程序以及模块,处理器1780通过运行存储在存储器1720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1730可包括触控面板1731以及其他输入设备1732。触控面板1731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1731上或在触控面板1731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1780,并能接收处理器1780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1731。除了触控面板1731,输入单元1730还可以包括其他输入设备1732。具体地,其他输入设备1732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1740可包括显示面板1741,可选的,可以采用液晶显示器(LiquidCrystal Display,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板1741。进一步的,触控面板1731可覆盖显示面板1741,当触控面板1731检测到在其上或附近的触摸操作后,传送给处理器1780以确定触摸事件的类型,随后处理器1780根据触摸事件的类型在显示面板1741上提供相应的视觉输出。虽然在图17中,触控面板1731与显示面板1741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1731与显示面板1741集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1760、扬声器1761,传声器1762可提供用户与手机之间的音频接口。音频电路1760可将接收到的音频数据转换后的电信号,传输到扬声器1761,由扬声器1761转换为声音信号输出;另一方面,传声器1762将收集的声音信号转换为电信号,由音频电路1760接收后转换为音频数据,再将音频数据输出处理器1780处理后,经RF电路1710以发送给比如另一手机,或者将音频数据输出至存储器1720以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图17示出了WiFi模块1770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1720内的软件程序和/或模块,以及调用存储在存储器1720内的数据,执行手机的各种功能和处理数据。可选的,处理器1780可包括一个或多个处理单元;优选的,处理器1780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1780中。
手机还包括给各个部件供电的电源1790(比如电池),优选的,电源可以通过电源管理系统与处理器1780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,该终端设备所包括的处理器1780还具有以下功能:
对待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
确定所述多个用户界面元素所在区域的位置信息;
根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。
本申请实施例提供的用于用户界面识别的设备可以是服务器,请参见图18所示,图18为本申请实施例提供的服务器1800的结构图,服务器1800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1822(例如,一个或一个以上处理器)和存储器1832,一个或一个以上存储应用程序1842或数据1844的存储介质1830(例如一个或一个以上海量存储设备)。其中,存储器1832和存储介质1830可以是短暂存储或持久存储。存储在存储介质1830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1822可以设置为与存储介质1830通信,在服务器1800上执行存储介质1830中的一系列指令操作。
服务器1800还可以包括一个或一个以上电源1826,一个或一个以上有线或无线网络接口1850,一个或一个以上输入输出接口1858,和/或,一个或一个以上操作系统1841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图18所示的服务器结构。
其中,CPU1822用于执行如下步骤:
对待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
确定所述多个用户界面元素所在区域的位置信息;
根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (14)

1.一种用户界面识别方法,其特征在于,所述方法包括:
根据待测软件的显示图像中用户界面元素对应的拓扑关系,对所述待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
判断所述多个用户界面元素中是否包括不可见用户界面元素;
若包括,从所述多个用户界面元素中删除所述不可见用户界面元素;
确定所述多个用户界面元素所在区域的位置信息;
根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,根据所述位置信息确定所述第一用户界面元素所在区域的区域边框是否与其他用户界面元素所在区域的区域边框重叠;
若是,识别所述第一用户界面元素在所述显示图像上出现第一类超框情况;
若否,识别所述第一用户界面元素在所述显示图像上出现第二类超框情况;
针对所述第一用户界面元素,所述根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况,包括:
若所述第一用户界面元素在所述显示图像中不具有关联的用户界面元素,根据所述位置信息确定所述第一用户界面元素分别与所述显示图像中其他用户界面元素的重叠情况;
若所述第二用户界面元素与所述第一用户界面元素相关联,根据所述位置信息确定所述第一用户界面元素和所述第二用户界面元素所在区域间的重叠情况。
2.根据权利要求1所述的方法,其特征在于,所述多个用户界面元素中包括内容不固定的第一类元素和内容固定的第二类元素;所述第一用户界面元素为所述第一类元素,所述第二用户界面元素为所述第二类元素。
3.根据权利要求1所述的方法,其特征在于,针对所述第一用户界面元素,所述确定所述多个用户界面元素所在区域的位置信息,包括:
确定所述第一用户界面元素所在区域的宽高信息;
根据所述宽高信息和对应的转换系数,确定所述第一用户界面元素所在区域的屏幕坐标;
根据所述屏幕坐标确定所述第一用户界面元素所在区域的位置信息。
4.根据权利要求3所述的方法,其特征在于,所述第一用户界面元素为内容不固定的第一类元素中的文字元素,所述根据所述宽高信息和对应的转换系数,确定所述第一用户界面元素所在区域的屏幕坐标,包括:
确定所述文字元素对应文字控件在屏幕坐标系和世界坐标系下的宽高比例;
将所述宽高比例作为所述文字元素所在区域在世界坐标系下的宽高信息对应的转换系数,确定所述文字元素所在区域的屏幕坐标。
5.根据权利要求1所述的方法,其特征在于,在所述识别在所述显示图像上出现超框情况之后,所述方法还包括:
记录所述超框情况和对应的显示图像。
6.根据权利要求1所述的方法,其特征在于,在所述确定所述多个用户界面元素所在区域的位置信息之后,所述方法还包括:
记录所述位置信息和对应的显示图像。
7.一种用户界面识别装置,其特征在于,所述装置包括确定单元、识别单元和判断单元:
所述确定单元,用于根据待测软件的显示图像中用户界面元素对应的拓扑关系,对所述待测软件的显示图像进行遍历,确定所述显示图像中包括的多个用户界面元素;所述多个用户界面元素包括第一用户界面元素和第二用户界面元素;
所述确定单元,还用于确定所述多个用户界面元素所在区域的位置信息;
所述确定单元,还用于根据所述位置信息确定所述多个用户界面元素所在区域间的重叠情况;
所述识别单元,用于若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,识别在所述显示图像上出现超框情况;
所述判断单元,用于:
在所述确定所述多个用户界面元素所在区域的位置信息之前,判断所述多个用户界面元素中是否包括不可见用户界面元素;
若包括,从所述多个用户界面元素中删除所述不可见用户界面元素;
所述确定单元,还具体用于:
若所述第一用户界面元素所在区域的区域边框与所述第二用户界面元素所在区域的区域边框重叠,根据所述位置信息确定所述第一用户界面元素所在区域的区域边框是否还与其他用户界面元素所在区域的区域边框重叠;
若是,识别所述第一用户界面元素在所述显示图像上出现第一类超框情况;
若否,识别所述第一用户界面元素在所述显示图像上出现第二类超框情况;
所述确定单元,还具体用于:
针对所述第一用户界面元素,确定所述第一用户界面元素在所述显示图像中是否具有关联的用户界面元素;
若所述第二用户界面元素与所述第一用户界面元素相关联,根据所述位置信息确定所述第一用户界面元素和所述第二用户界面元素所在区域间的重叠情况;
所述确定单元,还具体用于:
若所述第一用户界面元素在所述显示图像中不具有关联的用户界面元素,根据所述位置信息确定所述第一用户界面元素分别与所述显示图像中其他用户界面元素的重叠情况。
8.根据权利要求7所述的装置,其特征在于,所述多个用户界面元素中包括内容不固定的第一类元素和内容固定的第二类元素;所述第一用户界面元素为所述第一类元素,所述第二用户界面元素为所述第二类元素。
9.根据权利要求7所述的装置,其特征在于,所述确定单元,还具体用于:
针对所述第一用户界面元素,确定所述第一用户界面元素所在区域的宽高信息;
根据所述宽高信息和对应的转换系数,确定所述第一用户界面元素所在区域的屏幕坐标;
根据所述屏幕坐标确定所述第一用户界面元素所在区域的位置信息。
10.根据权利要求9所述的装置,其特征在于,所述确定单元,还具体用于:
确定文字元素对应文字控件在屏幕坐标系和世界坐标系下的宽高比例;所述第一用户界面元素为内容不固定的第一类元素中的文字元素;
将所述宽高比例作为所述文字元素所在区域在世界坐标系下的宽高信息对应的转换系数,确定所述文字元素所在区域的屏幕坐标。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括记录单元,所述记录单元用于:
在所述识别在所述显示图像上出现超框情况之后,记录所述超框情况和对应的显示图像。
12.根据权利要求7所述的装置,其特征在于,所述记录单元,还具体用于:
在所述确定所述多个用户界面元素所在区域的位置信息之后,记录所述位置信息和对应的显示图像。
13.一种用于用户界面识别的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-6任一项所述的用户界面识别方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-6任一项所述的用户界面识别方法。
CN201911019570.4A 2019-10-24 2019-10-24 一种用户界面识别方法和装置 Active CN110865812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911019570.4A CN110865812B (zh) 2019-10-24 2019-10-24 一种用户界面识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911019570.4A CN110865812B (zh) 2019-10-24 2019-10-24 一种用户界面识别方法和装置

Publications (2)

Publication Number Publication Date
CN110865812A CN110865812A (zh) 2020-03-06
CN110865812B true CN110865812B (zh) 2024-04-23

Family

ID=69653138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911019570.4A Active CN110865812B (zh) 2019-10-24 2019-10-24 一种用户界面识别方法和装置

Country Status (1)

Country Link
CN (1) CN110865812B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111420402B (zh) 2020-03-18 2021-05-14 腾讯科技(深圳)有限公司 虚拟环境画面的显示方法、装置、终端及存储介质
CN112107854B (zh) * 2020-09-01 2021-03-16 苏州紫焰网络科技有限公司 一种游戏任务引导完成方法、系统及设备
CN112131121B (zh) * 2020-09-27 2021-09-28 腾讯科技(深圳)有限公司 用户界面的模糊检测方法、装置、电子设备和存储介质
CN112181568A (zh) * 2020-09-27 2021-01-05 上海连尚网络科技有限公司 局部适配屏幕方法和设备
CN112473137B (zh) * 2020-12-08 2023-11-28 网易(杭州)网络有限公司 游戏对象的显示方法、装置、存储介质与终端设备
CN114419625A (zh) * 2022-01-11 2022-04-29 广东电网有限责任公司 基于边缘技术的界面识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484382A (zh) * 2015-08-31 2017-03-08 阿里巴巴集团控股有限公司 一种弹框显示的方法和设备
CN110363785A (zh) * 2019-07-15 2019-10-22 腾讯科技(深圳)有限公司 一种文本超框检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349110A1 (en) * 2017-05-31 2018-12-06 Wipro Limited Method and layout identification system for facilitating identification of a layout of a user interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484382A (zh) * 2015-08-31 2017-03-08 阿里巴巴集团控股有限公司 一种弹框显示的方法和设备
CN110363785A (zh) * 2019-07-15 2019-10-22 腾讯科技(深圳)有限公司 一种文本超框检测方法及装置

Also Published As

Publication number Publication date
CN110865812A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
CN110865812B (zh) 一种用户界面识别方法和装置
CN107038112B (zh) 应用界面的调试方法及装置
EP4006844A1 (en) Image rendering method and related device
US10269160B2 (en) Method and apparatus for processing image
CN106547599B (zh) 一种资源动态加载的方法及终端
US11132289B2 (en) Method and system for improved performance of a video game engine
CN106502703B (zh) 一种函数调用方法和装置
CN106295353B (zh) 一种引擎漏洞检测的方法以及检测装置
CN109933989B (zh) 一种检测漏洞的方法及装置
CN108513671A (zh) 一种2d应用在vr设备中的显示方法及终端
CN116310745B (zh) 图像处理方法、数据处理方法、相关装置及存储介质
CN106789866B (zh) 一种检测恶意网址的方法及装置
CN111966491B (zh) 统计占用内存的方法及终端设备
CN109302523B (zh) 一种手机端和服务器端手机性能评估方法
CN104809054A (zh) 实现程序测试的方法和系统
CN111210496B (zh) 一种图片解码方法、装置以及设备
CN106709856B (zh) 一种图形渲染方法及相关设备
CN112965911B (zh) 界面异常检测方法、装置、计算机设备及存储介质
CN106802856B (zh) 游戏应用程序的性能测试方法、服务器和游戏应用客户端
CN113384893A (zh) 一种数据处理方法、装置及计算机可读存储介质
US20160224258A1 (en) Generating computer programs for use with computers having processors with dedicated memory
CN114064017A (zh) 一种绘制方法及相关设备
CN117152327B (zh) 一种参数调节方法和相关装置
CN113704134B (zh) 一种模型检测方法和相关装置
CN111612921B (zh) 一种碰撞范围确定方法和相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021118

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant