[发明专利]一种APK自动触发工具有效
| 申请号: | 201711220729.X | 申请日: | 2017-11-28 |
| 公开(公告)号: | CN108090355B | 公开(公告)日: | 2020-10-27 |
| 发明(设计)人: | 陶敬;赵琪琪;王平辉;韩婷;曹鹏飞;王铮;张岩;柳哲;孙立远 | 申请(专利权)人: | 西安交通大学 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56 |
| 代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 段俊涛 |
| 地址: | 710049 陕*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 apk 自动 触发 工具 | ||
1.一种APK自动触发工具,包括:
APK分析预处理模块,负责启动模拟器,以及分析AndroidManifest.xml文件得到APK的相关信息;
APK自动安装与启动模块,负责将目标APK自动安装到模拟器上,并在模拟器中自动启动该APK;所述APK自动安装与启动模块分为安装子模块和启动子模块,获取需要测试的APK的位置后,通过adb install命令将目标APK安装到模拟器中,然后根据PackageName和MainActivity信息,使用adb shell am start命令来启动这个APK;所述APK自动安装与启动模块自动安装启动指定的APK,如果APK启动时出现故障,自动重新启动;
APK自动化交互模块,按照深度优先遍历的原则,实现模拟用户对UI界面中所获得的组件进行自动触发的功能,包括根据相关需求,自动生成字符串输入到需要输入文本内容的组件中,对需要进行点击操作的组件进行自动点击操作,以及根据组件触发顺序到达不同的UI界面;
其特征在于,所述APK自动化交互模块对每个UI界面,根据界面中所有组件的类型、大小、坐标信息和所在的Activity的类名,用Hash算法都生成唯一的指纹值,从而对不同的UI界面进行区分,所述UI界面指纹值的构建方法如下:
先构建组成UI界面的不同组件的指纹信息,一个组件的指纹信息由以下内容构成:
(1)组件的类型;
(2)组件的坐标信息;
(3)组件的大小;
(4)组件所在的Activity的类名;
利用以上信息按照先后顺序进行字符串拼接,最后利用Hash算法得到固定长度的指纹值,UI界面的指纹信息由上述得到的各个组件的指纹值拼接后,再使用一次Hash算法得到;
根据UI界面的指纹值是否相同,判断出UI界面是否相同,具体判断方法为:
步骤1、如果两个UI界面的Activity类名不同,则为不同的UI界面,否则进入下一步;
步骤2、如果两个UI界面里的组件数目不一样,则为不同的UI界面,否则进入下一步;
步骤3、如果两个UI界面的指纹信息不一致,则为不同的UI界面,否则为相同的UI界面;
采用分层次的方式,对每层中的所有组件,进行全面的交互,且已经触发过的组件在之后的运行过程中不会被再次触发,避免重复;
对应用程序的结构进行划分将每个出现的UI界面定义为一个层,每个UI界面必然属于且只属于某一层,一个Activity由于其中的组件的状态不同会形成不同的UI界面,属于不同的层,基于层来遍历所有的组件;
根据文本输入框的text属性的内容,对需要输入的内容进行区分,生成符合需要的格式的字符串。
2.根据权利要求1所述APK自动触发工具,其特征在于,所述APK分析预处理模块由启动模拟器和分析AndroidManifest.xml两个部分组成,启动模拟器为工具使用提供运行环境,使工具能有效运行,模拟用户自动触发APK;分析AndroidManifest.xml文件以获得待测APK启动时的包名PackageName和启动时的MainActivity,为下一步启动APK做准备;同时,在分析AndroidManifest.xml文件时还获得待测APK的所有有效的Activity的名字,为之后交互过程中判断出现的Activity是否为待测APK的Activity提供参考信息;所述APK分析预处理模块获取的APK的相关信息至少包括APK启动时的MainActivity的类名、包名PackageName以及APK中所有的Activity的类名的集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711220729.X/1.html,转载请声明来源钻瓜专利网。





