毕业设计(论文)-基于安卓的安全卫士.doc_第1页
毕业设计(论文)-基于安卓的安全卫士.doc_第2页
毕业设计(论文)-基于安卓的安全卫士.doc_第3页
毕业设计(论文)-基于安卓的安全卫士.doc_第4页
毕业设计(论文)-基于安卓的安全卫士.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

(2014届)本科毕业设计(论文)资料 湖南工业大学教务处 届本科毕业设计(论文)资料第一部分 毕业论文湖南工业大学本科毕业论文(设计)诚信声明本人郑重声明:所呈交的毕业论文(设计),题目手机安全卫士是本人在指导教师的指导下,进行研究工作所取得的成果。对本文的研究作出重要贡献的个人和集体,均已在文章以明确方式注明。除此之外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的责任。作者签名:日期: 年 月 日湖南工业大学本科毕业设计(论文)摘 要手机安全卫士是一款集,手机防盗,手机通讯录,联系人备份,联系人还原,短信黑名单,来电一声响,防骚扰电话,防隐私泄密,归属地显示功能于一身的手机软件。拦截黑名单短信和黑名单来电,还用户清静的手机讯息。隐私保护模块加密您的用户app和系统app,保护您的个人隐私应用,来电去电归属地显示,来电去电用户一目了然。本文基于android技术,采用mvc设计模式为系统架构,完成系统的开发工作,能够基于移动客户端,使用安卓的广播机制和权限机制实现手机指令防盗和通讯管理。使用安卓内置应用管理api实现应用管理,能分离用户应用和系统应用以及进程管理,能杀死用户进程,以及部分系统进程,还能定时清理内存。高级工具运用android数据库api实现了归属地查询,运用安卓组件service实现来电归属地显示来电信息。高级工具还包括隐私保护模块,隐私保护模块能将你的隐私应用加锁,其他人想进您的隐私应用必须输入密码,设置中心能自动检测版本更新,如果有新版本将可以自动下载安装。本论文通过手机卫士的设计与实现,为用户管理手机,和对用户使用手机的安全提供了方便的操作促进了手机安全方面的技术提升。关键词:通讯卫士;手机防盗;应用管理;进程管理;android湖南工业大学本科毕业设计(论文)abstractis a set of mobile security guards , mobile security , mobile phone address book , contacts backup , phone contacts, restore contacts , sms blacklist , call an audible , anti-harassment calls , anti- privacy leak , attribution to display in-one phone software . intercept text messages and harassing calls blacklist , but also users of mobile phones quiet space . privacy protection module to encrypt your user applications and system applications , protect your privacy, outgoing calls attribution show , call information at a glance .based on android technology, using mvc design pattern framework for the system to complete the development of the system, can be based on the mobile client , using the broadcast mechanism android phone instructions to achieve security and communications management. use the built-in android application management application management api implementation , the user can separate application and system applications and process management, can kill the user process , as well as some system processes, but also to regularly clean up memory. advanced tools api achieved using the built-in database query attribution , use the mechanism to achieve service calls attribution to display the callers information . advanced tools include privacy protection module , privacy protection module can lock your privacy applications , others want to go to your privacy and application must enter the password , set the center can automatically detect the version of the update , if a new version will be able to automatically download and install.in this paper, the design and implementation of mobile guards through , for users to manage mobile phones, mobile phone users and to provide a safe and convenient operation of mobile phone technology to enhance the promotion of safety keywords: communications guards; mobile security; application management; process management;i湖南工业大学本科毕业设计(论文)目 录第1章 绪 论11.1 课题背景11.2 国内外的研究状况11.3 课题研究目的和意义2第2章 系统相关技术32.1 mvc设计模式32.2 android系统架构42.2.1应用程序层42.2.2框架层42.2.3本地系统库与运行时层52.2.4 linux 内核层62.3 应用程序组件62.3.1 activity62.3.2 service72.3.3 broadcastreceiver82.3.4 contentprovider82.4 消息机制分析9第3章 需求分析113.1 系统目标和任务113.2 需求描述113.3 非功能性需求12第4章 总体设计144.1 概要设计144.2 详细设计144.2.1 手机防盗144.2.2 通讯卫士154.2.3 应用管理164.2.4 进程管理174.2.5 流量管理174.2.6 高级工具184.2.7 设置中心194.3 系统数据库设计194.3.1数据库表详情204.4 业务类设计21第5章 系统实现235.1 系统相关代码235.2 系统界面25结 论34参考文献35致 谢36ii第1章 绪 论本章对课题研究进行了概述,首先对课题研究背景进行概述,其次结合国内外形势进行简要分析,最后解释了手机卫士相关概念。1.1 课题背景伴随着全球智能手机市场的飞速发展,智能手机的功能日趋丰富,手机应用的数量也是与日俱增。目前谷歌的官方应用商店中的应用就已超过了40万个,在这些应用中有不少都是免费的,多样化的应用吸引了大量的用户的下载。不过,树大招风,由于短时间内涌现出大批的应用,而又缺乏相应的安全监督措施,使得android平台上的恶意软件泛滥成灾。许多的恶意软件打着免费的招牌,利用各种花招诱骗用户下载安装,通过大量消耗智能手机用户的上网流量或者窃取用户手机中的隐私信息等恶意行为谋取不当利益。据了解,在各类应用市场中,有很多的应用都被打包或植入了广告,这些被打包的应用会在手机系统后台不断消耗用户上网流量,窃取用户手机号以及联系人信息。android用户的手机隐私泄露严重,手机安全形势日益严峻,这时用户需要的是对应用流量的实时监控,流量的防火墙,以及对手机的杀毒功能为一体的软件在移动互联网时代,以运营商+设备厂商为主导的传统信息产业运作模式正在被打破,新的运作模式正在形成。现今互联网行业,电信行业,终端行业纷纷向云计算,积极参与到由移动互联网发起的云计算中。组成了由云,管,端三大基础设施与一体的行业模式。市场上大多数手机卫士都没有包含通讯录短信备份功能,即使有一些优秀的系统存在,他们也会被加密不能用于研究和学习。只有深入到系统内部了解其提供的各种机制和规则才可以开发出优秀的通讯卫士模块。1.2 国内外的研究状况google早在2002年就进入了移动领域,那时候由于手机操作系统和手机厂商相对封闭,所以行业门槛高,移动互联网的发展远没有拥有统一标准的传统互联网发展迅速,出于这个目的google于2007年11月5日推出了基于linux内核的开源智能手机操作系统android。与其他智能手机操作系统相比较,android的开源理念竞争力体现在如下几个方面:(1) 源代码完全开放,使得开发人员能更清楚的了解底层实现细节,大量阅读开源代码,能提高开发人员的水平。(2) 采用了对有限内存,电池和cpu优化过的虚拟机dalvik,使得android系统更加适合嵌入式系统。(3) 优秀的盈利模式,产业链条的各方运营商,制造商,独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大地激起了软件开发者的热情。(4) android的源代码遵循apachev2软件许可,可不是通常的gplv2许可。有利于商业开发。(5) .而且具备强大的linux开源社区的支持。1.3 课题研究目的和意义自谷歌的android手机操作系统发布以来,移动设备领域发生了翻天覆地的大变化,移动互联网三足鼎立,iphone,windows mobile, android各占大片江山,魅族,小米等国产手机厂商开始迅速崛起,生产以android系统为核心的手机,这些android手机也深受消费者的青睐。由于android开源的特点,对于开发者而言,只要你会做开发,只要你懂开发,你就可以做出你想要的手机应用。因此,android的apk犹如漫天繁星般纷纷涌现。android应用如此繁多,但是其中优劣却是层次不齐。有些应用还会偷手机流量,后台自动发送付费短信等等一系列问题。由于android市场份额高,利润很大,很多不法分子会用偷,骗,抢等手段从用户手中获得手机,然后转手卖给其他人,如何解决这个问题,一直让很多人很纠结,头痛。随着时间的推移,我们使用的android手机中会有越来越多的应用软件,随着更新,更好的应用发布,旧版本的应用被淘汰,闲置着还浪费存储空间大小,所以有一款方便,安全,快捷的程序卸载功能的应用是相当的重要。同时,我们在使用手机时,常常会因为打开的软件过多导致内存不够用,手机中有一款任务管理功能的软件同样也是必不可少的。基于以上原因,设计一款好的android的手机安全卫士包含以上所说的所有需求是势在必行的!第2章 系统相关技术本章对mvc设计模式以及android系统的特征和架构进行论述,并分别介绍android应用层组成android应用程序的四大组件,阐述android引入dalvik类jvm虚拟机的原因,以及jni透过dalvik虚拟机与系统c+层进行交互的技术,为后文的研究奠定基础2.1 mvc设计模式mvc是model-view-controller的简称,即模型-视图-控制器。mvc是一种设计模式,它把应用程序分成三个核心模块:模型,视图,控制器,它们各自处理自己的任务。其设计模式如图2.1所示图2.1 mvc设计模式首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。由于mvc的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。2.2 android系统架构android的系统架构和其操作系统一样,采用了分层架构。从架构图看,android平台分为四个层次,从上到下是应用层,框架层,本地系统库与运行时层和linux内核层4。android系统架构图如图2.2所示图2.2 android系统架构2.2.1应用程序层android更新的系统会与一系列核心应用程序包一起发布,这些应用程序包通常包括联系人,短信,日历,地图,浏览器,相册,拨号等。所有的应用程序都是使用java语言编写13。2.2.2框架层开发者也能够完整的访问核心应用程序所提供的框架层接口。框架层设计简化了应用程序层组件的复用,即任何一个应用程序都可以发布它的功能块并且其他人开发的应用程序都可以使用其所发布的功能块(遵循框架的安全性限制规范)同样,这种复用机制方便了程序组件的替换4。隐藏在每个应用后面的是一系列的服务和系统:(1) 一组view(ui组件)这些ui组件包括按钮(button),网格(gridview),文本框(edittext),文本标签(textview)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。(2) 内容提供器(content providers)提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如本应用中给新应用添加程序锁,就是使用contentprovider来实现的。因为watchdogservice初始化中拿出了所有加锁的应用。当用户添加新的加锁应用,必须更新watchdogservice中的加锁应用集合,所以这时候加锁应用的插入操作就要使用contentprovider来实现(3) 资源管理器(resource manager)提供非代码资源的访问,如本地化的字符串,图片和布局文件之类的非代码资源。(4) 通知管理器(notification manager)它允许所有的应用程序在状态条上显示定制的提醒。比如本应用程序中的拦截来电一声响就用了notification,它会出现在通知栏,当用户点击notification,它会消失,并进入显示被拦截信息activity中。(5) activity管理器(activity manager)管理应用程序的生命周期和提供通用的导航返回堆栈。2.2.3本地系统库与运行时层(1) 本地系统库函数库,主要提供一组基于c/c+的函数库,这些库为android系统中不同的组件使用。它们通过android应用程序框架间接为开发者提供服务。以下是一些核心库: 系统c库:一个从bsd继承来的标准c系统函数库(libc),他是专门基于embedded linx的设备定制。 基于packetvideoopencore的媒体库:该库支持多种常用的音频,视频格式回放和录制,同时支持静态图像文件,其编码格式包括mpeg4,h264,mp3,aac,amr,jpg和png等。 surfacemanager:支持显示子系统的访问,提供应用程序提供与2d和3d图像层的平滑连接。 webkit:一个最新的web浏览器引擎,支持android浏览器和可嵌入式的web视图。 sgl:底层的2d图形引擎。 freetype:位图与矢量字体渲染。 sqlite:轻量级的关系数据库引擎。(2) android运行时android包括了一个核心库,该核心库提供了java编程语言核心库的大多数功能。每一个android应用程序都在它自己的进程中运行,都拥有一个独立的dalvik虚拟机实例。dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。dalvik虚拟机执行dex格式的dalvik可执行文件,该格式文件针对小内存使用做了优化,同时虚拟机是基于寄存器的,所有的类都经由java编译器编译,然后通过平台的dx工具转化成dex格式由虚拟机执行。dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制2.2.4 linux 内核层android的核心系统服务依赖于linux3.0内核,如安全机制,内存管理,进程管理,网络协议堆栈和显示驱动,wifi驱动。linux内核同时作为硬件和软件堆层之间的一个抽象隔离层。2.3 应用程序组件对于一个android应用程序来说,是由activity,broadcastreceiver,service,contentprovider四个组件组成,但并不是每一个android应用程序都必须包括这四个组件。在应用程序中使用这些组件时,需要在配置文件androidmanifest.xml中进行配置。这个配置文件是android应用程序所必须的,用于定义应用程序的组件,组件的功能,以及必要条件等。android应用的构成和工作流如图2.3图2.3 android的构成与工作原理图2.3.1 activityactivity是app应用的一个组件,提供了可与用户交互的屏幕,用户可以根据自己意愿做相关操作,如打电话,拍照,和发送邮件或地图浏览。每个activity被赋予了一个用来画它用户界面的窗口,这个窗口一般填充屏幕,但是也可能比屏幕小或者悬浮在其他窗口顶端。一个应用通常包括多个activitys,这些activity相对松散的约束在一起。典型的是应用中的一个activity被指定为主activity它会在第一次启动应用时呈现在用户前面图,每一个activity为了执行不同的操作可以启动其他的activity。每个新activity启动的时候,前一个activity都会被停止,但是系统会在activity栈中保存这个activity。当一个新的activity启动,它会被压入到栈中并获取用户焦点。栈保持着后进先出的特点,当用户按下返回键结束当前activity,它将被栈弹出并且前一个activity将会重新恢复。结束的将被ondestory掉。2.4展示了activity的生命周期图2.4 activity 生命周期在android生命周期中有以下三个循环:(1) 全生命周期从它首次调用oncreate方法开始到调用ondestory方法结束这一段时期。在oncreate方法中设置全局状态和初始化工作。在ondestory方法时进行清理工作,释放所以现存的资源。(2) 可视化生命周期从调用onstart方法开始到onstop方法为止这一段时期。在这段时间内,用户能在屏幕上看到activity并与之交互。例如,当一个新的activity启动并且当前activity不在显示就会调用onstop()方法。在onstart()和onstop()方法之间,你能够维护一些需要在activity上显示给用户的资源。(3) 活动生命周期从调动onresume方法开始,到onpause被调用为止。在这段时间内activity处于其它屏幕上所有其他activity之前,并与用户进行交互。一个活动可以频繁从前台转入转出。2.3.2 service服务是一个应用程序组件能在后台执行长期运行操作并且没有提供用户界面。其他应用程序组件能启动一个服务,启动后它将持续运行在后台即使用户转换到其他应用。使用service可以通过两种方式:第一种是通过context的startservice方法启动服务,调用stopservice方法结束服务;第二种方式是通过context的bindservice方法启动服务,调用unbindservice结束服务。服务一个最好的例子为一个从媒体播放器的播放列表中挑选歌曲并播放。在一个媒体播放器应用程序中可能包含很多的活动,它们实现了用户从播放列表中选择自己喜欢的歌曲,并使用播放器播放等功能。当应用跳转到一个新的界面时,用户仍然希望音乐继续在后台播放,这时音乐播放本身就不应该由活动来处理了。在这种情况下,活动启动一个在后台播放音乐的服务,音乐也会如用户所愿继续在后台播放。系统会一直保持音乐播放,直到服务停止。2.3.3 broadcastreceiverbroadcastreceiver(广播接收者)用于异步接收来自外部事件的广播。android为开发者提供两种方式来使用receiver:在应用程序中通过应用程序上下文的registerreceiver方法动态的向系统注册一个receiver实例;或者在androidmanifest.xml文件中使用标签静态发布自定义的receiver。如果在activity的onresume方法中动态地注册一个receiver,相应的就必须在它的 onpause方法中注销该receiver。一个broadcastreceiver对象的生命周期仅仅为系统调用onreceiver(context, intent)方法期间,一旦程序从该方法返回系统就视为该receiver已经完成并不在处于活动状态;同receiver的声明一样,相应的其权限也可以有两种方式:通过在程序中使用方法动态向系统声明;或者在androidmanifest.xml文件中使用标签静态地声明权限。2.3.4 contentprovider在android中,每个应用程序运行在各自的进程中。这样可以保护系统应用程序以及避免不被其它应用程序所影响;android应用程序能够将它们的数据保存到文件,sqlite数据库或者任何可用的设备中。当应用需要访问其它应用的数据时,数据需要在不同的虚拟机实例间传递,通常情况下是不能读取非本应用程序之间共享数据的组件类。contentprovider所采用的内容提供机制由框架层封装。它使用系统底层的数据访问接口服务并向应用程序层提供对数据库访问的抽象方法,通过uri(统一资源定位符)的方式向应用程序暴露数据并支持数据共享。本文将对contentprovicer的数据封装,数据暴露与数据共享机制做详细的阐述。2.4 消息机制分析activity类在mvc模式中扮演着contoller的角色,其所在的线程是一个android应用程序的主线程(即ui线程),主要响应用户操作请求和屏幕显示。如果把像读取联系人这样的耗时操作放在ui线程则会导致用户接下来的请求得不到系统的响应。android平台提供的消息机制为解决这样的问题提供了支持,同时平台的设计者并没有给出直接的解决方案,即并没有针对ui线程访问耗时数据时的情形提供直接的解决方案,而间接地提供了消息机制的平台支持。这就需要深入研究android平台的消息机制,为论文中针对该问题解决方案的提出奠定基础。android提供的消息机制是属于dalvik虚拟机级别的一种基于消息驱动的模型,这类似于windows的消息机制。运行在虚拟机上的应用程序默认的使用该机制响应用户操作或同一应用程序不同线程间进行消息传递。android通过handler类,looper类,messagequeue类和message类之间的协调合作来动态地实现消息循环机制,android消息循环是面向线程的,即每个线程都可以有自己的消息队列和消息循环。如图2.5展示了四个类间关系静态图。图2.5 消息机制中类关系handler类用于发送和处理消息。通过handler对象我们可以封装message对象,然后通过sendmessage方法把message对象添加到消息队列中。当队列循环到该message时,就会调用该message对象对应的handler对象的handmessage方法对其进行处理。下图展示了ui线程(activity所在线程)的消息循环流程图2.6 ui线程的消息循环这是一个一般消息处理的例子。activity所在线程会自动创建looper对象和messagequeue队列。将费时操作的处理放在非ui线程thread,并使该线程绑定一个handler。通过将任务分配给thread处理,thread将处理结果封装成message发送给主线程的消息队列中,主线程的looper在进行消息循环时将相应的message分发给主线程的handler处理,从而得到了操作的结果。handler对于message的处理不是并发的。一个looper只有等待handler处理完一条message之后才会读取下一条,所以消息的处理是阻塞形式的,即相对耗时的操作不允许放在handmessage方法体内。第3章 需求分析本章对需求进行描述,首先是对系统目标和任务进行描述,其次是对需求进行描述、系统用例图、系统非功能性需求和和已有资源集成进行说明。3.1 系统目标和任务课题研究的总体目标是做一款完全免费的手机安全软件,安全是任何成熟系统和产品的一项基础,没有安全,一切其他的服务都无从谈起。随着android智能设备的普及,个人在android智能设备上存放和处理越来越多的私人数据,例如个人的照片,邮件,短信,电话记录,联系人等,这些私人数据一旦被他人不合理的使用,将会产生严重的后果,2012年,著名安全软件公司赛门铁克调查结果显示,89%手机拾得者会访问手机中的个人应用与私人信息;超过60%的拾得者会查看手机中的社交媒体信息和电子邮件内容;80%手机拾得者试图假冒个人认证信息;超过半数的人试图通过手机访问银行账户。针对android安全问题而研制手机卫士,蕴含手机防盗,短信和电话的全方位攻击与保护,手机杀毒(包括查杀木马,病毒,恶意软件),应用管理,进程管理,系统优化,隐私保护等。为了实现上述项目目标,需要完成以下关键任务:(1) 手机防盗;(2) 通讯卫士;(3) 应用管理;(4) 进程管理;(5) 流量管理;(6) 隐私空间;(7) 手机杀毒;(8) 系统优化;3.2 需求描述安卓手机卫士包含九个模块手机防盗、通讯卫士、应用管理、进程管理、流量管理、手机杀毒、系统优化、高级工具、设置中心。手机防盗:手机防盗主要实现对手机的保护。进入手机防盗模块,提示用户设置手机保护密码,设置密码成功后进入手机防盗向导,该模块主要有以下功能:sim卡变更报警,gps追踪,远程销毁数据,远程锁屏,远程报警通讯卫士:主要实现对手机通讯录以及联系人的备份和还原操作,添加黑名单,添加黑名单包括添加短信的黑名单和添加电话的黑名单,反骚扰设置,电话一声响的拦截。短信黑名单拦截的还原操作。应用管理:应用管理实现对应用的管理,包括系统软件和用户软件,包括软件的卸载程序,轻松卸载不需要的软件,还可以直接运行你想要的程序,以及分享好玩的应用。进程管理:实现对系统内存中的进程进行动态监控,满足用户对无响应资源的进程进行结束机制。但有些系统进程用户是不允许结束的。流量管理:流量管理实现对各进程访问网络数据量的监控,有wifi和2g/3g两种模式,用户可以设定2g/3g网络下使用最高限制,当接近到最高值时,提醒用户。手机杀毒:手机杀毒功能主要实现对恶意软件扫描,通过查找数据库中的恶意软件标识特性来识别本手机系统中是否含有恶心软件。如匹配相似,则调用系统工具卸载或者强行删除。系统优化:系统优化实现优化系统,对系统开机项进行优化,系统垃圾清理。高级工具:包括归属地查询服务,归属地来电显示服务,归属地风格设置,来电归属地显示服务。隐私空间,其中隐私空间实现用户应用加锁访问,访问这些应用需要输入隐私密码。设置中心:实现用户对操作习惯性的设置比如升级服务,程序锁服务,更新apk等操作。3.3 非功能性需求(1) 安全性安全需求包括密码安全性需求和内容安全性需求。要保证系统和数据的安全,必须有相应的安全设施。系统的安全性必须达到如下要求: 防盗模块的用户只授权给拥有该模块密码的人。 防盗模块的设置密码必须不能为空。 防盗模块的设置密码长度必须在612之间。 防盗模块的用户登录功能,密码必须用md5算法进行加密。(2) 易用性 界面风格统一。 拦截的电话一声响能给出通知提示。 通讯卫士模块联系人需要能备份和还原。 设置中心需要给用户操作相关提示。 用户设置手机防盗向导时加入移入移出动画效果,增加用户体验感。 增加进程管理appwidget组件方便用户时常清理应用进程。(3) 可靠性 通讯卫士拦截的短信需要能还原到短信中。 设置中心中更新apk下载需要显示进度条,下载操作不能影响用户其他操作。 隐私保护模块加锁后的应用,需要输入密码登录。 流量管理模块中,流量的监控需要实时显示。(4) 可维护性、可扩展性和适应性 代码命名需给出可理解的英文单词,成员变量以m开头,代码分层清晰好理解。 代码中的工具类能在以后的项目中长期复用。第4章 总体设计本章说明了系统的总体设计,总体设计中包括系统的概要设计以及系统的详细设计和部分主要业务类的设计。以及对数据库相关表结构字段的说明。4.1 概要设计用例图分析了系统功能需求,在概要设计阶段设计了系统的体系结构,它可以从外部看系统的功能,但并没有展现内部的具体实现,主要用于对需求的总体进行分析与设计,得到参入者的功能。android手机安全卫士,主要包含如下几个功能点:手机防盗,通讯卫士,应用管理、进程管理、流量管理、手机杀毒、系统优化,高级工具,设置中心。具体如图4.1所示。图4.1系统功能用例图进入系统前需要有一个splash界面用来显示本产品的版本信息和系统产品欢迎界面,从splash界面才进入到系统主界面提供用户相应功能使用4.2 详细设计详细设计中将各个模块的用例细化,细化分析各个模块的具体功能。以及各个模块所依赖的关系。4.2.1 手机防盗当用户选择绑定sim卡的时候会记录当时sim的serialnumber,如果sim卡发生变更,再次启动手机会发送一个广播,如果开启了防盗保护,则此时会比对当前sim的serialnumber是否和记录的相同,如果不相同,则判断手机被盗,被盗后将通过smsmanager管理器发送短信消息,发送的短信消息内容中包括手机被盗提示信息以及手机防盗指令,发送的号码为用户在向导中选择的或者填写的安全号码,同时用户也可以通过发来的安全指令快速进入手机防盗,通过远程发送指令,发送变更后的经纬度给手机,发送指令恢复出厂设置,远程锁屏加重置密码,远程播放报警响铃。防盗模块用例图如图4.2所示4.2防盗模块用例图4.2.2 通讯卫士数据备份可以选择联系人备份还是短信备份,联系人备份可以将联系人以.cvf为后缀的文件保存在手机sd卡中,短信备份可以将短信信息以.xml为后缀的文件保存在手机sd卡中,联系人恢复时如果该联系人存在则不会将次联系人恢复,短信恢复时,如果该短信在手机中已经存在,将不会重复恢复短信。黑名单管理为通讯卫士的子模块,黑名单管理包括黑名单的添加黑名单的删除黑名单的更新。黑名单能设置短信拦截还是电话拦截或者是短信电话同时拦截。还会将来电一声响进行拦截,来电一声响会给用户通知栏显示,用户点击通知将会跳入黑名单设置模块。通讯卫士模块用例图如图4.3所示4.3通讯卫士模块用例图4.2.3 应用管理应用管理分为用户应用管理以及系统应用管理,用户能对用户应用执行运行操作,卸载操作,分享操作。用户能对部分应用执行卸载操作,用户不能对本软件进行卸载操作。卸载完的应用会在界面上进行刷新,不会再显示在界面上。app管理模块用例图如图4.4所示4.4应用管理模块用例图4.2.4 进程管理进程管理模块同样分用户进程管理和系统进程管理,只不过两个管理功能在同一个模块上,该功能包括一键清理进程和进程设置,其中进程设置功能能将已经安装的程序以列表的形式显示在界面上,用户可以设置程序白名单,当用户在玩游戏的时候,或者工作的时候该进程将不会被杀死,进程设置中还包括进程的自动清理,用户可以选择清理的时间,当用户勾选自动清理服务,关闭屏幕,将会启动一个后台服务根据用户选择的清理时间来清理后台进程。当用户激活屏幕,该服务将会停止清理操作。进程管理模块用例图如图4.5所示4.5进程管理模块用例图4.2.5 流量管理流量管理模块中主要包括流量的显示,其中有该应用3g流量上传显示和下载显示,以及该应用3g总流量的显示。除次之外还有该应用wifi流量的上传显示和下载显示,以及该应用wifi总流量的显示。当然所有应用的3g总流量和wifi总流量的统计显示必然是有的,这里为了增加用户体验还加入了slidingdrawer控件。这里对应用的流量监控都是实时更新的。进程管理模块用例图如图4.6所示4.6流量管理模块用例图4.2.6 高级工具高级工具中有ip拨号功能,当用户在设置中心中设置启动ip拨号服务的时候每次用户打电话,电话前面将加上该ip号码。归属地查询,用户可以根据号码查询归属地,当归属地查询为空时将会产生shake动画效果。如果用户开启了来电归属地提醒服务,用户收到对方来电时,将会显示来电归属地,用户可以拖拽来电归属地显示框,当用户结束通话,来电归属地框将会消失。用户还能设置来电归属地风格。接下来是高级工具中比较有亮点的功能,隐私保护,用户进入隐私保护需要输入密码,进入隐私保护后,用户可以给自己的应用上锁,上完锁之后用户进入加锁应用需要输入密码。当用户输入密码后,进入该应用将不需要输入密码,但用户手机休眠后,再开启进入该应用是需要输入密码的。高级模块用例图如图4.7所示图4.7高级工具模块用例图4.2.7 设置中心设置中心能设置程序锁服务,当用户开启程序锁服务后,在高级工具隐私模块中可以给隐私app上锁,服务会不断监听用户进入的app是否是加锁app,如果是加锁app则进入加锁模式,让用户输入密码才允许进入。版本更新checkbox勾选上后,进入自己app时会检查服务器最近版本的app,如果是新版本的app则提示用户是否做更新操作。如果更新,则从服务器上下载到本地进行安装操作。如果不是则直接进入splash界面。添加ip拨号后,用户每次给对方打电话都会启用ip拨号服务,拨出的电话都会加入用户在高级工具中添加的ip拨号的号码段。例如加入17951 在电话前面。取消自动ip拨号服务则用户可以正常拨号。设置中心模块用例图如图4.8所示图4.8设置中心模块用例图4.3 系统数据库设计数据库设计是软件开发的重要组成部分,数据库提供数据管理、数据保存、数据共享。安卓应用中任何你创建的数据库都能通过名字进入到数据库中,但是其他应用不允许访问。良好的数据库设计能降低数据的冗余,提高数据的可维护性和可修改性以及数据的稳定性。数据库表概述。android手机卫士所有数据库表每个表名代表的含义在表4.1中进行了说明。表 4.1 数据库表说明表名说明applock应用程序锁表whiteappname白名单表traffic流量拦截表blacklist黑名单表intercepted拦截信息表4.3.1数据库表详情应用程序锁表:代表应用程序锁实体,主要包括编号、应用程序包名称。加锁的应用进入时需要输入密码,具体结构如表4.2所示。表4.2 applock(应用程序锁表)字段名字段类型null含义_idinteger否编号(主键)packnamevarchar(300)是应用程序包名白名单表:代表白名单实体,主要包括编号、应用程序包名称。白名单应用当用户选择自动清理进程时,该应用将不会被杀死,具体结构如表4.3所示。表 4.3 whiteappname (白名单表)字段名字段类型null含义_idinteger否编号(主键)packnamevarchar(300)是应用程序包名流量拦截表:代表流量拦截实体,包含编号、用户应用uid、应用程序包名称、是否wifi流量拦截,是否3g流量拦截,具体表结构如表4.4所示。表4.4 traffic(流量拦截表)字段名字段类型null含义_idinteger否编号(主键)uidinteger是用户app应用idpacknamevarchar(300)是应用程序包名wifivarchar(10)是是否wifi流量拦截t3gvarchar(10)是是否3g流量拦截黑名单表:代表黑名单实体,具体包含编号、号码、短信、电话、标题,如表4.5黑名单表。表4.5 blacklist(黑名单表)字段名字段类型null含义_idinteger否编号(主键)numbervarchar(40)是号码messagevarchar(1)是短信phonevarchar(1)是电话titlevarchar(200)是标题拦截信息表:代表拦截信息实体,包含编号、号码、短信、类型、时间、标题,具体表结构如表4.6所示。表4.6 intercepted(拦截信息表)字段名字段类型null含义_idinteger否编号(主键)numbervarchar(20)是号码messagevarchar(1000)是名称typevarchar(300)是类型timevarchar(100)是时间titlevarchar(200)是标题4.4 业务类设计表4.7详细的说明了业务类的命名、业务类的方法、业务类方法字段说明,以及业务类返回值,对业务类需要做的操作进行了详细的分析和说明,对业务类的清晰透彻的分析能降低代码的冗余和提高代码的可重用性。编写代码的时候不需花更多的时间思考业务逻辑。 表4.7 业务类设计表.appinfobiz方法1:private string getappinfo(boolean flag)说明:获取系统应用程序的基本信息,flag参数为boolean类型控制器,由于在应用管理中需要使用该方法,以及白名单中也需要使用该方法所以设置了为boolean类型的变量,当flag为true时拿出自己当前应用程序的信息,当flag为false屏蔽当前应用程序的信息,因为在应用管理模块需要显示当前应用的相关信息,而在白名单中,不需要显示当前应用的相关信息。当前应用不需要添加白名单或者从白名单删除。后台服务清理进程时自动屏蔽当前应用,由于在appinfobiz的构造方法中自动调用的该方法所以该方法是私有的。在new该对象的时候自动将数据填充到list方法2:public list getmsystemapps()说明:获取系统应用程序的基本信息,在appinfobiz的构造方法中将系统应用从总应用程序中分开出来了,所以直接调用该方法能直接拿出所有系统应用程序信息方法3:public list getmuserapps()说明:获取用户应用程序的基本信息,在appinfobiz的构造方法中将用户应用从总应用程序中分开出来了,所以直接调用该方法能直接拿出所有用户应用程序信息。.contactinfobiz方法1:public list getcontactinfos()说明:从联系人uri中获取联系人的相关信息,如联系人的姓名,联系人的电话号码。在setupguide3activity中点击按钮跳入activity中调用该方法将联系人相关数据显示,显示的数据中根据按联系人姓名的首字母顺序排序显示。方法2:public string getname(string incomingnumber)说明:根据来电的号码获取该电话的联系人姓名。参数 1:来电的号码。在来电一声响的功能中,首先会用该方法查询该号码是否是存在该手机的联系人中,如果是存在的则用该姓名显示,如果不是,则返回.contacthandler方法1:public list getcontacts()说明:同样是获取联系人的信息,从联系人提供的provider中拿出的电话,email拿出的电话包括手机,

温馨提示

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

评论

0/150

提交评论