1。3 研究内容
基于上述研究背景与意义,本文将从活动及活动跳转关系的角度展开研究,提出了 Android App 的活动事件图(Activity Event Graph,简称 AEG)自动化生成方法。活动事件图 的定义是指给定一个 App,通过静态分析的方式获得该 App 中所有的活动及活动间的跳转事 件,并生成可视化的图形,其中图中的节点表示 App 中的活动,图中的边表示两者之间活动 的跳转事件。在活动事件图中,能够直观的展示一个 Android App 中所有的活动,以及活动 与活动之间是通过哪些事件进行界面转换的。
在 Android App 中,活动是指一个可供用户进行操作的界面。在该界面下,用户可以进 行拨打电话,发送断行,拍照,发邮件等操作。一个 Android App 通常由多个活动组成,并 有一个主活动做为应用的初始启动界面。事件则是指活动与活动之间进行交互的一种方式。 本文希望通过静态分析 Android App 的方式来生成该 Android App 对应的活动事件流图 AEG。
本文的主要研究内容如下:
1。 针对任意输入的 Android App 的 apk 文件,分析其清单文件 AndroidManifest。xml,获 得程序中的所有 Activity 节点以及该 Activity 节点全部的 intent-filter 配置。
2。 利用 soot[13]工具,对程序中 src 文件中的 java 类文件进行分析,获得程序中所有的 startActivity()/startActivityForResult() Activity 启动语句,即活动跳转语句,这些语句负责执行 Activity 之间的跳转。接着对活动跳转语句中的 Intent 参数进行分析,获取封装在 Intent 中的 活动跳转的目标 Activity。活动跳转语句所在的方法即为活动触发事件的边的值。
3。 将通过上述两项得到的所有节点与边的值,利用 GraphViz 工具画出 Android App 的活 动事件图。
1。4 组织结构
本文的结构安排如下:
第一章进行论文介绍,分别介绍了论文的研究背景与意义、国内外研究现状以及本文 的研究内容。
第 6 页 本科毕业设计说明书
第二章介绍了本文的背景技术与相关工作,首先介绍了 Android 的相关知识,包括 Android 四大基本组件、清单文件、活动栈、Intent 与 Intent-Filter 匹配机制,然后介 绍了相关工作,包括 soot 工具、程序静态分析与程序动态分析。
第三章介绍了 AEG 自动生成方法,分三部分讲述,首先为 Android App 清单文件分 析,然后为活动跳转事件分析,最后为 AEG 图形生成。
第四章介绍了原型工具 AEGAutoWork 的实现,先介绍了原型工具的开发环境,然后 分模块介绍了 AEGAutoWork 的实现过程,模块化设计过程与第三章的分步讨论过程 是一致。
第五章第原型工具 AEGAutoWork 进行了实验与评估,说明了方法的有效性。
第六章为本文的总结与展望。
2 背景技术与相关工作
本科毕业设计说明书 第 7 页
智能移动终端的迅速发展,使得 Android 系统得到了很大的应用,同时各种 Android 应用 程序如雨后春笋般爆发。面对众多的 Android 应用程序,如何能够对其进行高效的测试,我 们首先需要了解一个 App 的事件处理过程,也就是就需要构建一幅活动事件图。本文主要介 绍 Android 基础知识和活动事件图构建的相关工作。
2。1 Android
本节主要介绍 Android 的基础知识,首先介绍 Android 的四大基本组件;然后介绍 Android 应用程序的清单文件 AndroidManifest。xml;之后介绍 Android 活动栈;最后介绍组件之间进 行通信的接口 Intent,Intent-Filter 以及它们之间的匹配机制。