[发明专利]一种Android系统中程序行为与界面操作映射方法有效
申请号: | 201210228718.7 | 申请日: | 2012-07-02 |
公开(公告)号: | CN103530221B | 公开(公告)日: | 2016-11-09 |
发明(设计)人: | 郑聪;朱诗雄;龚晓锐;丁羽;戴帅夫;邹维 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 系统 程序 行为 界面 操作 映射 方法 | ||
1.一种Android系统中程序行为与界面操作映射方法,其步骤包括:
1)程序UI动态探测;
1-1)启动Android系统中待测软件,遍历该软件的一个主Activity组件上每个用户界面UI元素,保存并维持当前系统内存状态;
1-2)遍历该软件上所有Activity组件并记录Activity组件之间跳转关系和用户操作信息,反复此步骤;
1-3)根据遍历的所有Activity组件,以每个Activity为结点、每个具有Activity跳转关系和用户操作信息作为边,建立Activity调用图;
1-4)输出Activity调用图对应的界面操作信息;
2)程序UI静态探测;
2-1)对待测软件进行反汇编;
2-2)根据反汇编提取用户指定程序行为所对应的API函数调用路径;
2-3)从路径中提取出触发Activity组件,输出触发Activity组件所对应的界面操作信息;
3)根据Activity调用图和触发Activity组件,找出主Activity到所述触发Activity结点的路径,输出该路径的界面操作信息,完成映射。
2.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,遍历所述UI元素时,若触发新的Activity启动,则该Activity组件遍历结束后恢复系统内存。
3.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,遍历所述Activity组件时,产生新Activity,保存当前系统内存。
4.如权利要求2或3所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述的保存当前系统内存状态,可通过dump方式把模拟器中的内存dump后写入到文件中,所述恢复系统内存是指将内存dump文件重新加载到模拟器中。
5.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述遍历Activity组件上每个用户界面UI元素方法是:通过遍历当前Activity中的UI树,得到每个UI元素;再根据UI元素的类型,执行不同类型的用户操作。
6.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述反汇编使用APK工具得到待测软件的smali代码或Dalvik代码。
7.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述的UI元素包括按钮、视图、适配器视图和组合按钮。
8.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述用户操作信息包括:UI信息和用户操作类型;所述UI信息是指被操作的UI元素的坐标以及UI类型;所述用户操作类型,指上一次操作时的用户事件函数类型。
9.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述从路径中提取出触发Activity组件的方法为:分析出所有可能执行到该API的函数调用路径,对每条路径上第一个函数进行分析,找出触发Activity。
10.如权利要求1所述的Android系统中程序行为与界面操作映射方法,其特征在于,所述Activity组件之间跳转关系根据一个Activity结点跳转到另一个Activity结点及该两结点之间的边关系来决定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210228718.7/1.html,转载请声明来源钻瓜专利网。