Html5移动应用程序的异常行为检测方法和行为模型建立方法_2

文档序号:9274863阅读:来源:国知局
具体实施例的应用程序的异常行为检测方法的流程图,如 图2所示,包括以下步骤:
[0029] S201,运行应用程序。
[0030] 其中,在本发明的一个实施例中,应用程序可以是基于HTML5技术的移动应用程 序,即通过HTML5编写的用于移动终端的应用程序。从而通过本发明的实施例可对HTML5 移动应用程序的异常行为进行有效全面的检测。在本发明的实施例中以HTML5移动应用程 序为例进行说明。
[0031] S202,提取应用程序在运行过程中的所处的至少一个界面的界面信息,并提取应 用程序在处于每个界面时的行为事件信息。
[0032] HTML5应用中主要有以下三种不同层次的界面:activity界面、HTML界面和 jQuery界面:
[0033] 1、Activity界面:对于原生的AndroidJava应用,应用的每个界面对应一个 activity。但是在HTML5应用中,应用程序的逻辑使用HTML、JavaScript、CSS(Cascading StyleSheet,级联样式表)等网络编程语言描述,运行在WebView内置浏览器环境中。所 以,HTML5应用的每个activity可生成一个WebView,在一个WebView中可加载多个HTML 文件,呈现多个HTML界面。
[0034] 2、HTML界面:如上,HTML5应用使用写入HTML文件中的网络编程语言来表述界面 的样式和应用的功能,因此一般只需要一个activity及其所生成的一个WebView,在这个 WebView中加载多个HTML文件以呈现不同的界面。
[0035] 3、jQuery界面:为了减少切换界面时用户等待加载HTML文件的时间,jQuery开 发了一种新的界面切换方式,即只需要一个HTML文件,其中包含多个jQuery界面。在应用 启动时完整加载该HTML文件,用户切换界面时(此时是jQuery界面),无需加载新的HTML 文件,只需直接切换至该HTML文件中的另一个jQuery界面部分即可。
[0036] 在HTML5应用中,最常见的界面是HTML界面和jQuery界面。虽然HTML5应用一 般只需要一个activity即可实现所有功能,但是理论上仍可以含有多个activity,例如, 在加入广告activity或某个功能模块activity等情况,会有相应的多个activity。因此, 在HTM15应用中也存在由新的activity所生成的新的界面。
[0037] 对于HTML5移动应用程序来说,有三种不同界面,对Android系统源码进行修改, 分别在新建三种界面的函数中增加获取界面信息的功能。当HTML5应用建立新的界面时, 调用事件提取模块中的函数,向行为日志中写入相应的界面信息(activity界面的name, HTML界面的URL,jQuery界面的ID)。
[0038] HTML5应用的行为事件分为两种:网络行为与本地行为。其中,网络行为指HTML5 应用与远程服务器的交互,通过应用向服务器发送HTTP请求实现。本地行为是指HTML5应 用通过以PhoneGap(-款开源的开发框架)为代表的移动应用开发框架所提供的接口,调 用相应的API实现对本地系统资源的访问,如查找联系人、获取地理位置信息、调用摄像头 等。因此,行为事件信息可包括API应用程序编程接口调用信息和HTTP请求信息。
[0039] 其中,界面信息也可叫做行为事件发生时的程序上下文环境。
[0040] 在步骤S202所执行的过程,也就是在应用程序运行过程中,监控应用程序的运行 环境(WebView),并实时提取应用程序的行为事件(如调用PhoneGapAPI或发出HTTP请求 等)和行为事件发生时的程序上下文环境(即行为发生时所在界面的信息)。
[0041] 具体地,在本发明的一个实施例中,提取应用程序在运行过程中的所处的至少一 个界面的界面信息并提取应用程序在处于每个界面时的行为事件信息,可具体包括:当应 用程序在运行过程中建立一个界面时,调用界面信息获取函数提取界面的界面信息;在建 立界面后,进一步提取应用程序处于界面时的API调用信息和/或HTTP请求信息。
[0042] 更近一步地,对于界面信息的提取,可针对HTML5应用中的三种不同界面,对 Android系统源码进行修改,分别在新建三种界面的函数中增加用于获取界面信息的函 数,即界面信息获取函数。当HTML5应用在运行过程中建立新的界面时,调用界面信息获 取函数,提取相应的界面信息,并将提取的界面信息写入行为日志。其中,界面信息可包括 activity界面的name(名称),HTML界面的URL(UniformResourceLocator,通用资源定 位符),jQuery界面的ID(Identity,身份标识码)。
[0043] 对于行为事件信息的提取,可在Android系统源码WebKit引擎(一个开源浏览器 引擎)部分的行为事件函数(指能够提取到关键行为信息的Android系统函数)中增加行 为事件信息提取函数。当行为事件发生时,就会调用行为事件信息提取函数,提取PhoneGap API调用和HTTP请求等行为事件的名称等信息,并写入行为日志。
[0044] 由上可知,为了便于根据提取的界面信息和行为事件信息建立行为模型,可将界 面信息和行为事件信息输出至行为日志,从而根据行为日志建立行为模型。因此,本发明的 实施例还可包括步骤S203。
[0045] S203,将提取的界面信息和行为事件信息写入行为日志。
[0046] 在本发明的一个实施例中,行为日志可采用XML格式。其中,根元素为〈log〉元 素,用于记录整个行为事件;<l〇g>元素的子元素为若干〈interface〉元素,用于记录应用 单个界面的界面信息,〈interface〉元素的子元素为一个〈name〉元素和若干〈action〉元 素;〈name〉元素用于记录界面信息的具体内容,如activity界面的name,HTML界面的URL, jQuery界面的ID等;〈action〉元素用于记录行为事件信息,即API调用信息(调用的API 的名称)和/或HTTP请求信息(发出的HTTP请求)。
[0047] 在本发明的实施例中,可根据以上格式将提取的界面信息和行为事件信息写入行 为日志。其中,可采用任意字符串作为〈action〉元素值域和〈name〉元素值域。
[0048] 以下为一个行为日志的示例:
[0049]
[0050] 该行为日志可体现如下信息:
[0051] 1、<name>file: //android/asset/www/index.html〈/name> 表不应用程序当前 的应用界面为HTML界面,且该HTML界面的URL为"file: //android/asset/www/index.
[0052] 2、〈action>API_call@contacts@search〈/action> 表不应用程序的当前行为事件 为API调用,且调用的API名为"contactssearch",即查找联系人API。
[0053] 应当理解,本实施例中行为日志采用了XML格式,仅为示例性的,以方便进行后续 处理,但本发明不限于此,实际应用中对行为日志具体格式没有任何要求,也可以采用其它 格式,只要包含同样的信息即可。
[0054] S204,根据至少一个界面的界面信息和每个界面对应的行为事件信息建立应用程 序的彳丁为t吴型。
[0055] 在本发明的一个实施例中,可根据界面信息和行为事件信息的对应关系生成多个 二元组,并根据多个二元组建立应用程序的行为模型,其中,待测二元组的第一个元素为界 面信息,第二个元素为与界面信息对应的行为事件信息集合。
[0056] 其中,应用程序的行为模型M可用以下序列表示:
[0057] {〈State_0>,<State_l>... <State_i>...},
[0058]序列中每个元素为一个二元组,其中,序列中第i个元素〈State」〉即为以,TJ,(Si,凡)eM,i为非负整数,行为模型M为提取到的界面信息和行为事件中所有具有对应关 系的界面信息和行为事件信息组成的二元组的集合。其中,Si为应用状态,即界面信息,其 取值为三种界面的标识的字符串,即activity界面的name、HTML界面的URL和jQuery界 面的ID;K= {tl0,tlh句,…,tuli},为应用状态SiT动作状态集合,即行为事件信息集合,其 中^为Si下第j个动作状态,其取值为应用程序所调用的API的名称或发出的HTTP请求 字符串,~为S,下动作状态总数,其
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1