[发明专利]一种用户界面绘制层级、过度绘制的检测方法及装置有效
申请号: | 201910143733.3 | 申请日: | 2019-02-25 |
公开(公告)号: | CN111611032B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 王玉鹏 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F8/38 |
代理公司: | 北京思格颂知识产权代理有限公司 11635 | 代理人: | 杨超 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用户界面 绘制 层级 过度 检测 方法 装置 | ||
1.一种用户界面绘制层级的检测方法,其特征在于,包括:
在用户界面的刷新过程中,通过预先插入的探针获取所述用户界面的顶层视图的控件树,所述控件树包括所述顶层视图的控件,所述探针为用于获取控件树的执行代码,所述探针通过下述方式预先插入:在对应用程序的源码编译过程中,遍历所述源码搜索出所有的Activity的子类,每个所述子类对应一个用户界面;在所述子类的顶层视图源码的刷新方法部分插入探针;
在所述子类的顶层视图源码的刷新方法部分插入探针前,还包括:获取所述子类的顶层视图的标识;若获取失败,按照设定的规则在所述源码中设置所述顶层视图的标识,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;若获取成功,查找预先建立的免检视图列表中是否有所述顶层视图的标识;若否,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;
确定所述控件树的层级数量作为所述用户界面的绘制层级。
2.如权利要求1所述的方法,其特征在于,确定所述控件树的层级数量,包括:
按照预设的算法遍历所述控件树,每获取到一级控件,所述控件树的层级数量增加1,并继续获取下一级控件,直至获取不到下一级控件。
3.如权利要求1所述的方法,其特征在于,获取所述子类的顶层视图的标识,包括:
在所述子类的onStart方法源码中获取所述子类的顶层视图的标识。
4.一种用户界面过度绘制的检测方法,其特征在于,包括:
在用户界面的刷新过程中,通过预先插入的探针获取所述用户界面的顶层视图的控件树;所述控件树包括所述视图的控件,所述探针为用于获取控件树的执行代码,所述探针通过下述方式预先插入:在对应用程序的源码编译过程中,遍历所述源码搜索出所有的Activity的子类,每个所述子类对应一个用户界面;在所述子类的顶层视图源码的刷新方法部分插入探针;
在所述子类的顶层视图源码的刷新方法部分插入探针前,还包括:获取所述子类的顶层视图的标识;若获取失败,按照设定的规则在所述源码中设置所述顶层视图的标识,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;若获取成功,查找预先建立的免检视图列表中是否有所述顶层视图的标识;若否,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;
确定所述控件树的层级数量作为所述用户界面的绘制层级;
判断所述绘制层级是否大于或等于预设层级阈值;
若是,确定所述用户界面过度绘制。
5.一种用户界面绘制层级的检测装置,其特征在于,包括:
获取模块,用于在用户界面的刷新过程中,通过预先插入的探针获取所述用户界面的顶层视图的控件树;所述控件树包括所述顶层视图的控件,所述探针为用于获取控件树的执行代码,所述探针通过下述方式预先插入:在对应用程序的源码编译过程中,遍历所述源码搜索出所有的Activity的子类,每个所述子类对应一个用户界面;在所述子类的顶层视图源码的刷新方法部分插入探针;在所述子类的顶层视图源码的刷新方法部分插入探针前,还包括:获取所述子类的顶层视图的标识;若获取失败,按照设定的规则在所述源码中设置所述顶层视图的标识,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;若获取成功,查找预先建立的免检视图列表中是否有所述顶层视图的标识;若否,再执行所述在所述子类的顶层视图源码的刷新方法部分插入探针;
确定模块,用于确定所述获取模块获取的所述控件树的层级数量作为所述用户界面的绘制层级。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910143733.3/1.html,转载请声明来源钻瓜专利网。