61阅读

机器人设计与实现-_Android手机防火墙的设计与实现终极版1

发布时间:2017-08-18 所属栏目:控制器的基本功能

一 : _Android手机防火墙的设计与实现终极版1

本科学生毕业设计(论文)

Android手机防火墙的设计与实现

学 生:

学 号:

指导教师:

专 业:信息安全

大学计算机学院

二O一四年六月

Graduation Design(Thesis) of University

手机防火墙 _Android手机防火墙的设计与实现终极版1

The Design and Implementation of Android

Firewall

Undergraduate: Zhou Zhengting

Supervisor: Lecturer

Major: Information security

College of Computer Science

University

June 2014

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科毕业设计(论文) 中文摘要

摘 要

在智能手机越来越普及的今天,人们对安全问题越来越重视。(www.61k.com]当前,越来越多的手机用户接收到垃圾短信以及电话,这不仅严重地影响了用户的正常生活,还为用户带来了很多安全隐患。同时,手机应用的流量问题日渐凸显,越来越多的手机应用在使用过程中经常发生“偷”流量现象。这也就产生了一种关于如何控制手机流量的使用,使其透明、直观的被用户控制的诉求。所以一款针对骚扰拦截、流量管理、任务管理等功能的手机防火墙成为了广大用户的必须。

手机防火墙存在于各种智能手机平台,其中就包括Android、Windows Mobile和Symbian。本文将详细地介绍基于Android平台的手机防火墙的设计与实现。重点介绍在Android系统上实现骚扰电话和短信的拦截和过滤的相关问题及其关键实现技术,并给出了一种实现Android系统电话和短信黑白名单过滤的防骚扰的方法。同时,也详细介绍实现快速精确控制软件访问网络的相关策略问题,也给出了一种实现Android系统上gprs和wifi管控的具体方法。

本文介绍的防火墙是采用面向对象的方法进行分析设计,采用功能模块化分类的方式进行开发实现。首先,网络防火墙部分采用的是用Iptables规则构造一个包过滤防火墙的方式来实现。使用Iptables设计的规则可以集成到Linux内核中,通过它,可以对整个系统发出去的包,接收到的包,以及转发的包进行拦截、修改、拒绝等操作,从而实现gprs和wifi的控制,最终实现网络防火墙的功能。其次,在实现电话拦截部分时,采用的是Java反射机制获取ITelephony的实例对象,并调用它的endCall()方法实现挂机。而在实现拨号拦截或发送短信拦截时,采用取消广播的方式,让电话管理器或短信管理器不能收到相应广播。同时,在实现短信拦截时,采用了基于关键字的方式进行短信拦截。最后,在实现任务管理功能部分时,则是充分调用Android中操作进程的API来完成。

依据本文的设计方案,最后完成编码后,对本文设计的手机防火墙系统的各个功能模块进行总体测试。测试表明该防火墙的骚扰拦截、上网监控等各个功能都能成功实现。同时,该系统运行稳定,使用简单方便,基本实现了预期设定的设计目标,可用于保障Android手机的安全。

关键词:Android,Iptables规则,防火墙,骚扰拦截

I

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科毕业设计(论文) ABSTRACT

ABSTRACT

With the smart phone becoming more and more unbiquitous, people are paying more attention to security issues when they use smart phone. At present, a growing number of mobile phone users receive spam messages and phone calls, which not only seriously affect the their normal life, but also force them to bear a lot of security risks. Meanwhile, the applications on smart phones often consume large amount of traffic most of which are "stealed" in background. This phenomenon give rise to the demand of smart phone users to control the usage of traffic transparently and intuitively. So a firewall with interception against harassment, traffic management, task management is seriously needed.

Mobile firewall software exist in a variety of smart phone platforms, including Android, Windows Phone and Symbian etc. This thesis will describe the design and implementation of firewall which is based on Android platform in detail. It will focus on the techniques to implement the function of harassing phone calls, SMS interception and filtering. It also introduces a method which tells us how to anti-harassment on the Android system via calls and SMS black-white list filter. Meanwhile, it not only introduces some of network-related strategic issues which tell us how to control software access to internet precisely and quickly, but also conclude a concrete method to manage and control the GPRS and WiFi moudules on the Android system.

The android firewall of this thesis utilize the object-oriented methods to do analysis and design, the functional modular classification approach to do the development and implementation. Firstly, in order to implement the network firewall, we utilize the rules of the iptables to construct a packet-filtering firewall. The rules designed by iptables can be integrated into the Linux kernel. With the help of these rules, we can intercept (or modify and refuse etc.) the packets sent, packet received or the forwarding packets, resulting in achieving to control GPRS and WiFi, and ultimately implementing the function of network firewall. Secondly, in order to implement the telephone interception, we make use of the Java reflection mechanism to get ITelephony instance of an object, and use its endCall() method to hook the phone. When it comes to implement the function of dial-up blocking or SMS interception, we use the method of abortBroadcast() which does not allow the phone manager or the

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

II

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科毕业设计(论文) ABSTRACT SMS manager to receive a corresponding message broadcast. At the same time, to implement SMS interception, we use keyword-based approach. Finally, to implement task management, we make full use of the APIs of Android to operate process.

Based on the design of this thesis, after the finalization of coding, we have tested all the modules of firewall. The results of testing indicate that the firewall blocked harassment, Internet monitoring and other modules can work very well as expected. What's more, this system is very stable and easy to use. And the desired objectives specified have achieve. So this system can be used to keep Android phones safety.

Key words:Android, iptables rules, firewall, harassment intercept

III

手机防火墙 _Android手机防火墙的设计与实现终极版1

本科毕业设计(论文) 目录

目 录

中文摘要 ................................................................................................ I ABSTRACT.......................................................................................... II 1绪论 ..................................................................................................... 1

1.1课题背景 ............................................................................................. 1

1.2 课题任务 ............................................................................................ 1

1.3 课题开发目的 ...................................................................................... 2

1.4 章节组织 ............................................................................................ 2 2相关技术简介 ...................................................................................... 4

2.1 ANDROID相关知识 ................................................................................ 4

2.1.1 Android框架概述 ........................................................................... 4

2.1.2搭建Android开发平台 ...................................................................... 6

2.2 IPTABLES介绍........................................................................................ 6

2.2.1 Iptables的表与链 .......................................................................... 6

2.2.2 Iptables的规则 ............................................................................. 8

2.3 SQLITE介绍 ......................................................................................... 8

2.4 XML介绍............................................................................................. 8

2.5 JAVA反射机制 ...................................................................................... 9 3需求分析 ........................................................................................... 10

3.1引言 ................................................................................................ 10

3.1.1编制目的..................................................................................... 10

3.1.2范围 .......................................................................................... 10

3.2项目概述 .......................................................................................... 10

3.2.1目标 .......................................................................................... 10

3.2.2用户的特点 ...................................................................................11

3.2.3开发环境......................................................................................11

3.2.4运行环境......................................................................................11

3.2.5开发语言......................................................................................11

3.2.6假定和约束 ...................................................................................11

3.3业务分析 ...........................................................................................11

3.4功能需求 .......................................................................................... 12

3.4.1功能需求总述 ............................................................................... 12

IV

手机防火墙 _Android手机防火墙的设计与实现终极版1

本科毕业设计(论文) 目录

3.4.2设计思路..................................................................................... 13

3.4.3具体实现流程 ............................................................................... 14

3.5其他需求 .......................................................................................... 20

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

3.5.1数据处理需求 ............................................................................... 20

3.5.2非功能需求 .................................................................................. 20

3.5.3总体界面结构 ............................................................................... 20

3.5.4故障处理要求 ............................................................................... 21

3.5.5接口 .......................................................................................... 21

3.5.6控制 .......................................................................................... 21 4系统设计 ........................................................................................... 22

4.1引言 ................................................................................................ 22

4.2 界面设计 .......................................................................................... 22

4.2.1 界面设计 .................................................................................... 22

4.2.2 软件构架设计 .............................................................................. 22

4.2.3对话框设计 .................................................................................. 24

4.2.4 界面美化 .................................................................................... 24 4.3 数据路设计 ........................................................................................24

4.3.1 表结构 ....................................................................................... 24

4.4系统功能描述..................................................................................... 25

4.4.1流量监控流程图 ............................................................................ 25

4.4.2上网监控流程图 ............................................................................ 27

4.4.3骚扰拦截流程图 ............................................................................ 29

4.4.3任务、软件管理流程图 .................................................................... 33 5系统实现 ........................................................................................... 35

5.1引言 ................................................................................................ 35

5.2平台配置 .......................................................................................... 35

5.3功能模块的设计与实现 ......................................................................... 35

5.3.1流量管理模块设计 ......................................................................... 35

5.3.2上网监控模块设计 ......................................................................... 37

5.3.3骚扰拦截模块设计 ......................................................................... 38

5.3.4任务、软件管理模块设计 ................................................................. 41 6测试 ................................................................................................... 43

6.1引言 ................................................................................................ 43

6.2功能性测试 ....................................................................................... 43

V

手机防火墙 _Android手机防火墙的设计与实现终极版1

本科毕业设计(论文) 目录

6.2.1基本功能测试 ................................................................................43

6.3性能测试 .......................................................................................... 55

6.4易用性测试 ....................................................................................... 56 7结论 ................................................................................................... 57 致谢 ...................................................................................................... 58 参考文献 .............................................................................................. 59

VI

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 1绪论

1 绪论

1.1 课题背景

4G时代已经到来,各种智能手机设备以及平板电脑产品雨后春笋般的出现在我们的日常生活当中。(www.61k.com]人们使用智能手机设备的频率更加频繁,而在使用的过程中受到了各种各样严重的安全威胁。对这些安全问题的处理刻不容缓,故作为能够保障手机安全的防火墙在个人安全领域有着不可替代的作用[1]。

近日,360手机安全中心发布《2014年一季度手机安全状况报告》,数据显示,2014年一季度共监测到Android用户感染恶意程序3791万人次,同比增长48.8%,环比增长49.4%。其中资费消耗类恶意程序的感染量最高,占感染人次总数的62%。根据中国反网络病毒联盟的分类标准,360互联网安全中心将2014年一季度监测的Android平台恶意程序进行分类统计,其中资费消耗类恶意程序占感染人次总数的62%。据了解,资费消耗类恶意程序的主要恶意行为是通过自动联网,上传和下载数据,安装其他应用,消耗用户手机流量和资费。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

另一方面,根据2013年中国Android手机安全状况报告表明,骚扰电话主要可以分为骚扰类,欺诈类,推销类三大主要类别,其中骚扰类以55.3%的比重成为频次最高的类别,欺诈类和推销类占比达17.6%,27.1%。骚扰电话的类别分布以及手段与垃圾短信基本一致错误!未找到引用源。。

骚扰电话以及垃圾短信给我们正常通信生活造成了困扰,怎样对这种私密的个人使用设备进行一种安全防护成为了现在的一项重要议题。同时,某些软件在后台运行,并且“偷”流量的现象也越来越普遍,怎样对这些软件进行有效控制也成了一项重要的议题。目前针对Android 系统的各种安全软件也是层出不穷。有的安全软件只有骚扰拦截和垃圾短信屏蔽的功能,有的安全软件只有网络监控功能,有的软件虽然具有这两种功能,但在功能实现上却达不到一个很理想的效果

[1]。正是基于以上背景,本设计也应运而生。

1.2 课题任务

本课题旨在设计一款Android平台智能手机的防火墙,实现流量、来电、短信拦截和过滤等功能。主要内容如下:

①网络流量控制功能:按照需求设置流量,并适时监控和显示流量并报警; ②黑白名单管理:对来电或电话薄中的号码进行分类,实现名单的增加、删除、修改等管理功能;

③可设定过滤规则,对来电进行过滤;

1

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 1绪论

④可设定拦截规则,对短信进行拦截;

⑤手机任务栏的管理。(www.61k.com]

要求:可在Android 3.0以上版本的手机上运行;提供友好界面、良好的交互性。

1.3 课题开发目的

前面已经谈到Android作为一个全新的智能手机平台逐渐的吸引到了众多的开发者的目光,用户群也是日益的壮大。随着个人移动互联网进入人们的生活,各种装有Android 系统的联网设备也将有一个光明的未来。各种手机流氓软件,手机黑客,自动拨打电话以及自动联网等手机安全问题让我们无故的支出很多的话费。随着3G 技术在我国的日益普及成熟,4G技术开始普及,接入互联网的方式更加的灵活与便捷,通过手机等设备获取大量信息的方式已经俨然成为了手机未来发展的一个必然的趋势错误!未找到引用源。错误!未找到引用源。。

防火墙技术在传统的网络安全中发挥着极为重要的作用,把这种防火墙技术运用在手机中,同样可以控制解决手机的各种安全问题,这与个人电脑中防火墙软件的功能是一样的,都是建筑起一道屏障来保护自己的隐私,但是原理以及实现的防护功能目标又是各不相同的。比如一些监控联网的防火墙能够对手机的联网行为进行实时的监管,像电脑上的软件一样通过用户使用之前的各种规则设定对其进行过滤,这样就可以有效的防止了病毒的下载和安装;另一部分的防火墙软件,比如说短信防火墙错误!未找到引用源。,它能够根据各种关键字词或者是其它的规则自动过滤掉垃圾短信,这样就切断了一部分病毒通过短信下载安装的途径;还有一部分和电话基本功能密切相关的来电防火墙,能够选择性的接打电话,对那种响一声电话或者是不方便接听电话的处境都是一个很好的选择[1]。所以开发一款功能强大的Android手机防火墙不仅可以方便我们保证手机具备一定安全性,而且也可以使我们掌握开发Android软件的基本流程,运用iptables规则错误!未找到引用源。实现过滤,掌握轻量级数据库SQLite的使用,拦截Android系统各种机制等基本技能。

1.4 章节组织

本文在后续章节将主要谈论的内容如下。

第2章 相关技术简介:首先介绍本文运用到的一些知识,主要为Android框架概述及平台的搭建、iptables介绍和SQLite数据库介绍,使对后面的内容的理解更加容易。

第3章 需求分析:主要从用户层面进行考虑,对系统提出要求和限制,使

2

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 1绪论 系统的实现功能具体展现出来。(www.61k.com)

第4章 系统设计:根据需求分析的要求,进行进一步的设计工作,确定大致方法和结构,使系统呈现出一个轮廓。

第5章 系统实现:根据系统设计提出的相关功能进行具体的编码设计,完成系统的主体程序设计。

第6章 测试:通过各种具体的测试方法,测试程序,找出程序错误,以待改进。

第7章

和收获。

结论:对本次系统的设计过程进行总结,包括对全文的总结性概述3

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介

2 相关技术简介

2.1 Android相关知识

2.1.1 Android框架概述

Android是一种基于Linux的自由及开放源代码的操作系统错误!未找到引用源。(www.61k.com],主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android的系统架构和其操作系统一样,采用了分层的架构。如图1.1所示, Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层错误!未找到引用源。。

图1.1 Android框架结构

手机防火墙 _Android手机防火墙的设计与实现终极版1

4

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介

①应用程序层

当Android有新版本发布时,它会同一系列核心应用程序包一起发布。[www.61k.com]这些应用程序包括浏览器、日历、短息管理程序、联系人管理程序等。所有的应用程序都是使用java语言编写的。

②应用程序框架层

这层主要是API框架错误!未找到引用源。。开发人员完全可以访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,减少了开发软件的复杂性。只要开发人员遵循一定该API框架规定的规则即可。在这个框架中包含了几个重要的组件,下面我们会一一介绍。

通知管理器:顾名思义,这个组件用来在状态栏中显示自定义的提示信息。 活动管理器:每一个应用程序都有生命周期,它就是用来管理应用程序生命周期并且提供常用的导航回退功能。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

资源管理器:开发一个软件不免需要很多的资源,比如图片、布局文件、字符串。它就是用来进行非代码资源的访问。

内容提供器:各个程序单独的数据使用是不现实的并且也是浪费的,所以就要实现一个数据的共享,内容提供器就是让一个应用程序来访问其它应用程序的数据。还有一种情况是内容提供器可以提供出自己的数据让其它的应用程序来共享。

③系统运行库层

应用程序框架层的应用程序的运行需要一些必要的库。这些库就是由这层来提供。它包含系统c库、多媒体库、Surface Manager、 LibWebCore和SQLite数据库错误!未找到引用源。。每一个Java程序都是运行在自己的虚拟机上的,这些可执行的文件先是通过程序的编译,最后再经过开发包中的工具转化格式,这种转化后的.dex 最终才能在虚拟机上正常的执行错误!未找到引用源。。

虚拟机能够高效的执行文件,这样就能够在性能较低的cpu上运行对内存要求较高的文件。Android 操作系统很方便的进行线程的管理以及进程的隔离,每一个软件应用都会在操作系统的底层对应有一个虚拟机运行,这些程序代码就是通过虚拟机之后才能正常的执行[16]。

④系统内核层

Android系统是基于Linux内核开发出来的,但是它只保留了Linux的大部分功能错误!未找到引用源。。在这层中,它集成了所有硬件的驱动程序,有:显示驱动、键盘驱动、照相机驱动、内存驱动、蓝牙驱动等等。其实它是软件与硬件之间的抽象层,通过相应的驱动程序来协调软硬件之间的操作问题。

5

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介

2.1.2搭建Android开发平台

Android平台的搭建需要Eclipse、ADT插件和Android SDK。(www.61k.com]Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。ADT,即Android development tools,它为开发者提供了库文件以及其它开发所用到的工具错误!未找到引用源。。Android SDK,即software development kit,是软件开发工具包,被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合错误!未找到引用源。。

目前Google公司提供了已经搭建集成好ADT插件的SDK软件,用户只要直接下来再解压即可使用。具体下载地址在:#download。

2.2 Iptables介绍

Iptables是与最新的2.6.x版本Linux 内核集成的IP信息包过滤系统错误!未找到引用源。。如果Linux系统连接到因特网或LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在Linux 系统上更好地控制IP信息包过滤和防火墙配置。

其工作原理:防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

2.2.1 Iptables的表与链

Iptables可以用于创建过滤(filter)与NAT规则,用来设置、维护和检查Linux内核的IP包过滤规则错误!未找到引用源。。由于Android系统是基于Linux来开发出来的,所以对于在Linux上使用iptables来实现防火墙功能的,在Android系统上也可以使用。如下图2.1所示,iptables是由Tables、Chains和Rules构成的。它可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作target(目标),也可以跳向同一个表内的用户定义的链。iptales只读取数据包头,不会给信息流增加负担,也无需进行验证。要想获得更好的安全性,可以将其和一个代理服务器(比如squid)相结合。

6

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介

Rules1

Rules2

Rules3

Rules1

Rules2

Rules3

图2.1 IPtables结构

Iptables有四个内建表,分别是:Filter、NAT、Mangle和Raw。[www.61k.com]下面将详细介绍着四个表。

①Filter表

Filter表是Iptables的默认表,因此如果你没有自定义表,那么就默认使用Filter表,它具有以下三条内建链:

1)INPUT链:处理来自外部的数据。

2)OUTPUT链:处理向外发送的数据。

3)FORWARD链:将数据转发到本机的其他网卡设备上。

②Nat表

NAT表有三种内建链:

1)PREROUTING链:处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

2)POSTROUTING链:处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

3)OUTPUT链:处理本机产生的数据包。

③Mangle表

7

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介

Mangle表用于指定如何处理数据包。[www.61k.com)它能改变TCP头中的QoS位。Mangle表具有5个内建链:PREROUTING、OUTPUT、FORWARD、INPUT和POSTROUTING。每个链的作用与前面两个表的作用一致。

④Raw表

Raw表用于处理异常,它具有2个内建链:PREROUTING和OUTPUT链。每条链的处理方式类似前面的表。

2.2.2 Iptables的规则

Iptables的规则指定所检查包的特征和目标。如果包不匹配,将送往该链中的下一条规则检查;如果匹配,那么下一条规则由目标值确定。该目标值可以是用户定义的链名或是某个专用值,如ACCEPT(通过)、DROP(删除)、QUEUE(排队)、REJECT(拒绝)和RETURN(返回)。ACCEPT 表示允许防火墙接收数据包。DROP表示将数据包丢弃。QUEUE表示把数据包传递到用户空间。REJECT表示拒绝该数据包,与DROP相比,它会有回应产生。RETURN表示停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。如果到达了一个内建的链的末端,或者遇到内建链的规则是RETURN,包的命运将由链规则指定的目标决定错误!未找到引用源。。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

理解Rules的关键是:

①Rules包括一个条件和一个目标(target);

②如果不满足条件,就执行目标(target)中的规则或者特定值;

③如果还不满足条件,就判断下一条Rules。

2.3 SQLite介绍

SQLite是Android内置的轻量级数据库错误!未找到引用源。,是遵循ACID的关系型数据库管理系统,它的设计目标是嵌入式的。它占用的资源非常的低,这一优点用在手机上,作用很大。因为Android手机电量有限,内存小。并且整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中[17][18]。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

2.4 XML介绍

Xml(可扩展标记语言),标准通用标记语言的子集错误!未找到引用源。,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它

8

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 2相关技术简介 非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据错误!未找到引用源。(www.61k.com)。

它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,它仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。

2.5 Java反射机制

在运行状态下,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;把这种动态获取的信息以及动态调用对象的方法的功能成为Java的反射机制错误!未找到引用源。 错误!未找到引用源。。

在Java中,这种机制提供功能以下功能:它能在运行时判断任意一个对象所属的类;它能在运行时构造任意一个类的对象;它能在运行时判断任意一个类所具有的成员变量和方法;它能在运行时调用任意一个对象的方法;它能生成动态代理[19]。

9

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析

3 需求分析

3.1引言

3.1.1编制目的

编写需求分析任务书的目的是描述所需开发的软件(Android手机防火墙)所要实现的详细功能模块的要求,为开发者明确项目的开发方向。[www.61k.com]

3.1.2范围

①开发的软件名称为Android手机防火墙。

②该软件主要有:流量监控、上网监控、骚扰拦截、黑白名单管理、任务管理、软件管理和设置七种功能。下面将具体介绍。

1)流量监控包括用户可以设置当月结余日期和当月总流量值;当流量用超之后,会发出警报,用户可以进行数据连接(GPRS)开关;可以实时观察流量的使用情况。

2)上网监控包括关闭或开启任意一个软件的上网功能,采用黑白名单的模式。

3)骚扰拦截包括查看拦截信息,包括来电、拨打和短信;用户还可以点击拦截信息进行编辑:删除和恢复到系统;在菜单栏提供清空拦截记录和刷新两种功能。

4)黑白名单管理包括添加黑名单(白名单)、查看拦截记录、设置拦截规则、添加关键字、清空黑名单(白名单)等功能。

5)任务管理包括查看进程、剩余内存等信息;可以点击屏幕底部按钮杀死进程,前提是你选择了需要杀死的进程;用户还可以在设置里面可以选择是否显示所有进程和是否锁屏杀死所有进程;以及用户可以点击某个进程查看它的详细信息和权限列表。

6)软件管理包括查看用户安装的软件和系统所有软件,可以对某个软件进行启动、卸载、查看详细信息等操作。

7)设置包括设置开机自启动,以及是否需要显示悬浮球以便方便清理垃圾。

3.2项目概述

3.2.1目标 通过开发一个手机防火墙项目来保障用户安全放心的使用手机,避免不必要的资费浪费和个人信息的泄露,以及不受陌生电话和短信的骚扰。

该软件是基于android系统设计的,通过号码黑白名单、软件黑白名单等形式错误!未找到引用源。,可以实现网络流量的有效管控和骚扰拦截。用户下载安装该软件后,

10

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析 可以手动输入黑白名单,也可以直接获取系统联系人动态设置黑白名单。[www.61k.com]然后,在手机root之后,防火墙会采用我们事先定义好的规则,对系统里具有获取Internet访问权限的软件选取来管控其是否可以上网。该防火墙还需要实现用户可以自己设置流量套餐数目功能,以及动态显示出每一软件使用的流量值错误!未找到引用源。。 短信拦截与来电拦截类似,也是采用黑白名单的方式来拦截,同时也具有关键字拦截的功能。在任务管理方面,用户可以自由的杀死不需要运行的进程,查看运行进程的权限分配情况。值得说明的是,该软件还实现了悬浮球功能,为的是更方便清理缓存。

3.2.2用户的特点

该软件最终用户为普通Android手机用户,用户应能够安装普通安卓软件并能熟练操作相关安卓应用。

3.2.3开发环境

系统需求:Windows 7及以上操作系统

软件环境:Android开发环境、SQLite数据库

测试环境:Android虚拟机、Android真机测试

3.2.4运行环境

Android 版本支持2.8及以上手机操作系统,800*480以上分辨率

3.2.5开发语言

Java语言;SQL数据库查询语言。

3.2.6假定和约束

开发期限:

项目应在5月20号之前基本完工,在6月5号前,应基本完成开发测试工作和文档撰写工作。

3.3业务分析

根据上文的分析,得出该系统的主要业务功能,下面给出具体的框架图,见图3.1。

11

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

3.4功能需求

3.4.1功能需求总述

Android手机防火墙不仅要实现流量、来电、短信拦截和过滤等功能,而且还要达到界面友好美观、使用方便,且反应速度及时、可靠性好等特点,来保障用户安全放心的使用手机。(www.61k.com]

下面将依据用户对Android手机防火墙的普遍需求,列举出相应的防火墙需求列表,如表3.2所示。

12

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析

Android防火墙用户功能需求表

表3.2

编号

1 功能 用户可以设置结余时间和总流量值,当流量用超后会报警通知,并且关

闭gprs连接;用户可查看软件实时使用流量的情况;

2 用户可以关闭或开启任意软件访问3G和wifi的权限;用户根据需要选

择相应模式来控制网络访问;

3

4 用户可以查看骚扰拦截的信息,并对其编辑; 用户根据需要设置编辑黑白名单号码并且设定相应规则;根据用户设定

的规则来对通话和短信进行屏蔽和接收;具有一声响来电提醒的功能;

用户也可以设置关键字进行短信关键字过滤屏蔽;

5

6

7 用户可以管理正在运行的进程,清理或保留; 用户可以管理手机已安装的软件; 用户可以设定软件是否开机自启动、显示悬浮球、是否自动执行上网监

控中的选择等;

3.4.2设计思路

①骚扰拦截模块

该模块主要用于记录用户手机接收到的骚扰信息,包括电话拦截记录和短信拦截记录错误!未找到引用源。[www.61k.com)。用户可以编辑拦截信息:删除或者恢复到通话(短信)记录。同时,用户可以刷新拦截列表,显示最新拦截信息。

②黑白名单模块

该模块主要用于添加黑白名单、设置黑白名单模式、编辑关键字以及清空功能。

在设置黑白名单的时候,实现用户可以选择你所要的规则。可以实现禁止号码呼入、禁止号码呼出、拦截号码短信、拦截向号码发送短信等功能。

只要用户开启黑(白)名单模式,系统就会根据用户自己设定的规则来拦截电话和短信消息。用户也可以选择是否保留拦截信息、是否自动回复短信拦截、是否自动回复电话拦截、是否开启夜间防骚扰模式、是否开启一声响提醒等功能。

在关键字的设置中,实现用户可以编辑你所需要拦截短信含有相应敏感词语的关键字错误!未找到引用源。错误!未找到引用源。。

③上网监控模块

该模块用于实现管理手机上任意一款软件通过3G和WiFi访问网络的权限错误!未找到引用源。,可以随时开启或关闭。类似于来电黑白名单屏蔽一样,该模块同样可以

13

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析 采用黑白名单的模式来管理软件访问网络。[www.61k.com]

黑名单模式是指只允许在黑名单列表以外的软件才可以通过3g和wifi访问网络。在监控已经开启的前提下,选择你需要关闭或开启的软件(或软件id号),系统会自动执行你的选择。当然,也可以关闭自动执行,实行手动执行。

白名单模式与黑名单模式类似,只不过反过来而已,即只允许你选择的软件才可以访问网络,没有选择的是不能访问的。不管是白名单模式还是黑名单模式,都可以选择禁止手机上所有软件访问网络错误!未找到引用源。。

④流量监控模块

该模块用于实现查看流量使用情况,并且可以设定每月套餐流量值和结余日期。例如在不同的地区(比如广州)每月的套餐结余日期不同,并不是固定在月底,所以只要用户设定适当的结余日期,系统会根据这个日期和每月套餐值来计算,并在流量超额使用之后提醒用户。在收到提醒后,用户可以选择关闭数据连接或继续使用。同时,该模块还提供了查看软件实时使用流量的动态列表。用户可以清晰地查看哪一款软件耗流量多,哪一款耗流量少[20]。

⑤任务管理模块

该模块主要用于对手机上正在运行的进程进行查杀。用户可以选择显示系统全部进程,也可以查看剩余内存、进程数目。当用户选择某个进程时,会弹出一个对话框,里面显示进程名和所有请求权限目录。

⑥软件管理模块

该模块主要用于对手机软件的管理。用户可以查看系统所有软件信息,也可以查看用户安装软件信息。当用户选择了某个软件时,可以对其启动和卸载操作。

⑦设置模块

该模块主要实现软件的一些系统设置。用户可以选择是否开机自启动、是否显示清理垃圾的悬浮球。

3.4.3具体实现流程

本软件主要实现骚扰拦截、黑白名单管理、流量管理、上网监控、任务管理等七大模块的功能。下面将详细介绍每一个模块的具体流程。

①骚扰拦截管理

该模块把所有拦截的信息显示其中,包括短信拦截信息和电话拦截信息。可以点击选项卡查看相应的记录,对其中的某个拦截信息列表点击,会弹出编辑对话框。通过它可以对任意一个信息删除和恢复到系统通话或短信记录中。基本流程如下图3.2所示。

14

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

字,以及整个实现骚扰拦截功能的设置。(www.61k.com)在设置中,可以开启黑白名单模式,以及对收到拦截信息后怎么处理的规则,比如自动回复、保存拦截记录等。当然,在添加名单时,可以自己设置拦截的规则。基本流程如图3.3所示。

15

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

现某个软件使用流量过多,你就可以在这里关闭它,不允许它使用网络。[www.61k.com)由于要实现对网络的控制,该软件需要获取root权限,故需要手机已经root错误!未找到引用源。。基本的流程如图3.4所示。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

16

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

流量管理包括设置流量和流量实时监控。(www.61k.com)在完成流量设置后,滑动页面进入实时显示流量使用的页面。流量管理的基本流程如下图3.5所示。

17

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

任务管理主要体现在对正在运行的进程的管理。[www.61k.com]在改模块中,可以显示系统所有进程,也可以显示用户进程。当选择了其中任意进程时,点击按钮则完成进程被kill掉。

基本流程如下图3.6所示。

18

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

⑥软件管理

该模块只是简单的实现了软件的管理。(www.61k.com]用户可以对其中任意一个软件进行卸

手机防火墙 _Android手机防火墙的设计与实现终极版1

19

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析

⑦设置模块

手机防火墙 _Android手机防火墙的设计与实现终极版1

显示悬浮球等功能设置。(www.61k.com]基本流程图如图3.8

3.5其他需求

3.5.1数据处理需求

本系统涉及到的数据处理比较少,主要集中在实现骚扰拦截功能上。具体包括黑白名单和关键字信息。所以在后续设计中要重点完成这些信息的模型建立,比如E-R图的设计。

3.5.2非功能需求

①Android 版本支持3.0以上 , 需要800*480以上分辨率。

②采用busybox工具包来操作linux命令。在上网监控模块中需要使用Linux命令来实现对软件上网行为的监控,所有需要事先在项目导入busybox二进制编译文件直接用

错误!未找到引用源。

③手机具备root权限(超级用户权限)。如果手机不能被root,那么上网监控的功能则不能使用。用户可以下一个一键root工具(比如360一键root)事先对手机root。

3.5.3总体界面结构

对于一个Android手机应用来说,一个好看而又简洁的界面,是相当重要的,

20

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 3需求分析 既能提高使用者的体验,又能保证应用的高效执行。(www.61k.com)Android SDK已经为用户提供了一套完善的界面设计功能,有丰富的组件供我们使用,如果还不能满足我们的界面需求,还可以对它们进行扩展,也就是自定义组件。

在Android手机防火墙的界面设计中,应充分利用Android丰富的组件进行界面设计。在本次需求分析对界面的规定中,主要要求软件界面布局合理。

布局合理:着重考虑不同手机屏幕大小不同的特点,所设计的布局要能根据屏幕大小适当的调整;页面之间的切换可以采用跟流畅的方式呈现,比如滑动切换等;整个系统的设计尽量保持协调性。

3.5.4故障处理要求

①系统不存在对数据毁灭性或者破坏性的错误(非人为因素);

②在操作人员操作正常并且系统运行环境正常的情况下系统不出现异常(操作无法进行、异常退出、出现程序错误的提示);

③系统可恢复性,系统在经过操作软件失误的配置后,能还原到以前的风貌; ④系统尽可能的提示操作系统及硬件环境导致的错误。

3.5.5接口

该软件属与独立软件,所实现的功能都依靠自身代码无需外部提供数据支持,故没有必要外部软件交互接口。

3.5.6控制

该软件运行于Android操作系统上,可以通过硬键盘、屏幕触摸进行控制。

21

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

4 系统设计

4.1引言

系统设计是新系统的物理设计阶段。[www.61k.com)根据系统设计阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能够在开发平台实施的方案。

在系统设计阶段,根据Android手机防火墙的实际情况,共包括界面设计、数据库设计、系统功能描述三大部分。

4.2 界面设计

4.2.1 界面设计

主界面采用了Win8 metro方块,在两个页面的转换用了3D翻转效果,设置一栏还引入了经典的SlidingMenu滑动菜单栏设计。每一个功能模块的页面都是用法Android特有通过xml文件进行布局,而不是单纯的采用Android代码进行设计。为了更好的体现界面美观,系统中自定义了几种组件,比如显示任务管理中的进程列表、系统弹出的对话框和悬浮球视图等。而关于背景颜色、字体颜色和大小等的调节,可以直接运用xml中某些字段来实现,也可以通过图片进行设计。为了突出软件特色,全部布局采用蓝白色调,以求达到简洁、干净。

4.2.2 软件构架设计

Android应用程序的设计应当简单明了,尽量做到简洁,一目了然,应尽量减少无谓的装饰,并考虑屏幕空间,使设计的各模块看起来布局合理。另外,应考虑分辨率大小,考虑将来设计的按钮、菜单、标签等组件摆放位置的合理,让用户在使用时感到逻辑流程、简单。因此,根据Android手机防火墙的功能需求,在划分界面时,每一个模块对应各个功能模块设计界面。

依据系统功能,主要界面应包括的内容见表4.1。

系统主要界面

表4.1

界面类名

main_block_first.xml

traffic_monitor.xml

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

internet_control_main.xml

appexplorer_grid.xml

main_black_white.xml

22

说明 主界面 流量监控主界面 上网监控主界面 软件管理主界面 黑白名单主界面

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

intercept_record.xml task_manager.xml

pref.xml

addblack.xml addwhite.xml

task_setting.xml intercept_setting.xml

help.xml

sms_keyword_settings.xml

骚扰拦截主界面 任务管理主界面 设置主界面 添加黑白名单页面 任务管理设置页面 骚扰拦截设置页面

帮助页面 添加关键字界面

手机防火墙 _Android手机防火墙的设计与实现终极版1

面上有所有功能模块。(www.61k.com]每个功能模块既独立又相对融合。比如,在浏览软件使用

23

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计 流量的多少时,发现某一款软件耗流量过多,则可以切换到上网监控哪里关闭它上网的请求。(www.61k.com]

4.2.3对话框设计

对话框是一个显示在当前活动前面的小窗口,一般用来通知用户当前系统运行中出现的问题而导致程序暂停运行,或者告知运用改进行的操作。本软件的对话框主要用于数据输入、更新界面进度条。比如,在流量设置中,运用对话框来输入当月结余流量和套餐值。

4.2.4 界面美化

图标的作用有两个,一个是实现从一个界面跳到另一个界面,实现功能衔接。在系统中很多情况下都是用Button(或ImageButton)按钮实现该功能。但在主界面中则使用整个layout布局贴上图片实现按钮点击的效果,采用类似于Win8 metro方块的设计思想。另一个功能只是为了美观,达到整体布局统一的效果。

4.3 数据路设计

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

在本系统中,由于需要处理的数据量不大,对数据操作不是很复杂。系统设计数据库的只有骚扰拦截模块。在这个模块中需要对黑白名单存储、关键字存储和拦截记录存储。根据对系统的需求分析,综合各个方面的考虑,考虑到操作方便,我们才用xml文件进行黑白名单的存储。所以系统的数据库只有两个表:拦截记录和关键字

4.3.1 表结构

根据我们上面的需求分析,我们得到系统中需要的两个表:拦截记录与关键字。同时,这两个表是相对独立的,没有参照性约束。下面详细介绍这两个表的结构。

①拦截记录表(record)

拦截记录表有七个字段,用来表示电话和短信的拦截信息。其中state字段比较复杂,有四种状态:电话呼入,用1标记;电话呼出,用2标记;接收短信,用1标记;发送短信,用2标记。具体信息见表4.2。

record拦截记录表

表4.2

列名

_id 数据类型 INTEGER 标识 是 主键 是

24

允许空 否 说明 拦截记录标识

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

name date number state

TEXT INTEGER TEXT INTEGER

拦截号码的名称 拦截的时间 拦截号码

拦截状态:呼入、呼出、接收、

发送

type content

INTEGER TEXT

拦截类型:电话或短信

拦截短信内容

②关键字表(smskey)

关键字表只有两个字段,一个是主键_id,一个是短信关键字内容。(www.61k.com]具体信息见下表4.3。

Smskey关键字表

表4.3

列名 _id sms_keyword

数据类型 INTEGER TEXT

标识 是

主键 是

允许空 否

说明 关键字标识 拦截关键字内容

4.4系统功能描述

根据系统功能需求,系统的操作流程以流程图的形式表达,这些流程图能够描述某一项操作的整个操作流程。通过对了流程图的描述,我们可以看出操作方式方法和操作实现的原理。

该系统核心部分应包括:流量监控、上网监控、骚扰拦截、任务管理、软件管理。系统的功能是按照需求分析而来,但在某些方面会有所改动。这些改动与需求分析来比,会使整个防火墙运用更加方便、更加实用和简单。下面就将系统的各个功能进行描述。

4.4.1流量监控流程图

该流程描述的主要功能是:显示GPRS和WiFi使用情况,查看GPRS实时使用情况,进行流量管理。具体流程见图4.2。

25

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

①流量监控服务:当手机开机或进入流量管理界面后,系统会自动开启服务。(www.61k.com]在服务里面,会分别判断gprs和wifi的状态,若处于开启状态,则系统会获取正在运行的需要访问internet的应用程序id,根据该id来进一步获取它们使用网络的流量,并且根据之前已经使用的流量来重新计算剩余流量。若gprs和wifi没有开启,则显示已使用的流量情况。当计算出gprs只剩下1M以下时,会自动关闭gprs,在通知栏弹出报警提示。

②流量显示:进入流量管理主界面后,会显示有流量监控服务得出流量使用情况结果,包括套餐使用情况和今日使用流量。同时,也可以点击菜单编辑流量套餐信息。在实时动态显示流量界面中,可以看到每一个应用程序所使用的gprs流量。

26

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

4.4.2上网监控流程图

该流程描述的主要功能是:监控和关闭手机上的应用3g和wifi上网功能。[www.61k.com]具体流程见图4.3。

上网监控流程图具体功能描述:

①在手机开机或第一次使用时,该系统会判断上网监控功能是否开启,默认状态是白名单、自动执行选择。但要实现上网监控的前提是手机已经被root。若检测到手机已经root过了,系统会自动根据以前选择的名单、模式来监控已经选择的应用。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

②进入上网监控的主界面后,选择你需要的模式。如果你只想允许某些应用上网,则可以选择白名单模式。白名单模式负责监控除你选择的应用以外的软件的上网行为,屏蔽它。同时,用户也可以选择使用3g或者wifi,甚至两者都可以访问网络的方式上网。只要你做出选择则执行后,该应用一定会按用户需要的方式来上网。相反,采用黑名单模式的话,则会只管理用户选择应用而不管其他应用上网的行为。

27

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

28

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

4.4.3骚扰拦截流程图

该流程描述的主要功能是:对来电或拨打和接收短信或发送短信基于规则拦截,以及根据关键字过滤拦截。(www.61k.com)

手机防火墙 _Android手机防火墙的设计与实现终极版1

该名单进行规则的定义。这里有四种规则:禁止呼入、禁止呼出、禁止接受和禁

29

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计 止发送。(www.61k.com)其中后面两条规则是针对于短信拦截的,但它们在同一个界面进行设置(即addBlack.xml或addWhite.xml)。

1)黑名单模式。顾名思义,在该模式下,系统只允许屏蔽用户设定黑名单手机号码,之外的号码时能正常通话的。该系统会实时监听电话广播,当收到来电时,首先会判断是否是“一声响”电话号码,是则进行拦截提示,不是则继续往下判断。这里判断 “一声响”来电是根据它从响铃到挂断的时间是否为3秒钟。在黑名单模式开启的状态下,对来电号码进行黑名单匹配,若在黑名单中则在根据该号码设定的规则进行拦截。当设为“禁止呼入”规则时,系统马上回对其拦截,并且把拦截记录显示在骚扰拦截列表中。

2)白名单模式。该模式作用的结果与上文的黑名单模式相反,这里不再赘述。需要强调的是,它不只是单单允许白名单能呼入,而且也可以设定规则,系统会根据用户设定的规则准确判断的。

②短信拦截具体流程图

该活动描述的是短信拦截的实现,具体操作流程见图4.5。

30

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

1)黑白名单模式。(www.61k.com]用户可以在添加黑白名单的界面中进行号码编辑,进行规则设定。这里有两条短信规则:禁止接收和禁止发送。在对号码进行编辑之后,系统监听到有短信需要被接收时,获取它的目的号码。同时,根据这个号码来进行黑白名单的匹配。若在黑名单中匹配到该号码时,在对这个号码进行规则判断,

31

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计 看它属于“禁止接收”还是“禁止发送”。[www.61k.com)若是禁止接收则马上进行拦截,并且保存在骚扰拦截记录中。若是禁止发送,则不用拦截,因为禁止发送只对是用户发送的短信才起作用。如果你不需要进行拦截,只需关闭黑白模式的按钮开关即可。

2)关键字拦截。用户可以在骚扰拦截设置界面中设置是否开启关键字拦截。一方面,在开启状态时且非黑白名单的情况下,根据读取短信的内容再与关键字进行匹配。若含有关键字则进行短信拦截,若没有则不作处理。另一方面,在开启状态下且黑白名单模式的情况下,有两种情况也需要进行关键字过滤。它们是:a.能匹配黑名单但“禁止接收”规则的状态为否;b.能匹配白名单,但“禁止接收”

手机防火墙 _Android手机防火墙的设计与实现终极版1

拦截发送流程图具体描述:

32

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计

拦截发送短信指的是在黑白名单中设定规则“禁止发送”,功能比较简单。[www.61k.com)当系统监听到用户需要发送短信时,根据需要发送短信的号码进行黑白名单的匹配。当匹配成功后,早进行规则匹配,若是“禁止发送”则马上进行拦截,并且显示在

手机防火墙 _Android手机防火墙的设计与实现终极版1

任务管理的主要功能是:进行进程管理,可以查看正在运行的进程数目、内

33

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 4系统设计 存、kill进程释放更多内存、以及查看该进程的权限信息。[www.61k.com)

软件管理的主要功能是:进行软件管理,可以卸载、启动任意一款软件。同

手机防火墙 _Android手机防火墙的设计与实现终极版1

1)任务管理。用户进入任务管理的界面后,可以随意选择任何一个进程。若你想kill掉的话,只需点击界面下面的图标按钮。若你想查看该进程到底请求了那些权限,则需要稍微长时间选定它,就会在弹出的对话框中显示详细的信息。同时,用户也可以看到当前进程数量和可用内存大小。

2)软件管理。它与任务管理类似。用户接入软件管理界面后,随意选择一个软件,就可以在弹出的菜单中操作该软件。可以进行卸载软件、启动该软件、以及查看软件信息。

34

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现

5 系统实现

5.1引言

通过前面对Android手机防火墙的分析与设计,本节将系统的所有功能实现。[www.61k.com]本系统的开发语言为Java,开发平台为Eclipse平台。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

5.2平台配置

本系统设计的平台配置不多,主要体现实现上网监控模块上需要外部导入工具文件。为了实现用iptables命令来构造规则实现防火墙的功能,本系统从网上找了三个编译好的二进制文件busybox_g1、iptables_g1和iptables_n1,并将它们放在资源文件夹raw下,用的时候在导入软件缓存文件夹里面即可。

5.3功能模块的设计与实现

本系统主要实现流量管理、上网监控、骚扰拦截、任务软件管理等功能。下面将具体介绍每一功能模块设计与实现。

5.3.1流量管理模块设计

实现流量的管理,需要有一个service服务来实时计算手机上各个软件消耗的流量,计算得出的流量需要一个ListView页面来展示。同时,也要提供一个Dialog对话框来输入流量的套餐值。下面具体介绍实现步骤。

①计算流量的服务TrafficMonitorService类

该服务后台运行,实时调用CurrentRunAppTrafficInfo类与Traffic类来获取流量。在Traffic类中,主要调用Android自带的类TrafficStats来轻松获取流量统计。系统用到该类的静态方法如下:

getMobileRxBytes():获取通过Mobile连接收到的字节总数,不包含WiFi; getMobileRxPackets():获取Mobile连接收到的数据包总数;

getMobileTxBytes():Mobile发送的总字节数;

getMobileTxPackets():Mobile发送的总数据包数;

getTotalRxBytes():获取总的接受字节数,包含Mobile和WiFi等;

getTotalRxPackets():总的接受数据包数,包含Mobile和WiFi等;

getTotalTxBytes():总的发送字节数,包含Mobile和WiFi等;

getTotalTxPackets():发送的总数据包数,包含Mobile和WiFi等;

getUidRxBytes(int uid):获取某个网络UID的接受字节数

getUidTxBytes(int uid):获取某个网络UID的发送字节数

35

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现 这些方法都是自手机启动之后开始计算软件使用的流量的。[www.61k.com]

1)通过代码:

be_send = TrafficStats.getMobileTxBytes ();

be_rev = TrafficStats.getMobileRxBytes();

获取在手机关机之前总流量,保存在xml文件中,然后接着获取下次启动手机的流量值在保存,以此类推,在月结余日那一天就能得到一个月使用的流量。

2)通过代码:

if (TrafficStats.getMobileTxBytes() > be_send

|| TrafficStats.getMobileTxBytes() == be_send) { - be_send + gprs_send);

TrafficStats.getMobileRxBytes() - be_rev+ editor.putLong("gprs_send", TrafficStats.getMobileTxBytes() editor.putLong("gprs_rev",

gprs_rev);

}else {

editor.putLong("gprs_send", TrafficStats.getMobileTxBytes() } + gprs_send); + gprs_rev); editor.putLong("gprs_rev", TrafficStats.getMobileRxBytes()

gprs[0] = totalPreference.getLong("gprs_send", 0);

gprs[1] = totalPreference.getLong("gprs_rev", 0);

// 总的gprs流量

gprs[2] = gprs[0] + gprs[1];

来计算当天内关机之间使用的流量,减去之前的be_rev和be_send得到此次开机到此时使用的流量。然后根据获得gprs[]数组值,获取系统时间,判断是否属于同一天里面消耗的流量,把每次获取到的流量存储在total_traffic.xml文件中。然后通过读取traffic_setting.xml里面事先写入的时间和过去已经使用流量相加得到今天使用的流量,且实时的改变。同理,获取wifi流量的处理方法类似,只不过wifi获取是通过:

TrafficStats.getTotalTxBytes()-TrafficStats.getMobileTxBytes()来得到。

②当前应用使用gprs流量信息类CurrentRunAppTrafficInfo

这个类主要根据getUidRxBytes(int uid)和getUidTxBytes(int uid)类得到一个根据id来区别请求上网的应用程序的列表List<MonitorAppInfo>,然后通过适配器处理,显示在ListView中。

36

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现

③主界面类TrafficMonitorActivity

在①的叙述只能获取gprs和wifi的值,要判断是否流量使用将要使用完,则还要在TrafficMonitorActivity中处理。[www.61k.com)处理过程很简单,只要动态读取服务传过来的流量值,读取用户输入的套餐值,两者相减即可知道本月已经使用值和本月剩余值。若剩余gprs流量小于流量提醒警戒值,则使用Notification类生成弹出警报的通知,并且关闭gprs连接。对于wifi流量处理与gprs的类似,该系统没有进行处理。在②中得到动态上网应用列表结果ShowTrafficAdapter适配器类处理后,就可以显示在主界面中ListView中。

5.3.2上网监控模块设计

实现上网监控主要通过自定义iptables规则构造一个包过滤防火墙进行拦截应用程序上网的行为。Rules包括一个条件和一个目标(target),如果满足条件,就执行目标(target)中的规则或者特定值;如果不满足条件,就判断下一条Rules。分以下步骤进行:

①判断是否有root权限

通过执行一个空脚本来判断。若能执行成功,则表示该手机已经被root,该系统可以获取root权限。代码:

if (runScriptAsRoot(ctx, "exit 0", res) == 0) {

hasroot = true;return true;}

②构造iptables防火墙规则

1)依据iptables构造规则的原理,首先使用默认表,创建四条新链:

$IPTABLES --new firewall exit 2

$IPTABLES --new fireWall-3g exit 3

$IPTABLES --new fireWall-wifi exit 4

$IPTABLES --new fireWall-reject exit 5

2)创建处理上网监控应用程序的规则

在手机上,与上网有关的网卡封装包输出接口类型有:tiwlan+、 wlan+、 eth+、rmnet+、 pdp+、ppp+、uwbr+、wimax+、vsnet+。根据类型我们定义了主规则:

$IPTABLES -A fireWall -o 封装包类型 -j fireWall-3g(或者wifi) || exit。 然后根据应用id创建拒绝访问网络的规则。应用id主要由InternetMonitorApp类调用系统API函数获取,则有用户选择确定。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

白名单模式规则:

a. $IPTABLES -A fireWall-3g -m owner --uid-owner (应用id) -j RETURN || exit

b. $IPTABLES -A fireWall-wifi -m owner --uid-owner(应用id) -j RETURN ||

37

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现 exit

c. $IPTABLES -A fireWall-3g -j fireWall-reject || exit

d. $IPTABLES -A fireWall-wifi -j fireWall-reject || exit

这里a,b是允许指定的id应用程序上网的规则,c,d则是拒绝id以外的应用上网规则。(www.61k.com]

黑名单模式规则:

a. $IPTABLES -A fireWall-3g -m owner --uid-owner 应用id -j fireWall-reject || exit

b. $IPTABLES -A fireWall-wifi -m owner --uid-owner 应用id -j fireWall-reject || exit

这两条规则则是拒绝指定id的应用程序通过3g或wifi访问网络。

③执行iptables规则脚本

根据上文的规则,加上脚本头之后,写入到一个脚本文件中。脚本头主要作用是找到我们用于执行操作iptables构造规则的linux命令。然后调用运行脚本的线程ScriptRunnerThread来执行脚本。具体执行核心代码如下:

final String abspath = Iptablesfile.getAbsolutePath();

Runtime.getRuntime().exec("chmod 777 " + abspath).waitFor();

final OutputStreamWriter out = new OutputStreamWriter(

new FileOutputStream(file));

out.write("#!/system/bin/sh\n");

out.write(script);

if (!script.endsWith("\n"))

out.write("\n");

out.write("exit\n");

out.flush();

out.close();

if (this.asroot) {

exec = Runtime.getRuntime().exec("su -c " + abspath);

} else { } exec = Runtime.getRuntime().exec("sh " + abspath);

5.3.3骚扰拦截模块设计

①电话拦截部分

Google公司可能是出于安全方面的考虑,Android SDK在1.5版本之后,就

38

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现 把实现挂机的方法屏避掉了。[www.61k.com]之所以说屏避掉了,是因为通过查看操作系统源代码发现,发现依然可以通过TelephonyManager的getITelephony方法,获取ITelephony接口的实例(该接口的endCall()方法可以实现挂机)。在Android 1.5以前,getITelephony是公开方法,然而在1.5版本之后,该方法己改为私有,因为被屏避掉了。因为要获得ITelephony实例对象,需要同时利用到Android的AIDL机制和JAVA的反射机制。通过JAVA的反射机制,获得ITelephony的实例对象,调用ITelephony 的endCall()隐藏方法来挂断电话。电话管理器有三种状态:

待机状态TelephonyManager.CALL_STATE_IDLE;

接通状态TelephonyManager.CALL_STATE_OFFHOOK;

响铃状态TelephonyManager.CALL_STATE_RINGING;

本系统通过自定义两个电话广播监听类PhoneReceive和OutCallReceive来处理呼入呼出的通话信息。

1)一声响拦截

首先在响铃状态时,判断是否是“一声响“来电,依据是从响铃到待机状态时间小于3秒。若是一声响来电,则会通知提示用户添加它到黑名单。然后开始黑白名单模式的拦截。

case TelephonyManager.CALL_STATE_IDLE:

if (globle.isNotifyOneRing()) {

if ((end > start) && ((end - start) <= 3000)) { } showOneRingingNotify(context, incomingNumber); delSysRecord.deleteCallLog(incomingNumber);

2)黑名单拦截

用接收到的电话号码与黑名单列表进行匹配,若是黑名单且禁止呼入,则拦截它并且写入数据库record表中。黑名单存放在xml文件中,读取很简单。在电话挂断之后,删除系统通话记录,弹出通知提示拦截该号码。设置了拦截自动回复的还要发送一条短信到呼入号码手机上。对于禁止呼出的电话拦截,只要获取电话广播之后插入一个空号码即可,即在广播处理函数onReceive中调用setResultData(null)。下面给出黑名单来电挂断的核心代码如下:

case TelephonyManager.CALL_STATE_RINGING:

if (globle.isUsBlack()) {

if ((blackUtil.isBlackNumber(incomingNumber))) { bc = blackUtil.getBlackCallInfo(incomingNumber);

39

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现

}} if (bc.isBarIncoming()) { delSysRecord.deleteCallLog(incomingNumber); intercepter(context, bc.getName()); isIntercepter = 2; isNotify(context, bc.getName()); isSaveRecord(context, bc.getName()); isAutoReturn();

public void intercepter(Context context, String name) {

try { } Method getITelephonyMethod = telMgr.getClass().getDeclaredMethod("getITelephony", new Class[] {}); getITelephonyMethod.setAccessible(true); Object mItelephony = getITelephonyMethod.invoke(telMgr, new Object[] {}); new Class[] {}); Method endCall = mItelephony.getClass().getMethod("endCall", endCall.invoke(mItelephony, new Object[] {});

3)白名单拦截

只要设置了规则,拦截方式、处理方法与黑名单类似,只是做法相反而已,都要进行禁止呼入和禁止呼出规则判断。[www.61k.com)

②短信拦截部分

本系统通过自定义两个广播监听类SmsInReceive和SmsOutReceive来处理发送短信和接收短信的广播。

1)关键字短信拦截

在黑白模式未开启的状态下或黑白模式开启且禁止接收和发送状态为否的情况下,设置了进行关键字拦截的规则后,监听短信广播,获取短信内容,然后从数据库sms_keyword表中读取关键字,与设定的关键字匹配。若含有关键字则拦截,并且进行通知提示和拦截记录存储。核心代码如下:

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

if (globle.isOpenSmskeyWord()) {//处理逻辑

if (keywordHandle(content)) { delSysRecord.deleteSms(phone); isSaveRecord(ctx, "垃圾短信"+wc.getName(), content);

40

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现

} return 2;} public boolean keywordHandle(String body) {//判断是否含关键字 Cursor cur = db.queryAll(DatabaseInfo.SMSKEYTABLE); if (cur.moveToFirst()) { } for (int i = 0; i < cur.getCount(); i++) { } String if (body.contains(key)) { } cur.moveToNext(); return true; key = cur.getString(cur.getColumnIndex("sms_keyword")); cur.close();return false;

2)黑白模名单拦截

获取短信的号码后,进行匹配和规则判断,符合则拦截。[www.61k.com)核心代码如下: if (globle.isUsBlack()) {

if (blackUtil.isBlackNumber(phone)) { bc = blackUtil.getBlackCallInfo(phone); System.out.println(bc); if (bc.isBarReceiveSms()) { delSysRecord.deleteSms(phone); isSaveRecord(ctx, bc.getName(), content); isAutoReturn(); return 1;}

最后判断符合条件后,执行取消广播操作abortBroadcast(),使得手机不能获取到接收广播。

5.3.4任务、软件管理模块设计

①查看剩余内存。实现查看内存,只需调用Android的api获取即可。核心代码如下:

private long getAvailMemoryInfo() {

MemoryInfo outInfo = new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(outInfo);

41

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 5系统实现

} return outInfo.availMem;

②杀死进程。(www.61k.com]用户可以杀死任意一个不想让它运行的进程。这个过程中还要计算杀死进程的大小,以备提示用户。核心代码如下:

for (TaskInfo taskinfo : usertaskinfos) {

} if (taskinfo.isIschecked()) { } memorysize += taskinfo.getMemorysize(); taskInfos.remove(taskinfo); total++; activityManager.killBackgroundProcesses(taskinfo.getPackname());

③查看进程信息。显示进程的详细信息需要AppDetailActivity来处理。通过Java反射的方式找到getPermissionsView视图对象显示。核心代码如下:

Class clazz = getClass().getClassLoader().loadClass(

}

④软件卸载。

只需使用意图根据用户选择的包名执行setAction(Intent.ACTION_DELETE)即可。核心代码如下:

Uri packageUri = Uri.parse("package:"+ tempPkInfo.packageName);

Intent uninstallIntent = new Intent(); uninstallIntent.setAction(Intent.ACTION_DELETE); uninstallIntent.setData(packageUri); startActivityForResult(uninstallIntent, 0);

42

"android.widget.AppSecurityPermissions") Context.class, String.class }); packname }); Constructor constructor = clazz.getConstructor(new Class[] { Object object = constructor.newInstance(new Object[] { this, Method method new Class[] {}); = clazz.getDeclaredMethod("getPermissionsView", View view = (View) method.invoke(object, new Object[] {}); sv_app_detail.addView(view);

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

6 测试

6.1引言

手机测试能检查出设计实现的系统存在的问题。(www.61k.com)手机软件测试应包括平台应用测试和业务应用测试。平台应用测试是在手机终端上进行平台测试。本软件是基于Android系统来进行开发,所以需要在Android 2.8以上的手机平台进行测试。业务应用测试是进行本系统的应用方面测试,其主要功能包括手机功能性测试,性能测试和易用性测试和非技术测试。以下主要针对业务应用展开测试工作。

6.2功能性测试 6.2.1基本功能测试

基本功能测试

表6.1

编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

测试项目

是否可以正常跳转到需要的界面 检查系统进行流量报警是否正常 检查系统进行流量值输入错误是否反应正常 检查流量是否动态显示应用流量信息正常

检查上网监控黑白模式是否正常 检查来电黑白名单拦截是否成功 检查短信黑白名单是否成功 检查一声响来电拦截是否成功 检查关键字短信拦截是否成功 检查骚扰拦截记录编辑是否正常 检查骚扰拦截自动回复是否成功 检查黑白名单联系人导入是否成功

检查添加关键字是否成功 检查编辑黑白名单号码是否成功 检查任务管理进程清理是否正常 检查任务管理显示系统进程是否成功

进程软件卸载是否成功 检查侧边菜单是否正常 检查系统设置是否正常

43

测试结果

是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

下面根据表6.1中的各个项目进行测试:

①由于本系统不是完成的一种模块功能循环实现,系统存在相对独立的各个模块,故不能任意的在各个界面之间切换。[www.61k.com)如图所示,图6.1-图6.2展示了从流量管理到上网监控界面的跳转。

跳转

手机防火墙 _Android手机防火墙的设计与实现终极版1

图6.1 流量管

理界面 图6.2 上网监控界面

②进行流量报警

为了测试方便,我们在流量输入框中输入3M,然后用软件慢慢消耗到小于1M,若系统弹出报警通知接关闭数据流量则表示成功。如图所示,图6.3-图6.5展示了流量设置到流量报警这一过程。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

44

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.3 设置流量和警戒值 图6.4 显示流量情况

图6.5 流量报警

③流量套餐输入错误处理测试

用户难免在输入时出现错,若出现不能处理的话,会造成计算错误。(www.61k.com)流量输

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

入主要在时间输入上出错。流量则由一个只能输入大于零且可以为整数和小数的

45

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试 正则表达式控制。[www.61k.com]如图6.6所示。

图6.6 流量错误处理

④检查动态显示应用流量信息测试

系统会根据用户使用的情况动态的显示在列表中。在这个页面查看流量使用情况,若发现某些软件过多消耗流量的话,即可进入上网监控界面进行关闭。从图可以发现,系统能正常动态显示。如图所示,图6.7-图6.8展示了动态流量显示的过程。

手机防火墙 _Android手机防火墙的设计与实现终极版1

46

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图 6.7 动态显示应用流量 图6.8 动态显示应用流量 ⑤上网监控黑白模式功能测试

分别对黑白模式进行测试,看是否可以监控软件的上网功能。(www.61k.com]如图所示,图

6.9-图6.16展示了上网监控黑白模式下的网络情况。

图6.9 黑名单关闭上网 图6.10 上网监控成功

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

47

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.11黑名单拦截

图6.13 黑名单拦截wifi

图6.12 wifi允许3g上网 图6.14 拦截wifi成功

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

48

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.15 白名单拦截wifi上网 图6.16 拦截成功

⑥来电黑白名单拦截功能测试

设置用户需要拦截的号码,自定义拦截规则,把拦截记录显示在界面上。(www.61k.com]如图所示,图6.17-图6.24展示了骚扰拦截中的来电拦截的各个过程。

图6.17 黑名单列表 图6.18来电拦截

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

49

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.19拦截记录

图6.21 号码导入

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

图6.20 一声响拦截 图6.22 骚扰拦截设置 50

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.23 白名单不拦截 图6.24 编辑名单

⑦短信拦截测试

分为关键字拦截和基于号码的黑名单拦截。(www.61k.com]从图中通知栏的提示可以判断测试是否成功。如图所示,图6.25-图6.29展示了骚扰拦截中的短信拦截的各个过程。

图6.25 添加关键字 图6.26 关键字拦截成功

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

51

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.27 拦截自动回复 图6.28 自动回复成功

图6.29 黑名单短信拦截

⑧任务管理测试

主要测试任务进程是否可以清理。(www.61k.com]如图所示,图6.30-图6.33展示了任务管理的基本功能的实现。

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

52

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.30 悬浮球 图6.31 用户进程

图6.32 任务管理设置 图6.33 显示进程信息

⑨软件管理测试

软件管理中主要进行是否可以卸载软件、启动软件等功能。[www.61k.com)如图6.34与图6.35所示。

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

53

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.34软件卸载 图6.35 软件编辑

⑩设置、帮助显示测试

测试是是否可以对整个系统进行成功设置,以及显示帮助提示。[www.61k.com]如图所示,图6.36-图6.38展示系统设置的相关功能。

图6.36 系统设置 图6.37 主界面与侧边栏

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

手机防火墙 _Android手机防火墙的设计与实现终极版1

54

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

图6.38显示帮助信息

6.3性能测试

对一个手机软件而言,由于手机终端有很多限制,因此,其性能的优劣在很多情况下决定了手机软件是否具有实用性。[www.61k.com)下面通过性能的测试,检查软件是否存在数据传输缓慢、图像呈现优劣等的问题。性能测试主要包括以下几个方面:

性能测试项目表

表6.2

编号

1

2

3 测试项目 内存使用率是否很大 CPU占有率是否很大 系统运行是否对手机产生影响 测试结果 否 否 否

经过测试,测试项目2和测试项目3出现问题。主要原因如下:

①测试项目2:在实现上网拦截时,有点迟钝,相对一些小程序来说,占用CPU有点多。原因是在设计的时候增加线程来实时监听用户的选择,不免占用资源。但只要退出该操作界面后,由于规则执行结果是持久的,没有了实时监控线程,手机会不受影响的。

②测试项目3:由于实现上网监控功能需要手机root,故可能造成手机一些不必要的影响,但这些影响危害性不大。

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

手机防火墙 _Android手机防火墙的设计与实现终极版1

55

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 6测试

6.4易用性测试

由于Android手机像个人电脑一样,具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等第三方服务商提供的程序。(www.61k.com]同时还具有界面美观,分辨率高,运行速度快等特点。但Android手机的安全性不够好。因此,怎样使手机应用更加方便、简单、安全的使用,对于开发人员来说很重要。

下面,我将针对本手机软件制定相应的易用性测试。

易用性测试项目表

表6.3

编号

1

2

3

4

5

测试项目 操作过程中,提供反馈信息是否足够和清晰 提示信息描述是否清晰 界面背景颜色搭配是否合理 标题、菜单等文字字体显示和排版是否合理 应用稳定性是否好 测试结果 是 是 是 是 是

56

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 7结论

7 结论

在该毕业课题的设计实现中,分析研究Android 的框架结构,实现了在Android平台上拦截骚扰通讯、上网监控的防火墙功能。[www.61k.com]同时,也实现了任务管理进行进程管理的功能。

虽然在开发过程中花费了很多时间和精力去设计和实现该系统,但是由于自身在某些方面的知识储备不足,使得系统还存在一些欠缺,主要有以下几点:

①没有实现短信的智能过滤,只实现了关键字过滤,导致系统对短信拦截不是很彻底。

②在实现骚扰拦截时,对于Android系统自带弹出的未接电话记录总是取消不了。可能的原因是Android系统在版本2.3之后系统不能适应getDeclaredMethod("cancelMissedCallsNotification")来删除未接来电通知栏弹出消息了。

③在有些手机上运行该软件,发现不能进行骚扰拦截,原因可能是不同的手机厂商自定义电话管理器获取来电广播的优先级不同。不能正常运行的手机是由于默认了系统获取来电广播的优先级最高,不可改变。

最后,通过该课题编写,使我收获了很多。不仅体现在软件设计上,而且也从学习态度上感触很深。在该系统设计的完成过程中本人深感到自己的水平有限,加之时间匆忙,该系统设计还存在诸多不足,因而望各位老师不吝赐教,不胜感激。

57

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 致谢

致谢

在毕业设计即将完成之时,首先要衷心感谢我的指导老师陈自郁老师,她在整个毕业设计的过程,从刚开始选题,到后来开题报告的撰写、译文审查、软件功能进行分析,直至程序设计和论文的撰写过程中,感谢陈老师放下自己手头的工作,抽出时间对我进行精心指导和热心帮助,正是她的帮助,才使我在系统的设计和实现过程中少出了很多差错。[www.61k.com]

在这次毕业设计中,我从陈自郁老师身上学到了很多。感觉收获最大的不是最后程序带给我的满足和喜悦,而是从老师身上学到的对于项目的详细安排,对学生认真负责的态度。特别是在我在译文翻译的时候,格式上出现很多细小问题,老师都不厌其烦的一遍又一遍的审阅改正。在此,再一次向陈老师表示衷心的感谢!

在大学四年的求学生涯中,还得到了学院领导、老师和学长们的关怀和帮助,是他们谆谆教导才使得我顺利完成学业,谢谢你们。同时,也非常感谢父母和兄弟们给我的精神支持和物资保障,使他们让我的大学生活更加充实,有意义。

最后,向所有关心和帮助过我的领导、老师、同学和朋友表示由衷的谢意! 衷心地感谢在百忙之中评阅我的设计和参加答辩的各位老师!

2014年5月于

58

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 参考文献

参考文献

[1] 胡松萌. Android平台智能防火墙系统的设计与实现[J]. 计算机光盘软件与应用, 2013,(6):

138-140.

[2] 朱学森. 基于Android 智能手机防火墙的研究与应用[D]. 内蒙古科技大学, 2012.

[3] 段军, 朱学森. 基于Android智能手机来电防火墙的研究与设计[J]. 内蒙古科技大学学报,

2012, 31(4): 356-359.

[4] Caner Kilinc, Todd Booth, Karl Andersson. WallDroid: Cloud Assisted Virtualized Application

Specific Firewalls for the Android OS[C]. IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications, 2012: 877-883.

[5] Ed Burnette. Android基础教程[M]. 人民邮电出版社,2010.

[6] 和凌志, 郭世平. 手机软件平台构架解析[M]. 电子工业出版社,2009.

[7] 杨丰盛. Android 应用开发解密[M].电子工业出版社,2009.

[8] 张利国, 代闻, 龚海平. Android移动开发案例详解[M]. 人民邮电出版社,2010.

[9] Zigurd Mednieks, Laird Dornin, G.Blake Meike, Masumi Nakamura. Programming Android[M].

东南大学出版社, 2013.

[10] Reto Meier. Professional Android 4 Application Development[M]. 清华大学出版社, 2013.

[11] 王生阳. 基于Android系统的手机防火墙的设计与实现[J]. 职业技术,2011, (4): 80-81.

[12] 王景. 基于Android智能手机防火墙的研究[J]. 电脑编程技术与维护, 2013, (16): 105-106.

[13] 侯晓宝. 智能手机多功能防火墙模型设计[D]. 电子科技大学, 2009.

[14] 张琛. 基于Android 的垃圾短信过滤系统[D]. 南京邮电大学, 2012.

[15] Sven Bugiel, Lucas Davi, Alexandra Dmitrienko, Stephan Heuser, Ahmad-Reza Sadeghi,

Bhargava Shastry. Practical and Lightweight Domain Isolation on Android[C]. Computer and Communications Security, 2011.

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

[16] Johann Vincent, Christine Porquet, Maroua Borsali, Harold Leboulanger. Privacy Protection for

Smartphones: An Ontology-Based Firewall[C]. International Workshop on Information Security Theory and Practice (WISTP 2011) 5, 2011.

[17] 于加娟, 韩水玲, 王宏韬, 颜延庚, 康晓凤. 基于Android的手机防护系统设计与实现[J].

软件导刊, 2014, (3): 1672-7800.

[18] 张磊. 基于Android系统的手机防火墙的设计与实现[J]. 计算机光盘软件与应用, 2013,

(6):138-160.

[19] 朱维军, 刘波, 陈林, 王云生. Android基于权限控制的安全机制分析与验证[C]. 2012全国

物联网与信息安全学术年会, 2012. th

59

手机防火墙 _Android手机防火墙的设计与实现终极版1

大学本科学生毕业设计(论文) 参考文献

[20] 崔文明, 余正州, 任伟. Android 平台下应用程序流量控制技术及其系统实现[J]. 信息网

络安全, 2013, (8): 1671-1122.

60

扩展:android的设计与实现 / android设计与实现 / android设计与实现卷2

二 : 仿生蜘蛛机器人的设计与实现

“。’J”二u‘j千常二。卺月}j期

ElectronicSci.&Tech./Mar.15.2013

仿生蜘蛛机器人的设计与实现

施文灶,王平

(福建师范大学光电与信息工程学院,福建福州350007)

摘要将仿生学与机器人相结合,是根据生物界蜘蛛的生理结构和行为举止,设计了一种能够运用6足稳定,实现行走、转弯、攻击、趴下等系列动作的仿生蜘蛛机器人,并添加了睡眠模式、声音启动、遥控操作等功能。不仅在硬件方面模仿生物蜘蛛的外观,而且在软件上设计了其生物行为,实现了机器人的生物特性。

关键词仿生蜘蛛机器人;Dynamixel中图分类号TP242

AX—12+;Dynamixel

AX—S1;舵机

文献标识码ADesignand

文章编号1007—7820(2013)03—090—03

ofBionicSpiderRobot

Implementation

SHIWenzao,WANGPing

(College

Abstract

ofPhotonicandElectronicEngineering,FujianNormalUniversity,FuzhouAccording

to

350007,China)

the

physiological

structures

andbehaviorsof

biological

spiders,abionicspiderrobotis

designedwithbionicoperationsofstablesix—footwalking,includingtheactionofturning,attackingandgettingdown.’11lefunctionsofsleepmode,voiceactivation,andremotecontrol

are

added.Biologicalfeatures

are

given

to

therobot,notonlyimitatingtheappearanceofbiologyspidersinthehardware,butalsosimulatingthe

haviorsbysol。twaredesign。

biological

be—

Keywords

bionicspiderrobot;Dynamixel

AX一12+;DynamixelAX-S1;steeringengine

近几年,仿生学已经从一个鲜为人知的边缘学科走进人们视野,运用于生活中的各个领域。生物学机理与机器人的结合,形成仿生机器人,成为广大研究人员关注的一个焦点¨‘3J。仿生机器人是机器人技术领域中一个新兴的发展分支,是指模仿生物、能根据生物的外部形状,运动原理和行为方式等进行模仿,并能从事生物特点工作的机器人。仿生机器人的种类多样,涵盖了天上、地上、水中等活动领域的各类机器人HJ,其中地上行走的机器人,根据其行走方式的不同,还可以分为跳跃机器人、轮式机器人、足式机器人以及爬行机器人¨“J。文中主要对蜘蛛机器人进行设计,目标是基于生物界中蜘蛛的生理结构,运用其生物行为,设计出能平衡行走、判断方向、感受外界刺激的机器人;另外,仿生蜘蛛机器人在结构上有别于人型或轮式机器人,使其在较差路况下行走成为可能,可以执行在废墟中搜救等任务"。8J。因此仿生蜘蛛机器人的设计与实现具有较高的研究价值和实际意义。

除了行走,还有转弯、攻击、趴下等,每个行为作业都靠脚部的运动来实现,因此对腿部的灵活度要求较高;其次,要使机器人具有生物的特性,需对外界的刺激做出正确的判断和及时的响应,所以感觉器官的模拟也至关重要。

1.1躯干设计

考虑到蜘蛛机器人躯干部位对灵活度基本没有要求,无需搭建活动关节,且整机控制器不宜受到关节活动干扰,于是将整机控制器作为躯干部位,完全符合要求,并且便于操控。控制器采用16位高性能低功耗的AVR单片机,频率最高为16MHz,运算速度最快为16MI?S一。对于小型仿生蜘蛛机器人的运动解算和规划,该运算能力足以满足控制和在线规划的运算

要求。

1.2腿部设计

腿部设计是实现蜘蛛机器人功能的关键【10|。机器人设计有6足,行走时依靠两两间隔的3条腿构成稳定的三角形支撑地板,每只腿设计为3个关节,即具有3个自由度。并且将轴向分布成茗轴、Y轴、彳轴,实

现前后、左右、上下的三维活动空间。选取18个

1机器人本体设计

生物界蜘蛛的特点是拥有8条腿,在行走时,总会有4条腿着地,用以保持自身的平衡‘9l。其生物行为

收稿日期:2012—10.23

作者简介:施文灶(1982一),男,博士研究生,讲师。研究方向:电子系统设计。E-mail:swz@finn.edu.CB

Robotis公司的DynamixelAX一12+机器人专用伺服电机充当肢体关节。

Dynamixel

AX一12+是机器人专用的伺服电机,

充当机器入的关节。首先,Dynamixel系列机器人驱动

如——www.dionzikeji.orb——

万方数据

三 : JavaScript语言解释器的设计与实现

JavaScript语言解释器的设计与实现

张军林阳富民胡贯荣

(华中科技大学计算机学院,武汉430074)

E—mail:zhangjl唧inglun.corn

cn

摘要论文介绍了作者自行设计并实现的JavaScript语言解释器.提出并实现了一种扩展的、基于对象的算符优先算法。(www.61k.com)

关键词JavaScript解释器

算符优先

文献标识码A

中图分类号rlP314

文章编号1002—8331一(2003)30—0124—02

TheDesignandImplementationof

ZhangJunlin

YangFumin

JavascriptInterpreter

HuGuanrong

(SchoolofComputerScienceandTechnology,HuazhongUniversityof

Scienceand

Abstract:Thistended

paper

7FechIIoIogy,Wuhan430074)

designed

andimplementedby

ourselvesand

presen∞an

ex

intrnduees

the

javascript

interpreter

obicot-based

operator

precedencealgorithm.

Keywords:jzvascripl,interpreter,operatorprecedencealgorithm

引言

随着Internet技术的广泛应用,越米越多的信息资源通过

语弦规则形成中间数据结构。中问数据结构能够反映出程序语

句描述的数据处理流程。

wWw服务共享。采用超文本和超媒体技术就足实现这个H标摄茼单、最便捷的手段和途径。然而这种技术最大的缺陷就是

(3)解释执行器:以中间数据结构为输人负责对涪句解释

执行的控制。

它只能提供一种静态的信息资源,制作的Web页面缺少动态

性和交百件。JavaSeript正是顺应这种动态网页制作的需要而诞生的一种新的脚本编程语言,它山Netseape公司开发,现已广泛用于Internet网页制作卜。

(4)语句懈释器:完成各娄型控制语句的解释执行,该模块

可能会调用解释执行器而形成递归调用。

(5)表达式规约器:山语句解释器来调用,它负责在语句解

释执行过程中完成备类型表达式的运算和赃值语句的执行。

(6)与州览器交互:完成在表达式运算过程中对当前文档

对象和html文本中各种控件对象的属件值的修改并通址改变浏览器的输出显示表现出来。

——

——

lavaSeript脚本语苦可实现一神宴时的、动态的、可交互的表达能力.使得信息和崩户之间已不再是一种单纯的显示和浏

览的关系。JavaSeript语言的主要特点是基于对象而非完全面向列象…。它将对象集中统一起来形成个强大的对象系统,对象包括属性和方法,但不提供对象的抽象、继承、重载等有关面向对象语言的功能。其源代码mWeb服务器发送到客户端浏

—1酮蕊蒋西丽磊—卜]厂百而莉甄噌—h

览器之前不需经过编译.而是将文本格式的字符代码发送给

客户端由浏览器解释执行口…。目前,已自很多浏览器支持JavaScrlpt的解释,特别足随着近年来嵌入式浏览器的发展,JavaScfpt语言的解释更是得到r广泛的支持。

JIBrowser是作者自行设计并实现的嵌人式浏览器,该浏览器幕于嵌人式操作系统Neelues甲台,支持JavaSefipt语言的解释。论文介纠了JIBrowser中JavaScript语言解释器的设【|与

-1—掣—_J

单词链表

中f可数据结构

J—百瘫羽F]一

.壶

厂襄晶

围l解释器结构总图

实碰,提出蚌实现了一种扩展的算符优先算法。

下面对解释器中的实现技术加以介绍。

2解释器总体结构

解释器的总体结构如图I所示。整个解释器以总榨程序为t}-心诵用其E模块。圈-ll各模抉功能简要介绍如下:

(1)词法分析:以巅人在html文本中的JavaScfipt脚奉程

3实现技术

3.1解释器总控程序

总控程序负责整个解释器的运行控制,充当浏览器与JavaScfipt解释器之问的接u.先将从浏览器中传人的JavaSeript源程序突山词法分析器形成一个积向单词链表,再调用语法分析器生成中问数据结构,最后调用解释执行器对语

序作为输入形成瞥阔链表,以便语法分析。单词链袁为双向链

表结构。

(2)语法分析:吼单词链表为输入,依照】avast却t语吉的

124

2003.30计算机工程与应用

万方数据

解释器 JavaScript语言解释器的设计与实现

{,J逐条肼释执行。[www.61k.com)枉整个运行过秤中,总挖稃序根据各模块调用的返回结果来择制解释器的运行。

2中间数据结构

中间数据结构是牲个解释器运行的基础,用丁保存语法分

析的中间结果,主要包括堂量、程序流程和程序语句的中lⅧ描述,其牛成过程在语法分析阶段完成,枉此只给山其结构描述。

坐量结构VAI.ULJYPE的设计主要考虑到将各种类型变

量(包括对象)的逻辑存储结构统~。为此,作者用如图2所示

的结构米描述变茸。罔中,REITIe为变量名.type为变量类型,

value为联合域存放不同类型变量的值。变量为宁符串类型时,

va]lJe存放字符串的地址;变量为对象时,value存艘对象的地址,为了将不同对象的地址统一存放,OBJEC’FVALUE定义为void指针。山于JavaScfipt语言的弱类型性,变量在定义的时候可以不指定类型,此时变量结构的。FYI,E域值会在运行期来确定。

扩展:c语言解释器的实现 / javascript解释器 / javascript解释器下载

个重要的巾间数据结构是程序流程结构STATE—

MEN

I-NODE,其逻辑结构如图3所示,该结构组成一个链表,

反映出语法分析过程中形成的程序语句流程。图中STATE—

MEN¨PE为枚举类型用丁存放语句类型;NEXT为

sTA7I、EMEN7I-NODE结构指针,以指示程序段中顺序执行的下

条语句;OUTER也是STATEMENTNODE结构指针,用来指示复合语句的上层语句;sTATEMENT为联合炎型域用以指示当前语句爷点,谩联台中各域均定义为指针类型,指针所指类

型为各种语句定义结构,如IF语句、FOR语句等。在此,不对语

句结构做一一描述。STA盹MENT联合根据STATE—

MENTJ’YPE值指定相应的域来指向语句结构。

图2变量结构图

围3程序流程结构图

3_3解释执行控制器

解释执行控制器负责对程序语句解释执行流程的控制,足整个解释器的中心模块。其算法描述如卜:

FunctinD日"deal—staternent(ztaem日1tnode"pStmt)BEGIN

口8trrI¨en=psIr吨

mwLECpSIr『lW目ck

NULL)00

w肚h(ps订n喇e×}>stat帅ert—qpe)

case赋值语句

调用赋值爵句解释器

case

tor语句

调用fori吾旬|晕择器.

default

break.

口ShⅢ“t=口st_Tl})nem

ENDV仆|LEEND

粹制器以程序流程的中嗣描述作为输入,从语句块的第一条瞄,口J开始解释执行,根据语句的不同类型进入相应的甲条语句处理模块,如进人dealif_statement模块解释if语句。如果当前语句解释执行成功则取F一条语句继续解释,否蜊中断解释

方数据流程返回错误。对千每一种类型的控制语句都有一个单独的解释模块,传人参数亦为程序流程的巾间描述结构指针。单条语

句解释模块可能会调用deaLstatement而形成递归调用,如各种复合语句。

3.4表达式规约器

表达式规约器负责完成各种表达式的运算和赋值语句的执行,是稚个解释器的核心模块。

程序设计语占中组成语旬的成分是各种类型的表达式。表达式是描述数据运算的基本结构,它通常含有数据引用、算符

和函数调用H。JavaScript语言由于其基于对象的特性使得其表达式更为复杂。组成表达式的数据引用可以足常量、一般类型

变虽或对象的属性,甬数调用可以是用户白定义函数或对象的方法调用。

昂然,立“果能将所有的表达式运算统一规约处理将为解群器的运行控制带来极大的方便。~方面,在语法分析阶段无需

识别表达式的语义,只需识别构成表达式的单词串.在解释执行时将表达式交给规约器处理,这样一来便简化r解释系统的结构;另

方面,表达式的统一化处理使得本束要在解释器主

控程序中完成的复杂控制逻辑能够转移到规约器中处理。为此,作者设计r扩展的、基于对象的算符优先分析算法,将Jay&Script中所有的表达式运算统一起来。

算法的主要、世计思想是针对java.Script语言的基于对象的特性,(1)引人新的算符和产生式规则,将表达武rIt对象的属性

引用转化为于表达式运算,引入的新算符和产生式规则与原文

法的箅符和产牛式规则一起参与表达式运算,这样规约器能够将所有的表达式运算同等对待,统一处理;(2)将函数调用作为一种特殊的表达式,此时将函数名作为对象的属性对待,函数参数作为表达式先规约,最后形成函数表达式的“口r规约串”。

以下对上述思想在JavaScfipt解释器中的运用作具体介绍井给出算法描述。

(1)对象运算符和产生式的引进

引入符号“”作为对象运算符,添椰相应的产生式规则如

F:

A——>Ba

①B一>Bbl

②F->A(E)

③E一>E.Ek

上述产生式中,A表示“对象的属性或方法引用”,a表示

“对象的属性或方法”,B表示对象,b表示对象的属性,对象的

属性也可以是一个对象,F表示函数调用,E表示函数参数,qf以为空,即没有参数。为了简单起见,原文击的产生式投有一列出,而且给出的产牛式具有二义性,这样暂不用考虑新的终结符与原文法终结符问的优先关系。

(2)确定对象运算符与原文法各终结符间的优先关系对象的属件或方法调用都可以看戚尾数据引用,所以不难

确定“.”的优先皱大干除“r外的所有终结符,小于…i’,其中。

表示“变量”。

(3)规约冲突的解决

引入的新产生式巾B一>6与原产生式E一>l有规约冲突.同样雨数参数规约与顺序表达式规约有冲突。此时,在规约过程中起决定性作用的已不仅仅是相继两个算符问的优先关系,

(下转140页)

计算机工程与膻用200330

125

解释器 JavaScript语言解释器的设计与实现

商,北统训方法有较大改进。[www.61k.com)相对下统计方法,文牟大小刘过滤结果影响不火,刘小文本尤其有嫂。另外,三个过滤器中对象词典平均大小为2K,模式词典平均人小为3K,这表明与领域知议相关的闻典较小,需要的人丁较少。

向的文本,对网络信息安全有重大意义,但是现有研究并不多,且大都采用统计的方法,效果不好。针对倾向性文本过滤,该文阐述了一个倾向性文本过滤系统TTFs,古全率和查准率高,且速度较快。需要说明的足,词艘建立的好坏直接影响着系统的过滤效果.而词媳的建讧与维护需要相关的领域知识,另外.语义模式的权重也需要人T确定,所以系统对人的依赖较大,作哲认为,这足引人领域知识的必然结果.也是系统过滤效果好的原因之一。(收稿日期:2003年6月)

参考文献

1吴立德^规模中文文本处理[M1.上海:复旦大学出版{L.19972.田范汀,李从蓉,王鼎兴进化式信息过滤方法研究【J】软件学报,

扩展:c语言解释器的实现 / javascript解释器 / javascript解释器下载

2000;11(3)

3梅海燕.信息过滤问题的研究【J]现代图书情报技术,2002;24胡运发百关联后继树:一种新犁全文数据库数学模型『R1技术报告.复旦大学川算机与信息技术系,2002—03

5刘永丹,曾海皋.盒峰等.基于语义分析的倾向性直奉过滤iRl技术撤

囤6

文本大小对11T与过滤结果的影响

告,复旦大学{f算机与信息技术系,2002—12

6Nicholas

JBelkin,WBruceCrofthffonnatlon

Same

Filtering

andhffomJa—

of

the

6结论

倾向性义本过滤能够过滤掉对某个主题持有特定立场、倾

lion

Retriewd:Two

Sidesofthe

Coin?口]Communications

ACM,1992—11;35(12):29~38

(卜接125页)

还要根据上下文来判断按照哪条规则进行规约。对于疗一>6与E一>z的规约冲突,可以在变量规约时,展望下一个输入符号,如果是“.”则按占一>6进行规约,香则,按E一>i进行规约。对于甬数参数与顺序表达式的规约冲突,则秤规约顺序表达式的时候搜索规约栈,判断顺序表达式是小是处在函数调用上卜文中。若是,刚不进行规约,否则按顺序表达式进行规约。对其它情况则根据算符问的优先关系来进行规约。

下面给出算法描述。

until

}else{

E㈨:

pNextChr!=锥7

算法使用两个栈:符号栈和操作数栈;符号栈寄存终结符及占位符N,操作数栈寄存子表达式运算结果。K表示符号栈使用深度。

3.5与浏览器交互

与浏览器交互模块主要完成两个方面的工作:(1)改变当前文档对象及各类型控件对象的属性

作者使用的嵌人式平台带有源码,使得人们可以方便地将各种对象的存储与一般类型变量统一,对象的属性值在参与表达式运算时被改变。与浏览器交互模块定义了修改对象的接口,将对象属性值政变所引起的同贞变化表现出来。

(2)处理用户与网页交互时产生的操作即事什处理事件处理由一段事件处理程序来完成。可将事件处理程序作为一个解释单元交给解释器主控程序来解释执行,这样便可完成用户与网页之问的交互。(收稿日期:2002年12月)

J:哥一1else』:'一2;

初始化栈;

☆:=1;repeat

将F一个输人符号读进lJNextChr中;

if

optr【k】E

Vt

thenJ:=^elseJ:=I一1;

pPreChr=opt删;

if(pPmChr>pNextChr){

do{

pNextCh仁pPreChr;

if

opt巾一1】E

Vtthen

PPl℃Chl=-opt胡;

1while(pPreChr‘pNextChr)

参考文献

l王震宇等Javascript语言的特性和应re[J].信息工程学院学报,1998;

17(1、

2StevenHslzner1988

3TimRilchy.ProgranmfingPublishing,1996

将符号栈顶可规约串optr叶11…opt啦】规约为某个Ⅳ;

k:号+1;

Javascript

Complete[M]McGraw—Hill

Java

for

Companies

Inc

将~作为占位符压人符号栈;将运算结果压^操作敦栈;

}elseif(pPreChr‘pNextChr¨pPreCh‘pNextChr)f

^:=k+1:

ScriptNetscape2

0【M】.New

Riders

4陈火旺,钱家骅,孙永强.程序设计语言编译原理[M】.国防工业出版

解释器 JavaScript语言解释器的设计与实现

社,1984

将pNextChr压^符号栈;

140

2003,30计算机工程与应用

万方数据

扩展:c语言解释器的实现 / javascript解释器 / javascript解释器下载

四 : 仿生蜘蛛机器人的设计与实现

“。(www.61k.com]’J”二u‘j千常二。卺月}j期

ElectronicSci.&Tech./Mar.15.2013

仿生蜘蛛机器人的设计与实现

施文灶,王平

(福建师范大学光电与信息工程学院,福建福州350007)

摘要将仿生学与机器人相结合,是根据生物界蜘蛛的生理结构和行为举止,设计了一种能够运用6足稳定,实现行走、转弯、攻击、趴下等系列动作的仿生蜘蛛机器人,并添加了睡眠模式、声音启动、遥控操作等功能。不仅在硬件方面模仿生物蜘蛛的外观,而且在软件上设计了其生物行为,实现了机器人的生物特性。

关键词仿生蜘蛛机器人;Dynamixel中图分类号TP242

AX—12+;Dynamixel

AX—S1;舵机

文献标识码ADesignand

文章编号1007—7820(2013)03—090—03

ofBionicSpiderRobot

Implementation

SHIWenzao,WANGPing

(College

Abstract

ofPhotonicandElectronicEngineering,FujianNormalUniversity,FuzhouAccording

to

350007,China)

the

physiological

structures

andbehaviorsof

biological

spiders,abionicspiderrobotis

designedwithbionicoperationsofstablesix—footwalking,includingtheactionofturning,attackingandgettingdown.’11lefunctionsofsleepmode,voiceactivation,andremotecontrol

are

added.Biologicalfeatures

are

given

to

therobot,notonlyimitatingtheappearanceofbiologyspidersinthehardware,butalsosimulatingthe

haviorsbysol。twaredesign。

biological

be—

Keywords

bionicspiderrobot;Dynamixel

AX一12+;DynamixelAX-S1;steeringengine

近几年,仿生学已经从一个鲜为人知的边缘学科走进人们视野,运用于生活中的各个领域。生物学机理与机器人的结合,形成仿生机器人,成为广大研究人员关注的一个焦点¨‘3J。仿生机器人是机器人技术领域中一个新兴的发展分支,是指模仿生物、能根据生物的外部形状,运动原理和行为方式等进行模仿,并能从事生物特点工作的机器人。仿生机器人的种类多样,涵盖了天上、地上、水中等活动领域的各类机器人HJ,其中地上行走的机器人,根据其行走方式的不同,还可以分为跳跃机器人、轮式机器人、足式机器人以及爬行机器人¨“J。文中主要对蜘蛛机器人进行设计,目标是基于生物界中蜘蛛的生理结构,运用其生物行为,设计出能平衡行走、判断方向、感受外界刺激的机器人;另外,仿生蜘蛛机器人在结构上有别于人型或轮式机器人,使其在较差路况下行走成为可能,可以执行在废墟中搜救等任务"。8J。因此仿生蜘蛛机器人的设计与实现具有较高的研究价值和实际意义。

除了行走,还有转弯、攻击、趴下等,每个行为作业都靠脚部的运动来实现,因此对腿部的灵活度要求较高;其次,要使机器人具有生物的特性,需对外界的刺激做出正确的判断和及时的响应,所以感觉器官的模拟也至关重要。

1.1躯干设计

考虑到蜘蛛机器人躯干部位对灵活度基本没有要求,无需搭建活动关节,且整机控制器不宜受到关节活动干扰,于是将整机控制器作为躯干部位,完全符合要求,并且便于操控。控制器采用16位高性能低功耗的AVR单片机,频率最高为16MHz,运算速度最快为16MI?S一。对于小型仿生蜘蛛机器人的运动解算和规划,该运算能力足以满足控制和在线规划的运算

要求。

1.2腿部设计

腿部设计是实现蜘蛛机器人功能的关键【10|。机器人设计有6足,行走时依靠两两间隔的3条腿构成稳定的三角形支撑地板,每只腿设计为3个关节,即具有3个自由度。并且将轴向分布成茗轴、Y轴、彳轴,实

现前后、左右、上下的三维活动空间。选取18个

1机器人本体设计

生物界蜘蛛的特点是拥有8条腿,在行走时,总会有4条腿着地,用以保持自身的平衡‘9l。其生物行为

收稿日期:2012—10.23

作者简介:施文灶(1982一),男,博士研究生,讲师。研究方向:电子系统设计。E-mail:swz@finn.edu.CB

Robotis公司的DynamixelAX一12+机器人专用伺服电机充当肢体关节。

Dynamixel

AX一12+是机器人专用的伺服电机,

充当机器入的关节。首先,Dynamixel系列机器人驱动

如——www.dionzikeji.orb——

万方数据

蜘蛛机器人 仿生蜘蛛机器人的设计与实现

施文灶,等:仿生蜘蛛机器人的设计与实现

器是一个较流行的模块化驱动器,由齿轮减速器、精密直流电机和具有串联功能的电路板封装组成。[www.61k.com]尽管它体积小巧紧凑,但它可以产生较大的扭矩,加上高品质材料制造并具有一定的强度,可以抵御一定外部冲击。同时它还是双向的伺服控制系统,具有回授功能,且具有检测内部温度功能,例如改变内部温度和供电电压。具有报警功能:当内部温度,扭矩,供电电压等超过额定范围时,它主动反馈这种情况并闪动LED灯或关闭舵机扭矩来通知用户,达到报警效果。

Oynamixel1

61阅读提醒您本文地址:

图2蜘蛛机器人外形结构图

AX—12+的位置和速度控制精度可达

2机器人行为设计

控制系统采用模块化设计,将整个工作流程划分为:系统初始化、启动模式、生物行为等。图3是系统流程图。

024级(0~l023),关节型舵机对应最大转角为3000,控制角度分辨率为300/1024=0.290/步。如图1所示,位置值0是0。,位置值512是1500,位置值l、023是3000等。通信波特率为7

343

bit?s~~

Mbit?s~,命令信号是数字型数据包,通信协议类型

为半双工异步串口通信,不同舵机之间通过唯一的ID进行识别,最大有254个ID。每个DynamixelAX一12+舵机都有一个控制表存储舵机的状态和控制信息,这个控制表由一个RAM区和E2PROM区组成,对舵机的控制实际是通过向其控制表中写指令;而要获取舵机当前状态实际就是读取控制表相应的值。

l咖阳9110f1:湘‘0x3ffl瑚’泖

/“、~一一,^\

m删An]le

‰mm∞-0l

图3

系统流程图

图1功啪_mi】【elAX一12+控制位置角度图

2.1系统初始化

机器人的初始化需要做两部分工作,一是初始化每个伺服器的功能模式,并将每个伺服器切换到位置控制状态;二是初始化机器人的初始动作,也就是初始状态,将机器人复位。2.1.1伺服器初始化

初始化伺服器的功能模式是因为Ax一12+具有多种功能,如果没有将其初始化,它将记忆之前的设置,按照之前的设置模式完成此次控制,则AX一12+不会正确工作。AX一12+的每个功能对应地址[ADDmlSs]的固有号码,可以通过选择地址的方法来控制各个功能。例如:要设定Ax一12,4-的位置控制状态,首先要选定所要设置伺服器的ID。ID=1的伺服器,令addre褐=8,则进入其运转模式更改,设置mode变量,mode只有两种状态:mode=0是无线旋转模式,mode=l023是正常位置控制状态。此处设计所用的18个伺服器被用作蜘蛛

9J

1.3感觉器官设计

设计蜘蛛机器人的感官系统时,如果每个感官对应一个传感器模块,那么对蜘蛛机器人关节活动便会增加许多牵绊与阻碍。于是,设计采用1个集超声测距传感器、声音检测传感器、亮度传感器、温度传感器和红外线接收器于一身的Robotis公司的DynamixelAX—S1模块来充当机器人的感官系统。并且AX—Sl与AX一12+机器人专用伺服电机在通信方式上一致,以便于通信和控制器统一管理;在机械上结构相

同,外观上也可以达到统一、美观。

1.4本体结构

根据生物蜘蛛外形,设计总体结构为:以控制器作为身体部位,连接6足,将传感器模块作为头部。选取合适的连接件,最终拼装连接得到小型仿生蜘蛛机器人样机,如图2所示。

——WWW.dianzikeji.org——

万方数据

蜘蛛机器人 仿生蜘蛛机器人的设计与实现

施文灶,等:仿生蜘蛛机器人的设计与实现

机器人的6足,其位置控制状态应该设置为mode=当检测到像掌声一样一定大小以上的声音时计一次l023,且每一个伺服器都要初始化为此状态。[www.61k.com]数,为避免把一次击掌误认为多次,在一次计数后,采2.1.2动作初始化用延时方式,约为80弘s后继续计数。

动作初始化部分相对较简单,但要建立在伺服器初2.3生物行为始化之后,方能进行。原理上是将每个伺服器旋转角度正常行为举止:蜘蛛机器人的生物行为即自行通调整到一定的位置上,使之呈现一个定型姿态,作为机过传感器采集数据,对数据进行判断,然后进行处理的器人的待机动作。通过改变整个系统结构的全局变量一个仿生过程。设计过程将该生物行为定义为正常行play_motion来完成动作初始化,表1对该参数进行了对为举止,即正常模式。该模式下,主要研究的是蜘蛛机照解说,再调用kad函数执行该动作页面来实现功能。器人对障碍物的判断,通过AX—S1采集到的distance_u

表1蜘蛛行为状态设计对照表和distance_f两个参数进行分析。当上方障碍物所测

行为动作(paly—motion)蜘蛛机器人行为状态设计距离distance_u≤20时,即认为感应到上方有障碍物,

paly_motion=O强制停止当前动作页,不再往下页执行

准备动作,初始化姿态蜘蛛则产生坐下的动作。当前方障碍物所测距离paly_motion=1

向前走distance_f≤100时,再次检测一下距离是否distance-fpaly_motion=2

paly_motion=3快速前行≤20,如果<20,则退后,向左转,回到正常模式;如果paly_motion=4向后退>20,则采取攻击,攻击结束后,回到正常模式。值得paly_motion=5快速向后退注意的是,distance—U与distance-f所采集数据也不是paly_motion=6向右转实际的距离,也是通过量化后的数值。paly_motion=7快速向右转

pal,r—motion=8向左转3结束语

pal2_motion=9快速向左转在自然界中,蜘蛛因其独特的爬行机制可以在垂pal!!_motion=10坐下(收缩6足)直的墙壁甚至倒立在天花板上行走。运用仿生学原理pal!r—motion=11受到惊吓设计制作的6足蜘蛛仿生机器人系统,可以完成行走、pal,rmotion=12攻击准备动作

pal_’_motion=13向前攻击转弯、攻击、趴下等系列动作,并且具有较好的人机交

pal!r—motion=50蜘蛛正常行为举止连贯动作互功能,使蜘蛛机器人达到了仿生的效果,为进一步研

paly_motion=60蜘蛛采取躲避连贯动作究蜘蛛机器人在危险环境中或艰难路况中作业提供了paly_motion=70蜘蛛受到惊吓连贯动作一个基础测试平台和设计方案。paly—motion=80蜘蛛采取攻击连贯动作参考文献

61阅读提醒您本文地址:

2.2启动模式[1]赵文涛,李军,刘志忠.四足仿生机器人单腿机构工作空2.2.1睡眠模式间的优化设计[J].机械与电子,2011(7):57—61.

当机器人电源开关开启,进行初始化之后,蜘蛛机[2]对陈方,宋少云.仿生机器人的研究综述[J].武汉工业学器人进入睡眠状态。设计对睡眠模式的定义为:令机院学报,2010,291(4):21—25.

[3]臧红彬.一种新型的多足仿生机器人的机构设计与研究

器人处于一个静止姿势,不做任何行为,等待被启动。[J].机械设计与制造,20101(8):103—105.这里设定一个无限循环,当判断收到唤醒命令时,跳出[4]丁锐,喻俊志,杨清海,等.基于可变关节数的模块化两栖

仿生机器人转弯控制[J].机器人,2010.32(4):491—498.

循环,开启定时器,执行正常行为举止后,通过定时器[5]赵涓涓,李强,任美荣,等.六足仿生机器人运动控制系统的超时机制,回到睡眠模式。定时器时间值的量化级的设计[J].机电工程技术,2008,37(12):44—45,76.

[6]王甲福,管红梅,庞政.仿生机器人的研究与实现[J].气

为:输入的值每0.125S减1,即当定时器设置为8,便象水文海洋仪器,2008(3):17—20。是1S,具体实现中设置定时器为240,即30S的正常[7]VIDONIR,GASPARE.I-I'OA.Efticientforcedistributionand

legpostureforabio—inspiredspiderrobot[J].Robotics

行为活动后回到睡眠模式。andAutonomousSystems,2011,59(2):42—150.2.2.2声音怠动[8]MOSTAFAG,AMIRZ.Directkinematicanalysisofahexa-

podspider—likemobilerobot[J].AdvancedMaterialsRe—

在睡眠状态中,采用两种不同的方式:无线遥控模search,2011,403—408:5053—5060.式和声音启动模式。对于声音启动模式,设定一个阈9WANGZhouyi,WANGJintong,JIAihong,eta1.Movement值,若采集的数据超过阈值时,则开始正常行为活动。behaviorofaspideronahorizontalsurface[J].ChineseSci—

eneeBulletin,201l,56(25):2748—2757.

阈值的选择根据传感器AX—S1对声音自定义的一个[10]SOYGUDERs,ALuH.Kinematicanddynamicanalysisofa数量级,当周围没有声音输出约为128的数值,声音越hexapodwalking,.running——boundinggaitsrobotandcontrol

actions[J].Computers&AMPElectricalEngineering,

大数值越接近255,声音大小每秒输入约为3800次。2012,38(2):444—458.92——WWW.dionzikeji.org——万方数据

蜘蛛机器人 仿生蜘蛛机器人的设计与实现

蜘蛛机器人 仿生蜘蛛机器人的设计与实现

仿生蜘蛛机器人的设计与实现作者:

作者单位:

刊名:

英文刊名:

年,卷(期):施文灶, 王平, SHI Wenzao, WANG Ping福建师范大学光电与信息工程学院,福建福州,350007电子科技Electronic Science and Technology2013,26(3)

本文链接:http://d.g.wanfangdata.com.cn/Periodical_dzkj201303029.aspx

61阅读提醒您本文地址:

五 : 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

黄开胜 基于MC9S12DG128控制器的智能寻迹车的设计与实现

61阅读提醒您本文地址:

本文标题:机器人设计与实现-_Android手机防火墙的设计与实现终极版1
本文地址: http://www.61k.com/1091835.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1