一种用户界面过度绘制的检测方法和装置制造方法及图纸

技术编号:25479159 阅读:71 留言:0更新日期:2020-09-01 23:00
本发明专利技术公开了一种用户界面过度绘制的检测方法和装置。所述方法包括:获取在用户界面刷新过程中渲染出的顶层视图的图片数据,图片数据是根据顶层视图的绘制层级渲染得到的;根据图片数据中像素点的颜色判断像素点是否被过度绘制;确定图片数据中过度绘制的像素点的个数与总像素点个数的比例,判断所述比例是否大于预设的比例阈值;若是,确定用户界面过度绘制。能够自动检测过度绘制,节省了人力成本,提高了检测效率和准确度;可以更好的帮助研发人员发现问题,最终提高应用的用户体验度。

【技术实现步骤摘要】
一种用户界面过度绘制的检测方法和装置
本专利技术涉及应用程序检测
,特别涉及一种用户界面过度绘制的检测方法和装置。
技术介绍
操作系统,例如安卓系统的应用程序(Application,APP)中常常会存在用户界面(UserInterface,UI)的过度绘制。过度绘制是指屏幕上的某个像素区域在同一帧内被绘制了多次。手机为了保持视觉的流畅度,其屏幕刷新频率通常设为60hz,即在1000/60=16.67ms内更新一帧,过度绘制因为浪费了大量的CPU以及GPU资源,使得有时UI无法在设定频率内更新到下一帧而发生掉帧,造成UI卡顿。现有技术中,安卓系统提供了用户界面过度绘制的检测工具,在手机的开发者模式中,打开“调试GPU过度绘制”,选择其中的“显示GPU过度绘制区域”,开启后系统会在不同渲染复杂度的元素上渲染上不同的颜色,具体是:一层过度绘制的显示为蓝色,二层过度绘制的显示为绿色,三层过度绘制的显示为淡红色,四层过度绘制的显示为深红色。然后开发者可以对手机屏幕做截图,并对截图做分析,肉眼查看截图中渲染为红色的区域的面积大小及红色的渲染程度,判断过度绘制的程度,决定是否需要调整原代码。上述技术方案通过人工肉眼观察的方法来判断费时费力,且人工主观判断容易出现错误,尤其是在检测人员视觉疲惫的情况下。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种用户界面过度绘制的检测方法和装置。第一方面,本专利技术实施例提供一种用户界面过度绘制的检测方法,包括:获取在用户界面刷新过程中渲染出的顶层视图的图片数据,所述图片数据是根据所述顶层视图的绘制层级渲染得到的;根据所述图片数据中像素点的颜色判断像素点是否被过度绘制;确定所述图片数据中过度绘制的像素点的个数与总像素点个数的比例,判断所述比例是否大于预设的比例阈值;若是,确定所述用户界面过度绘制。在一些可选的实施例中,根据所述图片数据中像素点的颜色判断像素点是否被过度绘制,包括:将像素点颜色的RGB值转换成HSI值;判断所述HSI值的H分量值是否大于等于预设的H分量最小阈值,且小于等于预设的H分量最大阈值;若是,确定所述像素点被过度绘制。在一些可选的实施例中,获取在用户界面刷新过程中渲染出的顶层视图的图片数据,包括:通过预先插入的探针获取在用户界面刷新过程中渲染出的用户界面顶层视图的图片数据,所述探针为用于获取所述图片数据的执行代码。在一些可选的实施例中,所述探针通过下述方式预先插入:在对应用程序的源码编译过程中,遍历所述源码搜索出所有的Activity的子类,每个所述子类对应一个用户界面;在所述子类的顶层视图源码的刷新方法部分插入探针。在一些可选的实施例中,在所述子类的顶层视图源码的刷新方法部分插入探针前,还包括:获取所述子类的顶层视图的标识;若获取失败,按照设定的规则在所述源码中设置所述顶层视图的标识,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;若获取成功,查找预先建立的免检视图列表中是否有所述顶层视图的标识;若否,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针。在一些可选的实施例中,获取所述子类的顶层视图的标识,包括:在所述子类的onStart方法源码中获取所述子类的顶层视图的标识。在一些可选的实施例中,在对应用程序的源码编译过程中,还包括:根据所述顶层视图的像素点的RGB值确定像素点的HSI值;判断所述HSI值的H分量值是否大于等于所述预设的H分量最小阈值,且小于等于所述预设的H分量最大阈值;若是,修改所述像素点的RGB值,使得修改后的RGB值对应的H分量值大于所述预设的H分量最大阈值或小于所述预设的H分量最小阈值。在一些可选的实施例中,确定所述用户界面过度绘制后,还包括:记录所述用户界面的顶层视图的下述信息:所述顶层视图的标识,所述顶层视图中被过度绘制的像素点的H分量,所述顶层视图中过度绘制的像素点的个数,和所述顶层视图中过度绘制的像素点的个数与总像素点个数的比例。第二方面,本专利技术实施例提供一种用户界面过度绘制的检测装置,包括:获取模块,用于获取在用户界面刷新过程中渲染出的顶层视图的图片数据,所述图片数据是根据所述顶层视图的绘制层级渲染得到的;第一判断模块,用于根据所述获取模块获取的所述图片数据中像素点的颜色判断像素点是否被过度绘制;第一确定模块,用于确定所述第一判断模块判断的图片数据中过度绘制的像素点的个数与总像素点个数的比例;第二判断模块,用于判断所述第一确定模块确定的比例是否大于预设的比例阈值;第二确定模块,用于当所述第二判断模块判断为是时,确定所述用户界面过度绘制。第三方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述用户界面过度绘制的检测方法。第四方面,本专利技术实施例提供一种服务器,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述用户界面过度绘制的检测方法。本专利技术实施例提供的上述技术方案的有益效果至少包括:获取在用户界面刷新过程中渲染出的顶层视图的图片数据,图片数据是根据顶层视图的绘制层级渲染得到的;根据图片数据中像素点的颜色判断像素点是否被过度绘制;确定图片数据中过度绘制的像素点的个数与总像素点个数的比例,判断所述比例是否大于预设的比例阈值;若是,确定用户界面过度绘制。能够自动检测过度绘制,节省了人力成本,提高了检测效率和准确度;可以更好的帮助研发人员发现问题,最终提高应用的用户体验度。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例中所述用户界面过度绘制的检测方法的流程图;图2为本专利技术实施例中所述探针预先插入方法的流程图;图3为本专利技术实施例中所述用户界面过度绘制的检测装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了解决现有技术中存在的通过系统渲染的截图人工检测过度绘制费时费力且易出错的问题,本本文档来自技高网...

【技术保护点】
1.一种用户界面过度绘制的检测方法,其特征在于,包括:/n获取在用户界面刷新过程中渲染出的顶层视图的图片数据,所述图片数据是根据所述顶层视图的绘制层级渲染得到的;/n根据所述图片数据中像素点的颜色判断像素点是否被过度绘制;/n确定所述图片数据中过度绘制的像素点的个数与总像素点个数的比例,判断所述比例是否大于预设的比例阈值;/n若是,确定所述用户界面过度绘制。/n

【技术特征摘要】
1.一种用户界面过度绘制的检测方法,其特征在于,包括:
获取在用户界面刷新过程中渲染出的顶层视图的图片数据,所述图片数据是根据所述顶层视图的绘制层级渲染得到的;
根据所述图片数据中像素点的颜色判断像素点是否被过度绘制;
确定所述图片数据中过度绘制的像素点的个数与总像素点个数的比例,判断所述比例是否大于预设的比例阈值;
若是,确定所述用户界面过度绘制。


2.如权利要求1所述的方法,其特征在于,根据所述图片数据中像素点的颜色判断像素点是否被过度绘制,包括:
将像素点颜色的RGB值转换成HSI值;
判断所述HSI值的H分量值是否大于等于预设的H分量最小阈值,且小于等于预设的H分量最大阈值;
若是,确定所述像素点被过度绘制。


3.如权利要求1所述的方法,其特征在于,获取在用户界面刷新过程中渲染出的顶层视图的图片数据,包括:
通过预先插入的探针获取在用户界面刷新过程中渲染出的用户界面顶层视图的图片数据,所述探针为用于获取所述图片数据的执行代码。


4.如权利要求3所述的方法,其特征在于,所述探针通过下述方式预先插入:
在对应用程序的源码编译过程中,遍历所述源码搜索出所有的Activity的子类,每个所述子类对应一个用户界面;
在所述子类的顶层视图源码的刷新方法部分插入探针。


5.如权利要求4所述的方法,其特征在于,在所述子类的顶层视图源码的刷新方法部分插入探针前,还包括:
获取所述子类的顶层视图的标识;
若获取失败,按照设定的规则在所述源码中设置所述顶层视图的标识,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;
若获取成功,查找预先建立的免检视图列表中是否有所述顶层视图的标识;若否,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针。

【专利技术属性】
技术研发人员:王玉鹏
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1