页面过度绘制的检测方法、装置、电子设备及可读介质
技术领域
本公开涉及计算机技术领域,具体而言,本公开涉及一种页面过度绘制的检测方法、装置、电子设备及可读介质。
背景技术
随着计算机技术的不断发展,针对各种应用(application,app)的性能测试过程已经日趋完善。其中,过度绘制(overdraw)是指屏幕上的某个像素在同一帧的时间内被绘制了多次。页面的过度绘制会严重影响页面滑动的流畅性,尤其是对于存在动画或播放视频的页面,严重的过度绘制会浪费CPU(central processing unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)资源,导致app耗电过高或页面加载过慢,从而影响用户体验。因此,检测过度绘制成为app性能测试中重要的一环。
现有技术中,针对过度绘制的检测方案普适性较差,例如一种量化方案中,需要获取当前UI(User Interface,用户界面)层次结构的xml(Extensible Markup Language,可扩展标记语言)文件,并对xml文件进行逐层分析,从而得到当前页面的过度绘制值。该方法需要获取到页面的xml文件才可以分析页面过度绘制值,但是对于页面持续播放视频导致系统任务处于繁忙状态以及App混淆加固等情况,是无法获取页面xml的,可见该方法的兼容性较差。
因此,如何实现普适性较好的过度绘制检测成为亟需解决的难题。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
第一方面,本公开提供了一种页面过度绘制的检测方法,该方法包括:
在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
统计标准色图片中至少一种标准色的占比。
第二方面,本公开提供了一种页面过度绘制的检测装置,该装置包括:
获取模块,用于在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
确定模块,用于确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
生成模块,用于根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
统计模块,用于统计标准色图片中至少一种标准色的占比。
第三方面,本公开提供了一种电子设备,该电子设备包括:
处理器和存储器,该存储器存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开的第一方面所示的方法。
第四方面,本公开提供了一种计算机可读介质,该计算机可读介质用于存储计算机指令、程序、代码集或指令集,当其在计算机上运行时,使得计算机执行如本公开的第一方面所示的方法。
本公开提供的页面过度绘制的检测方法、装置、电子设备及可读介质,通过在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;确定截图中的各个像素点对应调试过度绘制功能的标准色类型;根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;统计标准色图片中各个至少一种标准色的占比,便可利用获得的截图,完成对目标页面过度绘制情况的统计和监测,而无需获取xml文件进行检测,以克服现有技术方案的兼容性问题,提高应用性能测试的可靠性和有效性。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种页面过度绘制的检测方法的流程示意图;
图2为本公开实施例提供的自动化获取Android应用的页面截图的流程示意图;
图3a为本公开实施例提供的一个页面截图的示例图;
图3b为本公开实施例提供的一个标准色图片的示例图;
图4为本公开实施例提供的一个页面元素的示例图;
图5为本公开实施例提供的对标准色图片进行误差消除处理的流程示意图;
图6为本公开实施例提供的一个误差消除后的标准色图片的示例图;
图7为本公开实施例提供的Android应用的过度绘制的自动分析的流程示意图;
图8为本公开实施例提供的过度绘制分析模块对每个截图进行处理的流程示意图;
图9为本公开实施例提供的一种页面过度绘制的检测装置的结构示意图;
图10为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
首先对本公开涉及的几个名词进行介绍和解释:
1、调试过度绘制功能
调试过度绘制功能通常为操作系统中自带的分析工具,这个工具主要是用来帮助开发者检查布局中是否存在层次过深的问题。
以安卓(Android)系统为例,安卓系统中提供的调试过度绘制功能称为调试GPU过度绘制,通过在“设置”界面上选择“开发者选项”项,然后在“开发者选项”界面上选择“调试GPU过度绘制”项,便可开启安卓系统的调试过度绘制功能。在一些安卓系统中,“调试GPU过度绘制”界面上还可能包括“显示过度绘制区域”或“过度渲染”等项,进行选择后开启安卓系统的调试过度绘制功能。
2、调试过度绘制功能的标准色
可以理解,在检查页面的过度绘制情况时,页面中的各种布局均可以得到不同等级的检查结果。调试过度绘制功能中,通常将各个等级的检查结果分别以不同的颜色进行表示。
继续以安卓系统提供的调试过度绘制功能为例,利用了原色、蓝色、绿色、粉色、红色等颜色来代表不同程度的过度绘制情况。其中:
原色:代表没有过度绘制,即该区域只在屏幕上绘制了1次。
蓝色:代表1次过度绘制,即该区域在屏幕上绘制了2次。
绿色:代表2次过度绘制,即该区域在屏幕上绘制了3次。
粉色:代表3次过度绘制,即该区域在屏幕上绘制了4次。
红色:代表4次过度绘制,即该区域在屏幕上绘制了5次及5次以上。
本公开实施例中,将调试过度绘制功能中代表各种过度绘制情况的颜色称为各个标准色,其中,标准色可以包括或不包括原色,本领域技术人员可以根据实际情况进行设置,在此不做限定。
基于此,本公开实施例提供了一种页面过度绘制的检测方法,将待检测应用安装于包括调试过度绘制功能的系统中,如图1所示,该方法包括:
步骤S110:在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
其中,目标页面也可称为待测页面,其可以是指待测应用中需要进行检测的页面,也可以是指待测应用的特定活动组件(活动组件是一种应用组件,为基本功能模块,也可称为功能模块,其中,待测应用可以包括至少一个活动组件,一个活动组可以包括至少一个页面)中需要进行检测的页面,本领域技术人员可以根据实际情况进行设置,本公开实施例在此不作限定。可以理解,对于待测应用或特定活动组件中的每个页面,均可作为目标页面按照本方案介绍的处理方法进行处理,相同的处理过程在此不再赘述。
步骤S120:确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
由于在调试过度绘制功能开启状态下,页面布局的各种过度绘制情况会以蒙层的形式显示出对应的颜色,即页面的截图中每个像素点均会有各自的标准色类型,需要一一进行确定。
步骤S130:根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
本公开实施例中,根据每个像素点的标准色类型得到的标准色图片中,每个像素点均显示其所属的标准色类型对应的标准色,而无需显示页面内容。也就是说,标准色图片是由标准色组成的图片。
步骤S140:统计标准色图片中至少一种标准色的占比。
其中,对标准色图片中标准色的占比进行统计,即是对各种过度绘制情况的占比进行统计,便可得到页面的过度绘制情况信息。
实际应用中,可以统计标准色图片中每种标准色的占比,也可以统计所需的一种或多种标准色的占比,例如在仅需要对3次或3次以上过度绘制的情况进行优化时,可以统计粉色和红色的占比等。本领域技术人员可以根据实际情况进行设置,本公开实施例在此不作限定。
具体地,通过统计标准色图片中各标准色像素点个数,对于每种标准色,像素点个数除以图片总像素点个数,即为相应标准色的占比,继而便可得到页面的整体过度绘制情况。
本公开实施例提供的页面过度绘制的检测方法,利用获得的截图,完成对目标页面过度绘制情况的统计和监测,而无需获取xml文件进行检测,以克服现有技术方案的兼容性问题,提高应用性能测试的可靠性和有效性。
本公开实施例中,为步骤S110的“获取待测应用中目标页面的截图”步骤提供了一种可行的实现方式,具体地,对待测应用中的至少一个活动组件进行测试,截取测试过程中显示的页面,并将截取到的页面的截图作为目标页面的截图。
其中,若需要检测的是待测应用中的所有页面,则该步骤可以是对待测应用中的所有活动组件进行遍历,若需要检测的是待测应用中特定活动组件的所有页面,则该步骤可以是对所需的活动组件进行遍历,本领域技术人员可以根据实际情况进行设置,本公开实施例在此不作限定。
对于本公开实施例,对待测应用中的至少一个活动组件进行测试,截取测试过程中显示的页面,可以采用自动化的方式,具体而言,通过预设的自动化工具对待测应用中的至少一个活动组件进行遍历。
其中,预设的自动化工具可以包括但不限于各种UI(User Interface,用户界面)自动化工具、Monkey工具等。
进一步地,通过UI自动化或Monkey等自动化工具进行遍历时,可以通过以下任一种方式截取遍历到的每个页面:系统截图命令(例如对于Android系统,可以采用screencap命令等)、外置摄像设备等。
本公开实施例中,在截取测试过程中显示的页面时,还可以包括步骤:获取截取的页面对应的活动组件的名称;根据该名称,对截取到的页面的截图进行命名,以便对截图进行区分。实际应用中,若多个页面对应的活动组件名称相同,则可以在名称后面顺序增加序号进行区分。那么,在统计标准色图片中至少一种标准色的占比时,还可以将得到的统计结果(即页面的过度绘制情况)与标准色图片对应的截图的命名结果进行关联存储,以便在根据统计结果对页面进行优化时,可以快速根据命名结果找到相应的页面,提升优化效率。
作为示例地,以Android系统为例,用来命名的活动组件的名称可以为页面Activity名称。通过UI自动化或Monkey等自动化工具对Android应用所有或特定页面进行遍历,遍历过程中获取页面Activity名称和页面的截图,并以Activity名称命名截图,如果Acticity名称相同则在名称后面按顺序增加序号进行区分。
本公开实施例中,通过图2示例性地示出了自动化获取Android应用的页面截图的流程示意图。具体而言,通过UI自动化或Monkey等自动化工具对Android应用的页面进行遍历,当页面发生改变时,使用Android系统screencap命令或外置摄像设备进行截图,并通过Android系统命令获取页面Activity名称,以Activity名称对截图进行命名,并上传服务器进行存储,在应用页面未遍历完成时重复执行上述步骤,直至得到所有目标页面的截图。
本公开实施例提供的页面过度绘制的检测方法,结合自动化方案来获取页面的截图,以实现自动化地监测待检测应用的过度绘制情况。
本公开实施例中,为步骤S120的“确定截图中的各个像素点对应调试过度绘制功能的标准色类型”步骤提供了一种可行的实现方式,具体地,可以包括如下步骤:
获取截图中的各个像素点的RGB值,例如可以直接遍历截图中的所有像素点,获取所有像素点RGB值;
进一步地,分别根据各个像素点的RGB值,确定相应像素点对应调试过度绘制功能的标准色类型,即针对每个像素,根据RGB值直接判断该像素点属于哪种标准色类型。
本公开实施例提供的页面过度绘制的检测方法,通过对图片RGB值的判断,可以基于截图直接得到页面在调试过度绘制功能下的标准色情况,具有较高的普适性。
本公开实施例中,步骤S130可以通过如下方式得到对应的标准色图片:分别根据各个像素点对应的标准色类型,将截图中将相应像素点的颜色设置成透明度为零的对应标准色,得到截图对应的标准色图片。
由于在调试过度绘制功能开启状态下,页面中布局的各种过度绘制情况会以蒙层的形式显示出对应的颜色,而蒙层是有透明度的。本公开实施例中,判断完像素点的标准色类型后,可以将像素点设置成对应的标准色,并把透明度设置为0,即不透明,便可得到标准色图片。其中,该步骤可以直接在截图中进行修改设置,也可以新建一张尺寸相同的图片进行对应填充设置,均可得到对应的标准色图片,本公开实施例在此不作限定。
本公开实施例中,考虑到由于截图存在背景色等原因,可能导致得到的标准色图片存在误差,例如由如图3a所示的页面截图处理得到如图3b所示的标准色图片时,方框选中部分应该为浅色区域,由于误差处理成了深色区域。这种情况下,在步骤S140的统计标准色图片中至少一种标准色的占比之前,可以对标准色图片进行误差消除处理(也可称为后处理),继而在步骤S140中,统计误差消除后的标准色图片中至少一种标准色的占比。
具体而言,对标准色图片进行误差消除处理,可以包括如下步骤:
检测标准色图片中所含的确定各个图形轮廓,并确定各个图形轮廓是否符合设定形状;
其中,轮廓可以简单地认为成连续的点连在一起的曲线,具有相同的颜色或者灰度。而页面中的轮廓通常为页面元素的边缘。如图4所示,由于页面元素的形状一般是矩形、圆形、椭圆形或是由矩形、圆形、椭圆形中的一种或多种组成的混合图形(包括多个同一种形状或不同形状组成的混合图形,例如至少两个矩形部分重叠,或者矩形和圆形部分重叠等),本公开实施例中,将矩形、圆形(包括椭圆形)和由矩形、圆形(包括椭圆形)部分边界组成的混合图形定义为设定形状(也可称为标准形状)。
对于本公开实施例,如图5所示,可以对标准色图片中的图形进行遍历,获取到各个图形轮廓,分别判断各个图形轮廓是否符合设定形状。实际应用中,可以采用OpenCV等技术来检测标准色图片中所含的确定各个图形轮廓。
进一步地,针对符合设定形状的图形轮廓,则保留原图形颜色。
而针对不符合设定形状的图形轮廓(即非标准图形),在标准色图片中将该图形轮廓包围的各个像素点的颜色修改成包围该图形轮廓的颜色。即在判断出某图形轮廓不符合设定形状时,该图形轮廓可视为存在标准色误差,需要将该图形轮廓内的颜色进行修改。本公开实施例中,可以获取该图形轮廓的外包图形的颜色,并将该图形轮廓内的颜色(该图形轮廓包围的各个像素点的颜色)修改为获取的外包图形的颜色(包围该图形轮廓的颜色),得到误差消除后的标准色图片。
继续以如图3b所示的标准色图片为例,进行误差消除处理后,方框选中部分会修改为其外包图形颜色对应的浅色,最终得到如图6所示的误差消除后的标准色图片。
本公开实施例提供的页面过度绘制的检测方式,通过图像处理技术和标准图形后处理技术,可解决图片背景等因素带来的影响,降低了由于图片背景导致的计算误差,精度较高。
本公开实施例中,误差消除后的标准色图片也是由标准色组成的图片。对误差消除后的标准色图片中的标准色占比进行统计,可以直接根据标准色图片中至少一种标准色对应的符合设定形状的各个图形轮廓,统计标准色图片中至少一种标准色的占比。即通过获取标准色图片中符合设定形状的图形轮廓的颜色和面积(或像素个数),来统计所需标准色的占比,也可得到页面的整体过度绘制情况。
本公开实施例中,在通过步骤S140得到各个目标页面的过度绘制情况信息(统计结果)之后,还可以将各个目标页面的过度绘制情况信息存入数据库(data base,DB),便于后续根据各个目标页面的过度绘制情况信息,对各个页面进行优化。
本公开实施例中,可以将步骤S110之后的各实施例提供的方法封装为过度绘制分析模块,即在步骤S110得到各个目标页面的截图之后,将各个截图经过度绘制分析模块处理,过度绘制分析模块会针对各个截图进行所调试过度绘制功能的标准色类型的占比分析,得到对应目标页面的过度绘制情况信息。
以Android应用的过度绘制的自动分析为例,完整的流程可以如图7所示,包括以下步骤:打开调试过度绘制功能(例如Android的显示过度绘制区域开关);使用UI自动化或Monkey对Android应用的所有或特定页面进行遍历,遍历过程中获取页面Activity名称和截图,以Activity名称命名截图,如果Acticity名称相同则在名称后面按顺序增加序号进行区分;各个截图经过度绘制分析模块进行分析,统计页面的过度绘制情况,并存入数据库DB。
其中,过度绘制分析模块对每个截图的处理流程可以如图8所示,包括以下步骤:通过遍历截图中所有像素点,获取所有像素点的RGB值,根据RGB值判断相应像素点属于哪种标准色类型。随后修改像素点的颜色,将每个像素点设置成其所属的标准色类型对应的颜色,并把透明度设置为不透明。所有像素点设置完成后,便可得到标准色图片。对标准色图片进行后处理,其中后处理的流程可参见上文中的描述,在此不再赘述。基于标准色图片中的标准图像的颜色、面积,可以统计得到各标准色的面积占比,即过度绘制情况信息,并存入数据库DB。
本公开实施例提供的页面过度绘制的检测方法,与自动化技术相结合,能够自动统计和监测应用页面的过度绘制情况;通过图像处理技术和标准图形的后处理,可解决由于图片背景影响准确度的问题;与现有技术相比,本公开实施例提供的技术方案,不用获取页面xml文件进行检测,能够克服现有方案无法获取xml导致无法获取页面过度绘制情况的问题,普适性较好。
采用本公开实施例提供的页面过度绘制的检测方法,可快速暴露因过度绘制导致的客户端性能问题,便于应用的优化,以提高用户体验。
本公开实施例还提供了一种页面过度绘制的检测装置,如图9所示,该装置90可以包括:获取模块910、确定模块920、生成模块930以及统计模块940,其中,
获取模块910用于在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
确定模块920用于确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
生成模块930用于根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
统计模块940用于统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,获取模块910在用于获取待测应用中目标页面的截图时,具体用于:
对待测应用中的至少一个活动组件进行测试,截取测试过程中显示的页面,并将截取到的页面的截图作为目标页面的截图。
在一种可选的实现方式中,获取模块910在用于对待测应用中的至少一个活动组件进行测试时,具体用于:
通过预设的自动化工具对待测应用中的至少一个活动组件进行测试。
在一种可选的实现方式中,获取模块910在用于截取测试过程中显示的页面时,具体用于:
通过以下任一种方式截取测试过程中显示的页面:
系统截图命令;
外置摄像设备。
在一种可选的实现方式中,获取模块910在用于截取测试过程中显示的页面时,还用于:
获取截取的页面对应的活动组件的名称;
根据名称,对截取到的页面的截图进行命名;
那么,统计模块940在用于统计标准色图片中至少一种标准色的占比时,还用于:
将统计结果与标准色图片对应的截图的命名结果进行关联存储。
在一种可选的实现方式中,确定模块920在用于确定截图中的各个像素点对应调试过度绘制功能的标准色类型时,具体用于:
获取截图中的各个像素点的RGB值;
分别根据各个像素点的RGB值,确定相应像素点对应调试过度绘制功能的标准色类型。
在一种可选的实现方式中,生成模块930在用于根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片时,具体用于:
分别根据各个像素点对应的标准色类型,将截图中将相应像素点的颜色设置成透明度为零的对应标准色,得到截图对应的标准色图片。
在一种可选的实现方式中,统计模块940在用于统计标准色图片中至少一种标准色的占比之前,还用于:
对标准色图片进行误差消除处理;
则统计模块940在用于统计标准色图片中至少一种标准色的占比时,具体用于:
统计误差消除后的标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,统计模块940在用于对标准色图片进行误差消除处理时,具体用于:
检测标准色图片中所含的各个图形轮廓,并确定各个图形轮廓是否符合设定形状;
针对不符合设定形状的图形轮廓,在标准色图片中将该图形轮廓包围的各个像素点的颜色修改成包围该图形轮廓的颜色。
在一种可选的实现方式中,统计模块940在用于统计标准色图片中至少一种标准色的占比时,具体用于:
根据标准色图片中至少一种标准色对应的符合设定形状的各个图形轮廓,统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,统计模块940在用于统计标准色图片中至少一种标准色的占比之后,还用于:
将统计结果存入数据库。
本公开实施例所提供的页面过度绘制的检测装置,可以为设备上的特定硬件或者安装于设备上的软件或固件等,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,设备实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。
基于与本公开实施例中的页面过度绘制的检测方法相同的原理,本公开实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行本公开上述任一实施例所示的方法。
基于与本公开实施例中的页面过度绘制的检测相同的原理,本公开实施例中还提供了一种计算机可读介质,计算机可读介质用于存储计算机指令、程序、代码集或指令集,当其在计算机上运行时,使得计算机执行本公开上述任一实施例所示的方法。
下面参考图10,其示出了适于用来实现本公开实施例的电子设备100的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文的处理装置1001,存储器可以包括下文中的只读存储器(ROM)1002、随机访问存储器(RAM)1003以及存储装置1008中的至少一项,具体如下所示:
如图10所示,电子设备100可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有电子设备100操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备100与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行本公开上述任一实施例所示的页面过度绘制的检测方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种页面过度绘制的检测方法,该方法包括:
在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,获取待测应用中目标页面的截图,包括:
对待测应用中的至少一个活动组件进行测试,截取测试过程中显示的页面,并将截取到的页面的截图作为目标页面的截图。
在一种可选的实现方式中,对待测应用中的至少一个活动组件进行测试,包括:
通过预设的自动化工具对待测应用中的至少一个活动组件进行测试。
在一种可选的实现方式中,截取测试过程中显示的页面,包括:
通过以下任一种方式截取测试过程中显示的页面:
系统截图命令;
外置摄像设备。
在一种可选的实现方式中,截取测试过程中显示的页面时,还包括:
获取截取的页面对应的活动组件的名称;
根据名称,对截取到的页面的截图进行命名;
那么,统计标准色图片中至少一种标准色的占比时,还包括:
将统计结果与标准色图片对应的截图的命名结果进行关联存储。
在一种可选的实现方式中,确定截图中的各个像素点对应调试过度绘制功能的标准色类型,包括:
获取截图中的各个像素点的RGB值;
分别根据各个像素点的RGB值,确定相应像素点对应调试过度绘制功能的标准色类型。
在一种可选的实现方式中,根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片,包括:
分别根据各个像素点对应的标准色类型,将截图中将相应像素点的颜色设置成透明度为零的对应标准色,得到截图对应的标准色图片。
在一种可选的实现方式中统计标准色图片中至少一种标准色的占比之前,还包括:
对标准色图片进行误差消除处理;
统计标准色图片中至少一种标准色的占比,包括:
统计误差消除后的标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,对标准色图片进行误差消除处理,包括:
检测标准色图片中所含的各个图形轮廓,并确定各个图形轮廓是否符合设定形状;
针对不符合设定形状的图形轮廓,在标准色图片中将该图形轮廓包围的各个像素点的颜色修改成包围该图形轮廓的颜色。
在一种可选的实现方式中,统计标准色图片中至少一种标准色的占比,包括:
根据标准色图片中至少一种标准色对应的符合设定形状的各个图形轮廓,统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,统计标准色图片中至少一种标准色的占比之后,还包括:
将统计结果存入数据库。
根据本公开的一个或多个实施例,示例2提供了示例1的一种页面过度绘制的检测装置,该装置包括:
获取模块,用于在调试过度绘制功能开启状态下,获取待测应用中目标页面的截图;
确定模块,用于确定截图中的各个像素点对应调试过度绘制功能的标准色类型;
生成模块,用于根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片;
统计模块,用于统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,获取模块在用于获取待测应用中目标页面的截图时,具体用于:
对待测应用中的至少一个活动组件进行测试,截取测试过程中显示的页面,并将截取到的页面的截图作为目标页面的截图。
在一种可选的实现方式中,获取模块在用于对待测应用中的至少一个活动组件进行测试时,具体用于:
通过预设的自动化工具对待测应用中的至少一个活动组件进行测试。
在一种可选的实现方式中,获取模块在用于截取测试过程中显示的页面时,具体用于:
通过以下任一种方式截取测试过程中显示的页面:
系统截图命令;
外置摄像设备。
在一种可选的实现方式中,获取模块在用于截取测试过程中显示的页面时,还用于:
获取截取的页面对应的活动组件的名称;
根据名称,对截取到的页面的截图进行命名;
那么,统计模块在用于统计标准色图片中至少一种标准色的占比时,还用于:
将统计结果与标准色图片对应的截图的命名结果进行关联存储。
在一种可选的实现方式中,确定模块在用于确定截图中的各个像素点对应调试过度绘制功能的标准色类型时,具体用于:
获取截图中的各个像素点的RGB值;
分别根据各个像素点的RGB值,确定相应像素点对应调试过度绘制功能的标准色类型。
在一种可选的实现方式中,生成模块在用于根据各个像素点对应的标准色类型和截图,生成截图对应的标准色图片时,具体用于:
分别根据各个像素点对应的标准色类型,将截图中将相应像素点的颜色设置成透明度为零的对应标准色,得到截图对应的标准色图片。
在一种可选的实现方式中,统计模块在用于统计标准色图片中至少一种标准色的占比之前,还用于:
对标准色图片进行误差消除处理;
则统计模块在用于统计标准色图片中至少一种标准色的占比时,具体用于:
统计误差消除后的标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,统计模块在用于对标准色图片进行误差消除处理时,具体用于:
检测标准色图片中所含的各个图形轮廓,并确定各个图形轮廓是否符合设定形状;
针对不符合设定形状的图形轮廓,在标准色图片中将该图形轮廓包围的各个像素点的颜色修改成包围该图形轮廓的颜色。
在一种可选的实现方式中,统计模块在用于统计标准色图片中至少一种标准色的占比时,具体用于:
根据标准色图片中至少一种标准色对应的符合设定形状的各个图形轮廓,统计标准色图片中至少一种标准色的占比。
在一种可选的实现方式中,统计模块在用于统计标准色图片中至少一种标准色的占比之后,还用于:
将统计结果存入数据库。。
根据本公开的一个或多个实施例,示例3提供了一种电子设备,该电子设备包括:
处理器和存储器,该存储器存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开示例1所示的方法。
根据本公开的一个或多个实施例,示例4提供了一种计算机可读介质,该计算机可读介质用于存储计算机指令、程序、代码集或指令集,当其在计算机上运行时,使得计算机执行如本公开示例1所示的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。