当前位置: 首页 > 专利查询>北京大学专利>正文

一种Android系统中程序行为与界面操作映射方法技术方案

技术编号:9596690 阅读:204 留言:0更新日期:2014-01-23 02:12
本发明专利技术涉及一种Android系统中程序行为与界面操作映射方法,其步骤包括:1)程序UI动态探测;2)程序行为静态探测;3)根据Activity调用图和触发Activity组件,找出主Activity到所述触发Activity结点的路径,输出该路径的界面操作信息,完成映射。本发明专利技术用动态探测的方法获取所有可能的界面跳转关系及所需要的界面操作信息,然后用静态分析的方法分析出与程序行为相关联的界面,因此,就可以从动态探测出的界面跳转关系中知道触发行为所需要经过的界面执行路径,以及执行这些路径所需要的界面操作信息,实现程序行为与界面操作的映射。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及,其步骤包括:1)程序UI动态探测;2)程序行为静态探测;3)根据Activity调用图和触发Activity组件,找出主Activity到所述触发Activity结点的路径,输出该路径的界面操作信息,完成映射。本专利技术用动态探测的方法获取所有可能的界面跳转关系及所需要的界面操作信息,然后用静态分析的方法分析出与程序行为相关联的界面,因此,就可以从动态探测出的界面跳转关系中知道触发行为所需要经过的界面执行路径,以及执行这些路径所需要的界面操作信息,实现程序行为与界面操作的映射。【专利说明】
本专利技术涉及一种Android软件的映射方法,特别涉及一种Android系统中程序行为与界面操作的映射方法,属于软件分析与测试领域。
技术介绍
随着智能手机的快速发展和普及,移动互联网已经通过大量的应用软件改变了人们在娱乐、社交和工作等方面的方式。Android系统的智能手机在移动互联网市场中占据了大量的市场份额,根据EnfoDesk易观智库的报告发布的《2011年第4季度中国移动终端市场季度监测》调研数据显示,2011年第四季中国市场Android系产品市场份额占整体智能机市场的68.4%。这最近一年中,Android应用软件数量以惊人的速度增长。据Google官方数据,Android应用软件下载量从2011年3月时的30亿增长到2011年12月时的100亿。此外,Google官方电子市场中的Android应用软件数量已于2012年3月初增长到45万。由于Android系统的开放性,使得除Google官方电子市场外还存在许多第三方的电子市场,例如AmazonAppstore和Samsung Apps,特别是在中国地区,第三方的电子市场数量多达100多家。Android系统为用户提供了友好的W,但这些n会给开发者在软件测试时带来困难,自动化测试比较麻烦。另外,有些开发者把n引入到他们编写的Android恶意软件中去,利用UI来躲避现在的Android恶意软件检测技术。例如:一个Android软件需要用户对某个界面上的特定按钮点击后才能触发某个行为。因此,无论是在测试还是安全检测方面,都很难自动化地点击到正确的按钮以此来触发出行为。在Andro i d系统中,Act iVi ty是一个系统组件,用来显示每个界面的内容,并且让用户与之交互。目前,Android白盒测试技术,仅仅只能自动化地对当前Activity中的所有元素进行遍历,当需要测试由某个特定Activity中的n控件所触发的行为时,需要测试人员手工编写测试脚本来完成。同样地,在Android软件恶意行为检测技术上,自动化地操作n控件来触发相应的恶意行为也尤为困难,一个简单做法是生成随机用户事件来操作界面,但效率不到40%。这些困难的根本原因是,由于n操作逻辑的复杂性,很难将程序行为映射到界面操作上去。面对当前大量的Android软件,无论是在软件测试,还是在恶意软件检测领域,都非常有必要设计出一种Android软件的程序行为与界面操作的自动映射方法,来解决自动化软件测试和自动化恶意软件检测中的难题。
技术实现思路
鉴于以上的问题,本专利技术的目的是提供一种Android软件的程序行为与界面操作的映射方法,程序行为是需要界面操作来完成的。融合动态和静态分析技术,将程序行为自动化地映射到其对应的界面操作信息。本专利技术是通过动态遍历的方法得到所有Activity的调用关系,以及Activity调用所需的用户操作信息。然后通过静态分析方法找到程序行为所对应的API,进一步逆向搜索函数调用关系获取可能的程序执行路径,针对每个执行路径,分析得到触发Activity。最后,我们在所有Activity的调用关系里找出可到达触发Activity的路径,因此我们能得到触发程序行为所需要的界面操作信息。本专利技术提出,其步骤包括:I)程序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结点的路径,输出该路径的界面操作信息,完成映射。遍历所述UI元素时,若触发新的Activity启动,则该Activity组件遍历结束后恢复系统内存。遍历所述Activity组件时,产生新Activity,保存当前系统内存。所述的保存当前系统内存状态,可通过dump方式把模拟器中的内存dump后写入到文件中,所述恢复系统内存,将内存dump文件重新加载到模拟器中。所述遍历Activity组件上每个用户界面UI元素方法是:通过遍历当前Activity中的UI树,得到每个n元素;再根据UI元素的类型,执行不同类型的用户操作。所述反汇编使用APK工具得到待测软件的smali代码或Dalvik代码。更进一步,所述的UI元素包括按钮、视图、适配器视图和组合按钮。更进一步,所述用户操作信息包括:UI信息和用户操作类型;所述UI信息是指被操作的n元素的坐标以及n类型;所述用户操作类型,指上一次操作时的用户事件函数类型。更进一步,所述从路径中提取出触发Activity组件的方法为:分析出所有可能执行到该API的函数调用路径,对每条路径上第一个函数进行分析,找出触发Activity。更进一步,所述Activity组件之间跳转关系根据一个Activity结点跳转到另一个Activity结点及该两结点之间的边关系来决定。与现有技术相比,本专利技术的积极效果为:本专利技术能够自动化地获取与某一个行为对应的界面操作信息,现有的技术只能人工手动地去分析后得到,或者通过成功率很低的随机测试方法来得到。本专利技术用动态探测的方法获取所有可能的界面跳转关系及所需要的界面操作信息,然后用静态分析的方法分析出与程序行为相关联的界面,因此,就可以从动态探测出的界面跳转关系中知道触发行为所需要经过的界面执行路径,以及执行这些路径所需要的界面操作信息。本专利技术为现有的Android软件测试技术和Android恶意软件检测技术提供了有力的支持。【专利附图】【附图说明】图1是本专利技术Android系统中程序行为与界面操作映射方法的架构图;图2Android系统中程序行为与界面操作映射方法动态探测方法的逻辑流程图;图3Android系统中程序行为与界面操作映射方法动态探测方法静态分析方法的逻辑流程图;图4Android系统中程序行为与界面操作映射方法动态探测方法生成界面操作信息的逻辑流程图。【具体实施方式】本本文档来自技高网
...

【技术保护点】
一种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结点的路径,输出该路径的界面操作信息,完成映射。

【技术特征摘要】

【专利技术属性】
技术研发人员:郑聪朱诗雄龚晓锐丁羽戴帅夫邹维
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1