毕业设计(论文)-基于android的流量监控软件的设计与实现.doc_第1页
毕业设计(论文)-基于android的流量监控软件的设计与实现.doc_第2页
毕业设计(论文)-基于android的流量监控软件的设计与实现.doc_第3页
毕业设计(论文)-基于android的流量监控软件的设计与实现.doc_第4页
毕业设计(论文)-基于android的流量监控软件的设计与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学毕业设计(论文)用纸太原理工大学毕业设计(论文)任务书 第1页毕业设计(论文)题目:基于android的流量监测软件的设计与实现全套设计加扣 3012250582毕业设计(论文)要求及原始数据(资料):1综述国内外流量监测软件设计和开发现状;2深入了解流量监测软件及其插件的相关技术;3熟练流量监测软件的各个板块,训练编写插件程序的能力;4设计并实现流量监测软件针对某软件流量消耗的统计;5深入分析流量监测软件中插件的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。 第2页毕业设计(论文)主要内容:1综述流量监测软件在日常生活中的应用;2了解流量监测软件的相关技术;3熟悉流量监测软件以及插件的开发环境; 4设计流量监测软件中针对某软件流量流量消耗的统计;5. 深入流量监测软件中插件的关键技术与编写语言NASL的设计流程;6熟练掌握基于手机网络流量监测平台的插件编写;7设计与实现针对某一软件流量监测的插件的程序。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):1 黄婧, 张林, 季刊,等. 基于Android平台的GPRS流量统计系统J. 计算机系统应用, 2011(12):141-143.2 马建华, 刘剑飞, 程涛. 基于Android的流量监控白名单策略J. 电视技术, 2013(5):92-95.3 崔文明, 余正州, 任伟. Android平台下应用程序流量控制技术及其系统实现J. 信息网络安全, 2013(8):33-37.4 李俊. Android平台下基于流量监测的安全软件设计与实现D. 西南交通大学, 2014.5 罗超. Android平台流量监控软件的设计与实现D. 北京邮电大学, 2013.6 刘淼. Android流量监控技术研究与实现D. 华中科技大学, 2012.7 肖贺. Android平台下基于流量监测的安全软件设计J. 电子技术与软件工程, 2015(9):65-65.8 Raggo M, Hosmer C. Chapter 5Data Hiding Among Android Mobile DevicesJ. Data Hiding, 2013:91-106.9 Ma W, Xu H. Android Data Communication Based on AMFJ. Wireless Internet Technology, 2015.专业班级软件1220班学生王谦要求设计(论文)工作起止日期2016年3月21日2016年6月24日指导教师签字日期2016年3月21日教研室主任审查签字日期系主任批准签字日期10 Peitek N. Android Compass Data QualityM. AV Akademikerverlag, 2013. 太原理工大学毕业设计(论文)用纸 基于Android的流量监测软件的设计与实现摘 要随着互联网络和电子产品的飞速发展,手机智能终端对网络系统的要求越来越高,特别是当前流行的Android系统智能手机由于后台应用程序联网偷流量常常会给用户带来不必要的损失。因此,在无线互联网络提供的服务日益多样化和复杂化的今天,对网络流量进行智能化的控制显得日益重要。然而Internet已经发展成为一个复杂的海量非线性系统,对这一复杂系统的动态特性的研究还存在大量待解决的问题。由于无线网络流量的复杂性,对于网络流量的控制无法像其它线性、非线性系统一样方便地进行控制,国内外对于网络流量控制技术的研究仍有许多难点。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,近年来随着智能机的普及,Android系统越来越受到市场欢迎,占有率直线上升。本次基于Android手机流量监测主要目的是熟悉Android开发平台eclipse,采用java语言进行简单的应用程序的开发。通过对网络数据进行实时连续的采集监测网络流量,对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。用户根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋势,并分析出影响网络性能的因素及问题所在,进而关闭不必要的网络进程,节省流量损失。关键词:Android;手机;流量监控Design and implementation of traffic monitoring software based on Android AbstractAlong with the Internet and the rapid development of electronic products, mobile phone intelligent terminals on the network system of the increasingly high demand, especially in the current popular Android system of intelligent mobile phone as the background application networking steal flow will often bring unnecessary losses to users. Therefore, in the wireless Internet service provided by the network increasingly diverse and complex today, the network traffic intelligent control become increasingly important. However, Internet has developed into a complex mass of nonlinear system, of this complex system dynamic characteristics research and there are a lot of problems to be solved. Due to the complexity of wireless network traffic, the network flow control is not like other linear, nonlinear system as the convenient control, at home and abroad for the network traffic control technology research still has a lot of difficulties.Android Linux is the core of the mobile phone platform, as an open operating system, in recent years, with the popularity of the intelligent machine, Android system is more and more popular in the market, share soaring.The mobile phone based on Android flow monitoring the main purpose is to be familiar with Android development platform eclipse, using the Java language simple application development. Through the network data for real-time continuous collection monitoring network flow, the flow of data for statistical calculation, thus obtains the network the main component of the performance index. The user according to the flow data to network main component analyzes the performance management, found the performance trend, and analyzes the influence factors and problems of network performance, and then shut down unnecessary network process, save the loss of flow.Key Words:Android;mobile phone;traffic monitoring目录1 绪论11.1 课题背景及意义11.2 国内外研究及技术发展现状11.3 课题概述及目标21.4 论文框架安排32 开发工具和环境42.1 Android系统简介及特点42.2 Android开发环境52.3 Java SDK52.4 ADT52.5 Eclipse62.6 Android SDK73 系统需求分析103.1系统可行性分析103.1.1经济可行性103.1.2技术可行性103.1.3操作可行性113.1.4法律可行性113.2需求分析113.3软件系统的非功能分析124 总体设计134.1 软件体系结构134.2 UML建模134.2.1 流量监控流程分析134.2.2 流量监控系统功能分析144.2.3 流量监控系统用例分析144.2.4 定义实体类164.2.5 序列图175 系统实现功能195.1 数据捕获与显示模块195.2 流量信息统计模块205.3 流量绘制模块236 系统测试266.1 测试用例设计266.2测试用例266.3 功能测试分析277 总结与展望29致谢30参考文献31外文文献32中文翻译391 绪论1.1 课题背景及意义随着社会的发展,智能手机越来越多,应用越来越广泛。伴随着智能手机不断普及,手机应用也融入了人们的日常生活当中,智能手机也已经成为了人们获取信息,了解时事的主要途径。Android系统自2008年Google推出以来,就凭借其开放性和良好的人际界面等明显的优势逐渐扩大的市场份额,尤其在国外,其呼声日高,可谓是如日中天,正处于蓬勃发展的开拓阶段。据美国某市场调研机构2012年发布的一份最新报告显示。2012年一季度,基于Android系统的智能手机的销售量已占据全美手机销售量的28%份额,而大名鼎鼎的IPhone手机其市场份额紧追其后,占到21%的市场份额,已经确定了Android系统的市场占有比。2016年第一季度由中国市场调查网公布最新发布的移动系统占有率报告显示,Android操作系统在美国、欧洲和中国市场一路高歌猛进,而IPone却日益退缩。欧洲,美国,中国Android市场占有率分别为75.6%,65.5%,77.7%,同比增长都大于6%。据业内人士分析,随着Android系统相应软件的不断开发应用,选择Android系统手机或者无线终端设备的人会越来越多。自从2008年9月23日,T-Mobile USA对外发售第一台Android系统的手机G1,智能手机的格局就被迅速改变。在2011年12月21日,Andoid设备日激活量达到70万台,目前Android被激活的设备总量已经超过2亿台。而在2012年第二季度的谷歌官方报告中,设备激活量在2012年3月至6月四个月内,由3亿部增长至4亿部,增长率为33%。手机,特别是以装载Android系统为代表的智能手机,从传统的通讯工具,逐渐成为了移动网络终端设备,即MID(Mobile Internet Device)。智能手机的不断发展与深入人心,移动数据通信业务也随之不断完善。用户在智能手机上逐渐可以实现之前只有在电脑上才可以完成的事情,例如观看影视视频,进行网络购物,浏览时政要闻等。但往往事物总是具有两面性,智能手机在为用户提供酣畅淋漓的上网体验的同时出现了越来越多的人因为流量超量产生了惊人的数据流量费用。因此,我们在日常生活中必须提高对数据流量使用情况的了解,进而避免一些高昂的费用,本课题是基于Android的手机流量监测系统的设计与实现。1.2 国内外研究及技术发展现状由于Android手机开源,软件众多,操作方式新颖,可玩性高,造价低廉更适合工薪阶层等原因,Android手机的发展势如破竹。自Google正式向外界展示了这款名为Android的操作系统至今,Android已经经历了多个版本的更新。Android系统已经成为了全球范围内具有广泛影响力的操作系统,同时作为一个由Google以Apache开源许可证的授权方式,发布了Android全部源代码也就是说完全公开并且免费的操作系统,Android系统的应用将更加的广泛,Android手机的市场占有率将逐年提升。如今信息技术发展迅猛,人们的日常生活与智能手机密不可分。人们开始通过手机的途径进行网上购物,阅读小说,观看影视视频,收看网络直播,了解时事要闻,手机网络游戏等等,而这些都需要手机数据流量作支撑。2014年中国手机网民每月流量使用情况上,59.1%的中国手机网民月租流量套餐“供不应求”,其中25.8%的中国手机网民每月手机实际流量会超出月租流量套餐较多。23.7%的手机网民则表示每月实际使用流量不会超出月租流量套餐,并且有剩余流量。仅有15.1%的手机网民月租流量刚刚够用,不多不少。中国手机网民在对手机流量的使用上尚未达到精确把握的阶段,手机流量的超量使用是一种普遍存在的现象,如何合理的使用和分配手机流量,是困扰每个手机用户的问题。Android手机用户的这种便利使用网络的方式,也给用户带来了一些新的问题,例如:使用移动数据网络过程中容易超出流量套餐包,导致话费过高;在不愿意使用网络的情景下(例如跨国旅游)有软件自动进行联网,产生不必要的经济损失;有本地软件后台自动联网,泄露用户隐私或者消耗用户的流量。目前市场上主流的流量应用多以实时监测、查询流量为主,用户在使用流量应用工具后,能够知晓手机流量具体的消耗情况并根据当前的数据流量使用状况进行合理分配、有节制的使用手机流量,因此四成左右的用户认为使用流量监测应用能够节省流量。当前流量监测应用在功能设计上存在许多不足,在功能设计上还存在较大的改进空间,程序运行不顺畅与操作不够人性化在相当程度上也影响了用户体验。1.3 课题概述及目标本次设计是基于Android的手机流量监控软件的设计与实现,要求学生根据实际业务需求从客户的习惯性以及便利性方面考虑,开发符合用户使用的软件,并且可以完成实时连续的采集监控网络流量,用户根据流量数据就可以对网络主要成分进行性能分析管理并分析影响网络性能的因素及问题所在,进而关闭不必要的网络进程,节省流量损失。主要工作为构建Android的开发环境,利用java语言编写用于对流量实时监控的手机流量监测软件,让用户可以直观的了解当月数据流量的使用情况,能够使用户对接下来流量的使用做合理的规划。1.4 论文框架安排本文就本人开发的:基于Android的手机流量监测软件的设计与实现做了简单的描述。具体工作内容将有以下几章介绍:绪论,主要介绍了课题的研究背景,研究意义,目前国内外该领域的研究现状,该课题的概述和目标。Android的系统简介以及该课题所需的安卓开发工具及开发环境的搭建工作。需求分析,主要分析了本系统开发的可行性还有需求分析等各方面内容。其中可行性分为:经济可行性,技术可行性,操作可行性,法律可行性。系统分析部分,对Android手机流量监测系统流程分析,系统功能分析,系统用例分析等,并进行总体设计。根据总体设计,从大体思路上对软件的各项功能进行设计实现,达到目标效果。系统测试,对各模块的预想实现功能进行测试,不断测试与改进,使软件可以很好的实现流量的实时监控。总结与展望,总结本文的各项工作以及开发过程中的问题及解决方案,并对未来的发展进行展望。最后:致谢、参考文献。2 开发工具和环境2.1 Android系统简介及特点Android 是一种基于 Linux 平台的新兴技术,由操作系统、用户界面、中间件和上层的 Java 应用程序组成。即使底层操作系统的组件使用 C 或 C+编写的,但其用户应用程序则是由 Java 编写的。它是由 Linux 和 Java 一起构造的一个开源的软件,提供一系列的解决方案其中包含的有 Key Apps 和 Linux 内核和 Dalvik 虚拟机和 SDK 等等的一个全套的移动智能终端程序的开发方案。Android 为开发者提供了一整套非常有效和实用的技术框架,同时也开放所有基于 Linux 内核的一系列开发工具,保证 Android 开发内容的可移植性、高质量和多样性,开发者使用 Android 平台开发移动端的应用程序,当然开发者可以通过开发新的组件来供给系统来调用,一边更加人性化和贴近用户。Android系统最早是由Google公司开发的,由于它具有开放性的特点,之后便由每个生产厂商来进行进一步的开发。这些生产厂商占据了很大的一个比重,因此也可以说是由所有的Android的使用者来开发的。它提供了包括从底层的操作系统直到上层程序界面的全部软件,这个平台的任何应运者,都不需交纳一切授权许可产生的费用,而且,最重要的是每一个使用Android系统的手机生产厂商,都可以对某一个细节或是功能进行修改,来达到不同使用者的具体需求在Android系统来讲,虚拟机是能够运行程序的。但是除过这个以外,在这个系统里运行的全部App的地位是完全相同的。对我们来说,虚拟机是运行应用程序的一个平台,而应用程序是由我们使用着来使用的,它相当于为我们提供了一个通道,这个通道用来让应用程序和硬件进行交流,这个通道叫做API。Android击破了存在于应用程序之间的一个隔膜,在Android平台的支持下面进行应用程序的开发,可以特别方便地实现,在应用程序之间进行数据的共享。每个应用程序不仅可以经过API实现访问系统所提供的性能,还可以经过申明自身的能力的方式来为别的应用程序调用。Android为所有的计算机软件的研发人员提供了许多的使用库以及使用工具,能够让计算机软件的研发人员来快速地创力起自己的应用程序。比如Android曾把特别著名的Google Map融合进来,计算机软件的研发人员通过特别简便的数行代码便可以迅速地研发出关于地图的应用程序。2.2 Android开发环境Android的上层应用程序是用java语言开发,同时还需要基于Dalvik虚拟机,需要以下软件,才能搭建Android开发环境,开发Android应用程序。(1) Java SDK(2) ADT(3) Eclipse(4) Android SDK2.3 Java SDKSDK全称为Software Development Kit,即软件开发包,是厂商提供的集成了的封装的库,通常比较靠近底层,通用性强。Java SDK是为Java应用程序的开发所必要的,所以其他的编程框架和类库都是建立在Java SDK之上,比如Math.random()函数,在编程时直接引用就行。JDK编译和测试工具,是调试和运行的工具,也是提供Java程序的Java虚拟机平台。首先在下载并安装JDK,本次毕业设计JDK使用版本为JDK1.7U3,安装的默认路径为windows所在的根目录,本机安装目录为G:JavaJDK1.7.03,安装完成后重启即可。其次是配置环境变量,让其在开机时要自动调用JDK系统文件,方法如下:(1)计算机属性高级系统设置高级环境变量;(2)系统变量新建 JAVA_HOME 变量 。变量值填写JDK的安装目录,即G:JavaJDK1.7.03;(3)系统变量寻找 Path 变量编辑。在变量值最后输入 ;%JAVA_HOME%bin;%JAVA_HOME%jrebin;(4)检验是否配置成功:运行cmd,输入 Java -version,若显示版本信息 则说明JDK安装和配置成功。2.4 ADTADT 全称 Android Development Tools,是Google提供的一个 Eclipse 插件,用于在 Eclipse 中提供一个强大的、高度集成的 Android 开发环境,是Android开发工具链,是Eclipse的一个插件。安装了 ADT,不仅可以联机调试,而且还能够模拟各种手机事件、分析你的程序性能等等。ADT 是平台下开发 Android 应用程序系统的组件。需下载并安装。安装方法(由于Google被屏蔽,只能通过导入压缩包的方式安装):(1) 在Eclipse的解压目录中启动eclipse.exe;(2) 打开helpInstall-New Software.-ADD.;(3) 单击【Archive】选择ADT压缩包,单击OK即可;(4) 重启Eclipse,然后设置SDK的路径;(5) 选择Window-Preferences.,再打开的属性框,选择Android:配置上你的SDK路径即可。本机为G:JavaANDROIDsdkAndroid SDK;(6) 设置Android SDK和AVD Manager(AVD:Android Virtual Device):选择Window-Android SDK and AVD Manager;选择 Virtual Devices,按new创建新AVD虚拟机。2.5 Eclipse所有 Java 开发者都对这个工具非常地熟悉,它是最好用的 IDE 工具之一。 Eclipse 支持极多的插件工具,使得它不仅仅可以用来开发 Java,还可以很轻松地支持几乎所有主流语言的开发,当然也非常适合 Android 开发 。 除了 Eclipse 外,同样适合开发 Android 程序的 IDE 还有 IntelliJ IDEA、Android Studio等。其中 Android Studio 是Google官方在近期推出的新 IDE,由于是专门为开发 Android 程序定制的,在 Android 领域大有要取代 Eclipse 的势头。不过在此次编译“基于Android的流量监测系统”中还是决定继续使用 Eclipse,因为 Android Studio 才推出不久,运行不够稳定。另外在以后的工作中大多数应用程序还是用Eclipse开发的,如果跟他们选择不同的 IDE,不利于提高工作效率。Eclipse 是一个源代码可扩展的开发平台。本身仅是框架和服务,所幸的是,Eclipse带了一个插件集,包括Java Development Tools,JDT。用户在多数情况下将 Eclipse 用于Java IDE,但其可实现的目的不仅于此。Eclipse还包含了Plug-in Development Environment等,可以满足想使用Eclipse 软件进行更多开发的开发人员。2.6 Android SDKAndroid软件开发工具包,是辅助开发某一类软件的相关文档、范例和工具的集合。用Google提供的 Android 开发工具包开发 Android应用程序时,需要通过引入该工具包,来使用 Android 相关的 API。API接口可以简单地为某些编程语言提供应用程序接口,还可以包括复杂的硬件,可以与一些嵌入式系统进行通信。用于调试和其他用途的实用工具都属于一般工具。SDK还常常包括示例代码,对于澄清质疑的基本信息支撑技术说明或其他证明文件。SDK:(software development kit)又名软件开发工具包,而Android SDK则是Android专用的软件开发工具包。下载地址如下:/Android/Android-sdk_r16-windows.zip(需翻墙)主要安装步骤如图2.1:图2.1 SDK主要安装步骤如图2.2,点击Available Packages查看Android版本。图2.2 SDK主要安装步骤通过点击下图2.3中工具栏上的按钮来运行虚拟设备管理器 : 图2.3 SDK主要安装步骤如图2.4,点击New按钮实现新建一台设备,其后设置相应的值:图2.4 SDK主要安装步骤如图2.5,Skin下Build-in的还有如下可选项:图2.5 SDK主要安装步骤点击Create AVD按钮来完成创建工作。点击Start.启动设备,可以通过设备管理器界面选择一个设备来实现,启动完成后有如图2.6 界面:图2.6 SDK主要安装步骤3 系统需求分析3.1系统可行性分析 对于系统进行的可行性分析,或许我们不会感到陌生,究其根本目的,是因为,有对于这个问题的数种方法的可能存在的优缺点的原因,之后才能得到较为精准的判别,鉴别原有的设置的目标是否能够实现,其实这个问题也就是要在一个比较高端的角度,以一种不是非常具体的方式去做出一个整体性的分析和设计,大概就是这样的一个过程。 应用总量的可行性是包括许多方面的,大致的来讲可以归纳为以下三点,第一个是经济上面的可行性,毕竟这个方面是每个人都会面对到的问题;第二,技术方面也必须具有可行性,不能脱离实际情况;第三,本质操作和法律上的可行性也是不可或缺的。经过这样的一系列的开发之后,还会进行运行和实际上的操作,从发展的眼光以及角度来看,还必须要要考虑这个系统的可持续发展性,一个成功的安卓平台,也许会在硬件设备上具有一定程度的局限性,进一步进行优化和创新甚至于是突破是至关重要的。3.1.1经济可行性这个系统的研发在经济方面并没有非常大的需求性,考研信息的获取也只需要比较少的费用。与此同时,也会有非常复杂的目的,这样只是纸上谈兵,研发的时间在整体上来说很长,事实上它达到了为用户带来方便的目的,还可以让该应用具有很大的发展空间,这样的话,那它所产生的回报会远远高于支出。安卓平台是一个相对来说非常自由的平台,分给开发人员的经费一般来说是非常有限的。这样会在很大程度上提升该系统的高效性这一特点,然后就能为研发工作创造一个良好的条件和基础。结果证实,本系统的开发确实科学性较强。3.1.2技术可行性该应用采用的是基于安卓开发,现阶段来讲,安卓发展已经相当成熟,并且以安卓为平台的研发日益增多,受到很多研发工作人员的欢迎。所以,技术层面上PHP其实是能够完成这个平台开发的任务。因此系统开发在技术上是可行的。3.1.3操作可行性对于一个软件来说,开发完成之后的操作难度会决定它是否能够得到大规模的推广使用,这是开发者必须要考虑到的问题,而本流量监测软件系统就很容易进行操作。软件的客户能够具有一个安卓移动终端设备,基本不会需要任何的专业指导,能够顺其自然地学会自己如何使用和操作,操作完全没有复杂性,因此,在对这个软件进行设计实现的时候,只添加了很少的类似于帮助的功能,除此之外,没有增加别的指导功能呢,这样处理不会影响用户的体验。所以,就操作这个方面来说的话,用户会操作的十分简单,完全没有过大的难度,易于使用,给了使用着很大的方便,不用去专门学习,减少了学习的时间。3.1.4法律可行性对于一个软件的开发和使用来说,无论如何都必须遵守法律的规定,所以,在开发的过程中,这个系统从各个方面来说都会对法律的规定有全面地考虑。其中有技术层面和经济层面等。所以,这个减肥软件都是符合法律规定的,完全可以开发和使用。3.2需求分析对软件需求分析的目的是创造一个全新的、或者是变化现在有的计算机系统用来描述新的系统目标的所有工作。举个例子,就像是去订做一件衣服,裁缝不会说一上来就给买衣服的人做,而是先了解他的需求,比如想要什么样的款式,颜色,要几个口袋等等,然后再去量好顾客的三围等尺寸,脑海里开始构思,之后才会着手去做。所以,统计了需求,分析人员就能够进行复杂的系统的分析,之后就能根据这些分析得到一个结论,从而能够设计出一个一个比较合适的开发方案。在软件开发的初期,开发人员会自然而然地把目光聚集在软件的设计方面,如何设计出花哨的软件,往往忽略了需求分析,总想着如何做好软件来吸引眼球。但是近些年来,发生了很多的事情,使得意识到需求分析是软件设计过程中的一个非常重要的部分的人渐渐增多,就像上面所举的例子,充分地了解之后,裁缝才会着手去做,如果做错了款式,或是用错了颜色,也可能是做错了尺寸,或是袖子啥的不合要求,前面的工作就相当于是无用的,不仅浪费了时间,可能还会失去顾客。所以,在拿到一个项目的时候,需求分析其实是在项目的完成过程中特别重要的一环。就像是竹子的样子,是一节一节的,需求分析就像是竹子的根部,跳过它完成其他的部分是不可能的,而且,它也是这整根竹子的立足点。并且,事实证明它的地位举足轻重。而且,只有根力好了,竹子才能长高长好。项目就像这根竹子,需求分析做的好不好,直接决定了项目的命运。需求分析就是扎根的过程。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述系统的功能、输入/输出、异常,等有时还需要明确指出系统不应该做什么。所以,越来越多的软件项目操作者开始把大量的精力放到了软件的需求分析这个部分,事实上,这时一个磨刀不误砍柴功的过程,把刀磨好了,才能更加高效地进行下面的工作,节约时间,同时能够提高效率。同理,需求分析就是这个磨刀的过程,没有人会觉得磨刀的过程很浪费时间,刀磨好了,工作才会事半功倍。同样的,只有对用户的需求进行充足的分析,真正了解到了用户的要求,就会给软件设计指明方向,做出契合用户的软件。也避免了出现多余的功能模块,或者是没有达到用户的心里预期,或者是要求的功能,而进行返工等费时费力的额外的工作。所以,需求分析是最重要的一环。3.3软件系统的非功能分析通俗地来讲,软件的非功能需求就相当于是给设计的过程一个约束,有了用户的功能需求,在设计的过程中也要考虑到别的方面,这些方面便统称为非功能分析。由于本软件的实际需求量较大,所以应满足以下非功能需求:可靠性:是指设计好的软件要能达到正常工作的要求。而且,由于是为用户所设计的,可能用户不会具有专业的知识,因此,软件要能经得起外来因素的干扰,并且在出现问题的时候,不会马上停止或是失效,给用户一个等待专业人员修复的时间。安全性:这个方面主要是指在用户的使用过程中,当输入了身份信息之后,不会出现泄露,丢失等问题。可用性:界面友好让用户有使用的欲望、容易学习,操作简单快捷,方便用户使用。适应性:系统能能够适应外部环境及需求的变化。4 总体设计4.1 软件体系结构软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。本次设计是一个面向对象的Android系统,采用基于eclipse平台的java和C+的集成开发工具NDK。本次基于Android的手机流量监控软件的设计与实现的开发,在java环境中,通过Jpcap软件包访问底层数据系统,采用Network API操纵原始套接字Socket对数据包进行采集捕获,并可实现分类及自定义范围进行捕获,要求应用程序功能准确、完善,易使用等特点。4.2 UML建模4.2.1 流量监控流程分析以Android 系统为平台,分别从平台的应用层以及底层两个层次入手,着重研究了Android 智能手机的流量监控,开发实现了一个Android 流量监控工具,对该中间件的行为进行了验证,通过它可以方便的对手机上的每个应用程序进行有效的网络监控以及流量统计。在安卓中启动流程分析如图4.1所示。 图4.1 Activity流程图4.2.2 流量监控系统功能分析 基于安卓平台的流量监控系统,需要实现对手机软件进程监控,能够实时的关注和统计流量信息,并且可以设置每月的流量额度,可以提醒每月流量的使用情况,对流量信息进行统计。图4.2 系统功能图4.2.3 流量监控系统用例分析 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。通过系统的功能需求分析,可得到系统的执行者为手机用户,系统的用例为流量统计、手机软件监控。 图4.3 软件用例图以下表显示了的业务管理的用例规约。表4.1 流量设置用例名称流量设置参与者手机用户假设用户预算每月的流量额度前置条件手机用户能够使用WIFI网络后置条件用户设置月流量和结算日信息主事件流1. 手机用户打开软件2. 设置流量额度;3. 确认WIFI环境;表4.2 进程监控用例名称进程监控参与者手机用户假设手机用户预先开启多个手机程序前置条件保证多个手机程序已开启后置条件WIFI环境打开主事件流1. 用户打开软件;2. 读取进程;3. 关闭进程。表4.3 流量统计用例名称流量统计参与者手机用户假设在WIFI环境下已经使用花费流量程序前置条件在WIFI环境下已经使用花费流量程序后置条件保证系统正常统计和额度设置主事件流1. 用户打开软件;2. 统计月流量和日流量;3. 核对信息。4.2.4 定义实体类实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;它们主要在分析阶段区分实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。它是封装了基本信息的类,这些类组成了整个系统中运行的数据传递过程,把更为零散的客户端数据封装成一个单独的实体,在开发阶段省去了处理过多数据导致的数据混乱的问题,降低了程序员的负担,提高了系统开发的效率。在系统中,实体类共有以下几个:用户类、流量类、进程类,具体内容将在系统设计中实现,本部分仅列出最基本属性及方法。具体的类图如下所示:图4.4 实体类图图4.5 界面类图4.2.5 序列图时序图,又称序列图,活动序列图等。是用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互。主要包括类角色、生命线、激活期和消息四个元素。时序图描述对象是如何交互的,并把重点放在消息序列上。时序图有两个坐标轴,纵坐标轴显示时间,横坐标轴显示对象。图4.6 时序图5 系统实现功能5.1 数据捕获与显示模块采用Network API操纵原始套接字Socket对数据包进行采集捕获,并可实现分类及自定义范围进行捕获。Android流量监控主要是有两种方法:方法一:抓包这个方法获取的流量更加精准,需要用到第三方抓包工具,设计起来难度较大。也达不到本次设计的目的。方法二:读取linux本地文件android手机流量信息系统是LINUX内核 记录在/proc/self/net/dev文件里面图5.1 首页图因为需要对进入Android 手机的数据包进行读取,所以在框架中,我们选择NF_IP_LOCAL_IN 作为实时内容过滤模块的加载钩子点,这样可以对进来的每个数据包进行检测。由于Netfilter 框架运行在网络层,所以我们只需要对ip 协议中的HTTP 报文进行检测即可。通过Linux 的可加载内核模块机制来对网络数据包进行钩子劫持主要可以分为三个步骤:(1)按照前一章对数据包回调函数的描述,通过对指向描述网络数据包的sk_buff结构体的指针skb 的操作,实现对端口、网络地址等属性进行过滤或其它的控制操作。(2)注册nf_hook_ops 的一个实例,将里面的hook 指针指向上一步数据包回调处理函数。(3) 用第二步产生的nf_hook_ops 实例作为参数,使用nf_register_hook 函数向内核注册该钩子函数,该模块加载之后,内核就可以通过我们自己编写的数据包处理函数对数据包进行过滤或者记录。端口信息记录在传输层的tcp 协议,该协议头部信息定义在tcp.h 头文件当中,结构体描述如下:struct tcphdr_u16 source; /源网络端口_u16 dest; /目的网络端口_u32 seq; /序列号_u32 ack_seq; /确认号,代表下一个希望接收的TCP 字节_u16 res1:4,doff:4, /数据偏移fin:1,.5.2 流量信息统计模块 统计各个软件的使用流量。对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析。.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计。Java代码如下: static long getMobileRxBytes() /获取通过Mobile连接收到的字节总数,不包含WiFi static long getMobileRxPackets() /获取Mobile连接收到的数据包总数 static long getMobileTxBytes() /Mobile发送的总字节数 static long getMobileTxPackets() /Mobile发送的总数据包数 static long getTotalRxBytes()/获取总的接受字节数,包含Mobile和WiFi等 static long getTotalRxPackets()/总的接受数据包数,包含Mobile和WiFi等 static long getTotalTxBytes() /总的发送字节数,包含Mobile和WiFi等 static long getTotalTxPackets()/发送总数据包数,包含Mobile和WiFi等 static long getUidRxBytes(int uid) /获取某个网络UID的接受字节数 static long getUidTxBytes(int uid) /获取某个网络UID的发送字节数 总接受流量TrafficStats.getTotalRxBytes(),总发送流量TrafficStats.getTotalTxBytes();不包含WIFI的手机GPRS接收量TrafficStats.getMobileRxBytes();不包含Wifi的手机GPRS发送量TrafficStats.getMobileTxBytes();某一个进程的总接收量TrafficStats.getUidRxBytes(Uid);某一个进程的总发送量TrafficStats.getUidTxBytes(Uid);图5.2 进程流量图Android提供了一个类,叫做TrafficStats,他的功能是对Android系统进行流量统计。其实TrafficStats 也是读取Linux 提供的文件对象系统类型的文本进行解析。A.TrafficStats 类里面,提供了多种静态方法,通过他们可以直接调用获取相应的数据,返回类型均为long 型。如果返回的值为UNSUPPORTED,即-1,则说明当前设备不支持流量统计。TrafficStats 的统计范围包括所有网络接口,mobile 接口和UID 网络接口的字节发送和接收,网络数据包的发送和接受。但是,通过该类给出的统计数据不一定符合用户的需求,因为上述数据指的是一次开机时间内的数据。当系统重启之后,数据会清零,所以我们需要采用另外一种办法来统计年、月、日的手机流量。这里采用android 的轻量存储机制sharedpreference 来完成。图5.3 月流量统计的流程5.3 流量绘制模块 根据流量使用情况绘制流量统计图。Drawable类的使用import android.graphics.drawabl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论