基于Android系统手机卫士的设计与开发

基于Android系统手机卫士的设计与开发

ID:242326

大小:3.77 MB

页数:56页

时间:2017-07-13

上传者:chess95660
基于Android系统手机卫士的设计与开发_第1页
基于Android系统手机卫士的设计与开发_第2页
基于Android系统手机卫士的设计与开发_第3页
基于Android系统手机卫士的设计与开发_第4页
基于Android系统手机卫士的设计与开发_第5页
资源描述:

《基于Android系统手机卫士的设计与开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

河北科技学院13届本科生毕业论文(设计)河北科技学院本科毕业论文(设计)题目:基于Android系统的手机卫士的设计与开发院别智能制造学院学科门类计算机科学与技术专业计算机科学与技术第7页,共56页 河北科技学院13届本科生毕业论文(设计)班级13计本姓名张秦学号xxxxxxxxx指导教师韩琳完成时间2017年3月6日第7页,共56页 河北科技学院13届本科生毕业论文(设计)目录摘要4ABSTRACT5第一章系统概述61.1系统开发的背景及意义61.1.1系统开发背景61.1.2系统开发的意义61.2系统实现目标61.3系统开发工具及相关技术71.3.1系统开发环境71.3.2Android平台介绍71.3.3Android开发应用技术81.3.4Android开发架构91.4论文的组织结构9第二章ANDROID开发环境的搭建102.1基础知识102.1.1Java技术简介102.1.2Android技术简介10第三章系统需求分析113.1系统目标分析113.2系统可行性分析113.3系统所使用的技术123.4系统设计原则123.5系统功能需求分析133.5.1功能块划分133.5.2功能块描述133.6系统框架图及项目代码组织结构15第7页,共56页 河北科技学院13届本科生毕业论文(设计)3.6.1系统框架图153.6.2项目代码组织结构173.7主要功能结构分析173.7.1自动检查更新功能分析173.7.2通信卫士功能分析18第四章系统总体设计194.1设计思路及实现194.1.1开发工具的选定194.1.2系统功能结构图设计19第五章系统详细设计及实现205.1手机防盗功能的实现205.1.1设置防盗密码205.1.2设置安全手机号码205.1.3备份防盗指令到安全手机号码215.1.4SIM卡的绑定225.1.5防盗指令功能的实现225.2通信卫士功能的实现245.2.1添加及删除黑名单号码245.2.2黑名单短信拦截255.2.3黑名单电话拦截265.3高级工具功能的实现275.3.1号码归属地查询275.3.2常用号码查询285.3.3程序锁29第六章系统测试316.1项目设计遇到问题的处理方式316.2功能测试31第7页,共56页 河北科技学院13届本科生毕业论文(设计)6.3运行结果33第七章总结与展望407.1研究总结407.2不足之处40参考文献41摘要第7页,共56页 河北科技学院13届本科生毕业论文(设计)随着移动互联网技术的发展和网络应用人员的不断增加,网络世界逐渐变的广博,网络世界的内容也逐渐变得丰富起来。在大数据、物联网与电子商务已经成为IT时尚的今天,移动互联、移动社交、移动出行已经成为一种潮流,一种趋势。随着互联网+的提出,信息化的热潮再次被掀起,无论哪个行业已经都无法离开网络、离开计算机。很多企业、很多行业都争相使用信息化的手段解决现实中存在的各种问题。在移动互联网飞速发展的今天,智能手机的不断普及,伴随着4G时代的到来,智能手机的广泛应用,Android手机成为活跃用户量最大的移动终端。Android平台的的开源性使得市场上各种手机智能软件日益增多并且混乱,有些非法软件不但威胁着手机的性能与安全性,也给防范意识薄弱的手机用户带来了时间和经济上的损失。本系统正是针对那些而已应用的,详细的阐述了手机安全卫士的开发流程。包括软件管理、进程管理、手机杀毒、高级工具、设置中心等功能模块。整体项目采用mvc框架,是对Android知识点的综合应用,用到的技术有(活动、广播接收者,内容提供者,多线程,数据库,进程间通讯等)。本项目是通过xml文件对页面进行布局,后台使用java代码实现每一个业务逻辑流程,完成页面的每一个需求。本系统采用Android作为开发平台,使用eclipse开发工具,后台使用sqlite数据库进行数据的存储和传输,来实现手机卫士各部分功能模块之间的数据共享和业务逻辑的交互。关键词:Android;安全卫士;Eclipse;移动互联;物联网第7页,共56页 河北科技学院13届本科生毕业论文(设计)AbstractWiththedevelopmentofmobileInternettechnologyandtheincreasingnumberofnetworkapplications,thenetworkworldhasbecomemoreandmoreextensive.Inthebigdata,networkingande-commercehasbecomeaITfashiontoday,mobileInternet,mobilesocialnetworking,mobiletravelhasbecomeatrend,atrend.WiththedevelopmentofInternetplus,theinformationhasbeenraisedagain,nomatterwhattheindustryalreadycannotleave,leavethecomputernetwork.Manycompanies,manyindustriesarecompetingtouseinformationtechnologytosolvetheproblemsinreality.IntherapiddevelopmentofmobileInternettoday,thepopularityofsmartphones,alongwiththearrivalofthe4Gera,thewidespreaduseofsmartphones,Androidmobilephoneusersbecomethelargestmobileterminal.OpensourceAndroidplatformmakesthemobilephoneonthemarketavarietyofintelligentsoftwareandincreasingchaos,someillegalsoftwarenotonlythreatenstheperformanceandsafetyofmobilephone,butalsotopreventweakawarenessofmobilephoneusershasbroughttimeandeconomiclosses.Thissystemisonlyforthoseapplications,adetaileddescriptionofthedevelopmentprocessofmobilesecurityguards.Includingsoftwaremanagement,processmanagement,mobileantivirus,advancedtools,setupthecenterandotherfunctionalmodules.TheoverallprojectusestheMVCframework,isacomprehensiveapplicationofAndroidknowledgepoints,theuseofTechnology(activities,broadcastreceivers,contentproviders,multi-threaded,database,interprocesscommunication,etc.).ThisprojectisthelayoutofthepagethroughtheXMLfile,thebackgroundoftheuseofJavacodetoachieveeachbusinesslogicprocess,thecompletionofeachpageneeds.ThesystemusesAndroidasadevelopmentplatform,usingtheeclipsedevelopmenttool,thebackgroundusingtheSQLitedatabasefordatastorageandtransmission,torealizetheinteractionbetweenthemobilephoneguardianofeachfunctionmoduleofdatasharingandbusinesslogic.Keywords:Android;Eclipse;Internetofthings;MobileInternet;Securityguards;  第7页,共56页 河北科技学院13届本科生毕业论文(设计)第一章系统概述1.1系统开发的背景及意义1.1.1系统开发背景当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windowsmobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。Android是一种以Linux为基础的开放源码操作系统,其最大特色就是扩展性能强,第三方软件支持多。Android操作系统占据全球智能手机操作系统市场份额,由2015年5月的64%一直增长到10月份的67.15%。 在这个信息化的时代,伴随着手机的普及,人们对手机的功能需求也越来越多,手机不仅要能打电话,还要成为娱乐设备,上网冲浪设备等,而随着手机中软件的增加,其安全性、快捷性等性能就大打折扣,这样的手机不再是人们想象中的微型电脑,因此手机用户呼吁一款可以提高手机性能且能保护手机的应用软件,所以手机管理软件应运而生。 1.1.2系统开发的意义智能手机成为现代人们生活和工作的必须品,它的普及促进了基于Android平台的手机软件的快速发展。目前市场上各类智能软件繁多并且混乱,网络安全日益严峻,其中有些不法开发商利用Android平台的开放性恶意的窃取用户隐私、偷跑手机流量、恶意扣取用户话费等行为。这些非法软件给用户带来了各种安全隐患,损害用户的合法利益,造成了不可估量的损失,因此,实现一个操作简便、安全可靠、功能强大的手机安全卫士是十分必要的。1.2系统实现目标第56页,共41页 河北科技学院13届本科生毕业论文(设计)基于Android系统的手机安全卫士在对现有的手机安全软件进行系统的研究与分析的基础上,按照软件工程思想对基于Android系统的手机安全卫士进行了详细的设计,并最终确定本系统正是针对那些而已应用的,详细的阐述了手机安全卫士的开发流程。包括软件管理、进程管理、手机杀毒、高级工具、设置中心等功能模块。整体项目采用mvc框架,是对Android知识点的综合应用,用到的技术有(活动、广播接收者,内容提供者,多线程,数据库,进程间通讯等)。本项目是通过xml文件对页面进行布局,后台使用java代码实现每一个业务逻辑流程,完成页面的每一个需求。本系统采用Android作为开发平台,使用eclipse开发工具,后台使用sqlite数据库进行数据的存储和传输,来实现手机卫士各部分功能模块之间的数据共享和业务逻辑的交互。因此,基于Android的手机安全卫士的设计与开发具有重要的现实意义,是一项值得研究,也必须去研究的重要课题。1.3系统开发工具及相关技术1.3.1系统开发环境本系统所适用的操作系统是Android4.0以上的所有版本的Android内核的操作系统平台(包括小米的MIUI),系统开发环境是Windows8.1+SQLite+eclipse+SDK,开发工具是Eclipse4.3,数据库采用SQLite。1.3.2Android平台介绍Android系统是工作在智能手机上的操作系统,处处都体现了与手机相关的特性。因为手机硬件配置的关系,Android操作系统与电脑上的操作系统有很大的差异。唯有充分的了解Android系统特点才可以开发出适合手机运用的软件。以下为AndroidSDK4.0的主要特性:1.重用且可替换组件的程序应用框架;2.针对移动设备优化了的的Dalvik虚拟机;3.集成了基于开源Webkit的引擎的网页浏览器;4.经过优化了的自定义2D图形库与基于OpenGLES1.0库可选择硬件加速;5.SQLite结构化的数据存储数据库;6.支持常规的视频音频多媒体格式,如MP4、H.264、AAC、MP3、AMR、JPGPNG、GIFGSM电话(硬件决定);第56页,共41页 河北科技学院13届本科生毕业论文(设计)7.蓝牙、GPRS-EDGE、3G和Wifi无线网络;8.手机导航、GPS全球定位、感应加速器。1.3.3Android开发应用技术第一步:应用规划,也就是对要开发的应用的具体的功能、模块、结构等进行规划,确定用户的需求,其实这一步按照软件工程的思想就是软件工程中的需求分析。应用规划主要包括以下几部分具体内容:l确定功能。l必须的界面及界面跳转的流程。l需要的数据及数据的来源及格式。l是否需要服务端支持。l是否需要本地数据库支持。l是否需要特殊权限。l是否需要后台服务。第二步:架构设计,架构设计也是软件工程中软件开发的必要步骤之一,属于软件架构师应该做的事情,其实也就是软件的整体设计,软件要按照什么样的框架进行规划,要求程序员之间以什么样的方式进行合作、开发。l分层。l网络连接。l数据处理-xml、domain。l封装Activity。第三步:界面设计,这一步就是软件工程系统开发过程中的UI设计也叫做界面设计,设计的界面是直接和用户交互的,因此界面的设计非常重要。l主界面确定。l模块界面、列表、查看、编辑界面。第56页,共41页 河北科技学院13届本科生毕业论文(设计)l菜单、按钮、对话框、提示信息。l界面总体颜色。第四步:数据操作和存储,这一步非常重要,所谓软件或者叫做应用,处理的主要是信息的流动,信息流关系到整个系统的逻辑,这些信息在应用软件中是以数据的形式体现。l数据来源。l数据类型。l存储方式。第五步:业务实现,这一步主要用来实现系统的具体功能,属于软件工程中软件的实现阶段。l客户端业务解析第六步:页面跳转,页面跳转其实也是应用中各功能或者模块间的关系,如何实现模块间的连接,或者叫做模块之间的相互作用。l每个页面间的跳转。l菜单、按钮、事件等。1.3.4Android开发架构Android的架构是由Linux内核、C/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的,Android架构如图1.1所示。第56页,共41页 河北科技学院13届本科生毕业论文(设计)图1.3.4Android开发框架1.4论文的组织结构基于Android系统的手机安全卫士的设计与开发共分七章,各章的具体内容安排如下:第一章:主要介绍了手机安全卫士软件的开发背景、论文组织结构。第二章:主要描述了Linux系统下基于Android系统的手机安全卫士的开发环境的构建。第三章:主要介绍了关于手机安全卫士软件需求分析等。第四章:主要介绍了手机安全卫士软件的概要设计,包括系统各个功能模块的设计以及数据库表的设计。第五章:具体介绍了手机安全卫士软件各个模块的详细实现。第六章:主要介绍项目的错误解决方式及系统相关功能测试第七章:总结第56页,共41页 河北科技学院13届本科生毕业论文(设计)第二章Android开发环境的搭建2.1基础知识Linux系统以其免费、开源著称,已经受到了IT行业的广泛拥护。近年来基于Linux平台下的软件开发也受到了软件开发企业的青睐。Linux系统越来越受到企业应用的重视与欢迎,将Java与Android开发环境迁移到Linux操作系统之下已经是企业必须去做的课题,也是非常现实的想法。高校IT行业毕业生走到企业从事Android软件开发,使用的基本都是Linux下的Java与Android环境。因此为了能让我们培养的移动互联开发方向的人才毕业后直接适应企业的岗位,必须在高校的教学过程中使用基于Linux平台的Java与Android开发环境。2.1.1Java技术简介Java是由Sun公司于1995年5月推出的Java语言和Java平台的总称。Java平台由Java虚拟机JVM和Java应用编程接口API构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。目前常用的Java平台为Java1.7,最近版本为Java1.8。Java是一种跨平台的、面向对象的、可移植的、多线程的、动态的语言。Java语言已经成为IT界最受欢迎的语言。目前风靡全球的Android就是采用Java作为开发语言的。2.1.2Android技术简介Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android是目前智能手机中应用最广泛的操作系统,Android继承了Linux的开放性,为IT从业者提供了尽情施展的舞台。智能手机广泛应用使得Android如日中天,从事Android应用软件开发是目前IT行业毕业生非常重要的选择之一。第56页,共41页 河北科技学院13届本科生毕业论文(设计)在国内手机市场中,Android操作系统占据了非常庞大份额,是毋庸置疑的王者。为市场带来强劲的需求,在招聘类网站上,Android开发工程师无疑是最热的职位。而开发爱好者想进入该行业,所面临的第一个问题就是掌握Java语言。本章就是为从事Java或Android开发的从业人员提供一个更加安全、健壮、兼容的Java与Android开发平台。第56页,共41页 河北科技学院13届本科生毕业论文(设计)第三章系统需求分析伴随着4G移动互联网的快速发展以及智能手机的日益普及,智能手机的广泛应用,Android智能手机系统在2015年Q4增长16.6%,全球份额达到80.7%,无论是在出货量还是使用量上都占有绝对性的优势,由于Android智能手机操作系统的开源性使之应用程序数量达到了143万之多,但是正是由于Android智能手机系统的开源性是得每个人都可以对Android手机端的软件进行编写,更使得某些非法开发者可以在Android手机应用中加入一些非法的代码,间接的获取用户隐私,进行恶意的扣费行为,严重的侵犯到用户的合法权益,使得Android手机的安全问题日益明显。3.1系统目标分析本系统旨在解决目前Android智能手机平台上存在的恶意窃取用户隐私信息以及进行恶意扣费行为的非法操作的问题,详细的阐述了Android手机安全卫士的开发流程,包括手机防盗、通讯卫士、软件管理、进程管理、手机杀毒、系统优化、高级工具、设置中心等功能模块的搭建。实现用户安装软件时对软件是否包含恶意窃取用户隐私信息及恶意扣费行为的监控;同时对恶意骚扰电话以及短信进行拦截。整体采用MVC框架,是对Android知识点的综合应用。3.2系统可行性分析在大数据、物联网与电子商务已经成为IT时尚的今天,Android手机的安全问题日益明显。目前Android智能手机涉及安全类的应用程序在各个应用市场下载榜上都名列前茅,国内有很多成功案例,如:360手机卫士、腾讯手机管家、百度手机卫士等等。而手机卫士这个项目看起来很棘手,组织关系很复杂,但经过仔细分析后,发现它所运用的都是Android手机上的核心技术。如果我们能详细了解项目的开发流程并且熟悉Android的核心知识点,那么开发出这个项目并不存在太大的技术问题。系统的可行性分析,是对该项目是否具有实际操作意义,是否具有理论与实际的可行性而进行的论证与分析。只有保证系统是可行的、可操作的,才能对系统进行细化、进行设计与开发。第56页,共41页 河北科技学院13届本科生毕业论文(设计)1.可行性分析(经济方面):本项目由于需要与服务器进行相关数据信息的传递,所以可以暂时以家用的台式电脑进行服务器端的相关部署,因此,本系统开发经费对于项目开发者在经济上是可以承受的,换句话说是除了人力之外没有经济成本的。所以本系统的研究与实现在经济上是可行的。2.可行性分析(技术层面):Java技术是在Android平台开发上的重要应用技术,可以使系统所必须和依赖的各种软硬件实现完美结合在一起,从而实现较为复杂的应用。就硬件来说,全国的物品都在涨价,而电子产品的价格却一路下跌。目前市场上任意一款搭载Android智能手机操作系统的移动终端设备平台完全能满足本系统的需要。3.可行性分析(社会层面):通过将近一周时间的市场需求的调查,发现目前使用Android智能手机操作系统的用户对手机安全卫士的需求还是非常之大的。自本人开始在邢台职业技术学院学习以来,根据学习到计算机级移动软件开发相关专业知识,更多的了解了软件开发的技术与机制,才找到了这一问题的切实的可行性的解决方案。因此,该项目的进行具有了良好的社会层面的可行性。总而言之本项目的开发,目标已明确。并且在社会、经济与技术层面均是可行的。本项目的研发具有投入少、见效快的特点。因此,系统的开发是完全可行的,是可以实施的。3.3系统所使用的技术本系统所适用的操作系统是市场上任意一款搭载高于Android4.0版本以上Android智能手机操作系统的移动端设备,服务器使用家用台式进行部署,同时做好必要备份。开发环境是Windows8.1桌面操作系统,开发工具是Eclipse4.4.1,数据库采用MySQlite。整体项目采用MVC框架,包含对Android四大组件即Activity、Service、BroadcastReceiver、ContentProvider以及Notification、自定义控件、aidl进程间通讯的综合运用。3.4系统设计原则通过对360手机卫士、腾讯手机管家、百度手机卫士等安全第56页,共41页 河北科技学院13届本科生毕业论文(设计)应用的研究、认识和分析,项目组成员对手机安全实现方法已经有了基本的了解。当然,无论哪个应用系统都要有自身设计的规则。本项目所搭建的基于Android系统的手机安全卫士也拥有自己的调度管理流程和设计的规则,它的主要设计规则有:实用性:将Android智能手机操作系统中恶意软件的进行非法操作行为问题进行深入的研究与分析,运用所学知识,有效结合相关软硬件,达到有效监控用户所安装的手机软件的相关行为实现对恶意软件进行删除的目的,并且让该项目具有一定的推广价值,具有较强的实用价值。简洁性:在能够实现保护用户个人隐私不被泄露及不被非法软件进行恶意扣费的同时,尽可能的让该平台的操作能够简单易懂对于一个应用系统来说友好的用户界面,美观大方的用户感受是必须的,也是考核一个软件是否达标的重要指标。目标性:基于Android系统的手机安全卫士的设计是针对目前Android智能手机操作系统上的恶意软件问题定向性的开发与设计,具有较强的专业突出性和针对性。也就是基于Android系统的手机安全卫士具有自己的明确的设计与开发的目的。实效性:基于Android系统的手机安全卫士力求能够完成手机防盗、通信卫士、软件管理、进程管理、手机杀毒、系统优化、高级工具、设置中心等9大功能模块,具有很好的实用性。下面对上述几点进行简单总结,基于Android系统的手机安全卫士通过对Android四大组件即Activity、Service、BroadcastReceiver、ContentProvider以及Notification、自定义控件、aidl进程间通讯的综合运用实现对手机丢失时的手机定位及远程数据的删除;当用户收到恶意骚扰短信及电话时进行有效的拦截,对恶意软件进行扫描删除,有效保护用户的合法权益,可以自由为用户使用。3.5系统功能需求分析3.5.1功能块划分本文所设计与开发的软件系统主要包括以下模块:手机防盗、通信卫士、软件管理、进程管理、手机杀毒、系统优化、高级工具、设置中心。3.5.2功能块描述1、系统基本功能之手机防盗:第56页,共41页 河北科技学院13届本科生毕业论文(设计)(1)防盗密码设置功能。用户在第一次使用防盗功能时需要进行防盗密码的相关设置,当用户需要进行防盗功能设置时必须输入防盗密码才能进行防盗功能模块的具体设置,这样做可以防止手机在落入他人之手时防盗功能被恶意修改导致手机防盗功能失效。(2)安全手机号设置功能。用户可以通过设置自己关系亲密的联系人的手机号码,在手机丢失时,SIM被更换后将更换后的SIM的号码及手机的具体位置发送到安全手机号上,以便用户可以获取到自己手机的位置以及盗取自己手机的嫌疑人的电话号码。(3)备份防盗指令功能。用户可以将手机防盗指令事先备份到设置好的安全手机号中,当用户手机丢失时用户可以通过安全手机向用户所丢失的手机发送相关的防盗指令实现手机报警、位置发送、远程锁定手机、远程删除手机数据等相关防盗功能。(4)防盗服务功能。用户可以自主选择是否开启手机防盗功能。(5)激活远程管理功能。用户开启后可以防止手机安全卫士被恶意卸载以及实现远程锁定手机和远程删除手机数据的作用。(6)SIM卡更换保护功能。开启后,当用户手机卡被更换时自动向安全手机号码中发送防盗指令,提醒用户手机被盗。2、系统基本功能之通信卫士:(1)添加黑名单功能。分为拦截电话和拦截短息,当用户输入黑名单手机号码后,可以自主选择拦截的方式,当用户选择拦截电话时,当黑名单手机号码来电时手机安全卫士会自动挂断该电话;当用户选择拦截短息时,当黑名单手机号码向用户发送短信时手机安全卫士会自动拦截该短息,避免用户被陌生人骚扰。(2)删除黑名单功能。当用户不想拦截黑名单号码时,可以选择删除该黑名单号码。3、系统基本功能之软件管理:(1)卸载功能。用户可以删除在手机上没用的应用程序。(2)启动功能。用户可以快速启动想要打开的应用程序。(3)分享功能。用户可以将应用程序通过短息,QQ等工具分享给自己的好友。4、系统基本功能之进程管理:(1)结束进程功能。用户可以将无用的后台应用程序结束,提高手机的运行速度。第56页,共41页 河北科技学院13届本科生毕业论文(设计)5、系统基本功能之流量统计:(1)流量统计功能。用户可以明确的看到每个应用程序上传/下载所占用的流量的相关信息,以便用户合理的使用应用程序,避免了高额的流量费用。6、系统基本功能之手机杀毒:(1)查杀功能。用户可以通过手机查杀功能来查找手机中的恶意应用程序,当发现恶意应用程序时会自动询问用户是否删除,这样可以有效的保护用户的隐私安全。7、系统基本功能之系统优化:(1)系统优化功能。用户可以通过系统优化功能来扫描手机中无用的垃圾文件,释放占用空间,提高手机性能。8、系统基本功能之高级工具:(1)号码归属地查询功能。用户可以通过号码归属地查询功能来获取到相关手机号码的归属地信息。(2)常用号码查询功能。用户可以通过常用号码查询功能来获取到我们常用的快递、餐饮、银行的相关号码信息。(3)程序锁功能。用户可以为不想别人打开的应用程序设置密码,从而有效的保护自己的相关个人隐私。9、系统基本功能之设置中心:(1)设置各个功能模块的开关状态。第56页,共41页 河北科技学院13届本科生毕业论文(设计)3.6系统框架图及项目代码组织结构3.6.1系统框架图基于Android系统的手机安全卫士是基于MVC框架所设计的,在主界面上包含手机防盗、通信卫士、软件管理、进程管理、流量统计、手机杀毒、系统优化、高级工具、设置中心等九个模块。模块化设计降低了模块之间的耦合性,使得系统便于修改,提高了软件的设计效率。各个模块相对独立,每个模块负责不同功能,使系统更加清晰,便于使用。充分地利用了Android的四大组件功能。系统框架图如图2.6.1所示。第56页,共41页 河北科技学院13届本科生毕业论文(设计)图3.6.1完整的系统框架图第56页,共41页 河北科技学院13届本科生毕业论文(设计)3.6.2项目代码组织结构android.content.pm用于存放软件管理所需要的文件;android.telephony和com.android.internal.telephony用于存放挂断电话的aidl文件;com.my.mobilesafe.activity,这个包放我们开发程序的UI界面和功能按钮实现类;com.my.mobilesafe.adapter,存放我们手机安全卫士主界面的显示数据的适配器com.my.mobilesafe.db,存放我们所使用的数据库类;com.my.mobilesafe.db.dao,存放我们通过使用数据库命令语言实现对数据库的增删改查;com.my.mobilesafe.domain,存放我们通过接口实现返回数据类;com.my.mobilesafe.downloadutils,存放下载新数据的工具类;com.my.mobilesafe.engine,存放程序开发的业务类;com.my.mobilesafe.iface,存放保护一个应用程序的接口;com.my.mobilesafe.main,存放我们程序的主界面的包;com.my.mobilesafe.provider,这个包用来设置应用程序的管理;com.my.mobilesafe.receiver,存放定义的广播接受者;com.my.mobilesafe.service,这个包为我们后台长期运行的服务;com.my.mobilesafe.setup4_guide_activity,存放手机防盗界面设置的额窗口;com.my.mobilesafe.test,存放一个测试类;com.my.mobilesafe.utils,存放我们的公共的工具类;com.my.mobilesafe.welcome,存放程序的欢迎界面。第56页,共41页 河北科技学院13届本科生毕业论文(设计)3.7主要功能结构分析3.7.1自动检查更新功能分析当用户打开自动更新功能时,手机安全卫士会自动与服务器通信通信,如果通信正常服务器会响应手机安全卫士的相关请求,返回目前最新的版本号,安全卫士会将现在的版本号与从服务器中解析到版本号进行比对,如果版本号一致手机安全卫士会自动进入到主界面中,若不一致手机安全卫士会弹出对话框提示用户有新版本的安全卫士可以下载使用,当用户选择下载新版时,手机安全卫士会单独调用一条下载线程进行新版本软件的下载,下载完毕后会自动弹出安装提示框等待用户的安装。从而实现版本的检查更新功能。自动检查更新流程图如图3.7.1所示:图3.7.1自动检查更新流程图3.7.2通信卫士功能分析第56页,共41页 河北科技学院13届本科生毕业论文(设计)通信卫士的基本功能是按照用户所设置的黑名单手机号码向黑名单表做一些基本信息录入工作,安全卫士将来电号码与黑名单表中的号码进行比对,如果相同则对该来电号码进行拦截。通信卫士操作流程图如图3.7.2所示:图3.7.2通信卫士操作流程图第四章系统总体设计4.1设计思路及实现4.1.1开发工具的选定本系统确定的开发平台为:操作系统:Windows8开发环境:Eclipse开发技术:JAVA数据库:MySQL第56页,共41页 河北科技学院13届本科生毕业论文(设计)4.1.2系统功能结构图设计整个系统分为手机防盗、通信卫士、软件管理、进程管理、流量统计、手机杀毒、系统优化、高级工具、设置中心等九大模块模块,图3.2.4给出的是系统的基本框架图。图4.1.2系统功能结构图第五章系统详细设计及实现5.1手机防盗功能的实现5.1.1设置防盗密码1、关键代码//将输入的密码进行加密if(savedpwd.equals(Md5Encoder.encode(userentrypwd))){//Toast.makeText(this,"密码正确进入界面",1).show();第56页,共41页 河北科技学院13届本科生毕业论文(设计)if(safeNumber.equals("")){//如果安全手机号码为空IntentsetNum=newIntent(LostProtectedActivity.this,Setup3PhoneNum.class);startActivity(setNum);}else{Intentsetup4=newIntent(LostProtectedActivity.this,Setup4GuideActivity.class);startActivity(setup4);}finish();}else{Toast.makeText(this,"密码不正确,请重新输入!",1).show();return;}5.1.2设置安全手机号码1、关键代码publicclassLostSetupPhoneNumextendsActivity{privateEditTextet_PhoneNum;//设置绑定的安全号码privateEditTextet_PhoneNumConfig;//确定绑定的安全号码privateSharedPreferencessp;//用于存储安全号码@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.setup3_lost_setphonenum);//获取界面中的相关控件et_PhoneNum=(EditText)findViewById(R.id.lost_setphone_et_phonenum);et_PhoneNumConfig=(EditText)findViewById(R.id.lost_setphone_et_phonenum_config);sp=getSharedPreferences("config",MODE_PRIVATE);//获取配置文件第56页,共41页 河北科技学院13届本科生毕业论文(设计)//数据的回显Stringnumber=sp.getString("safeNumber","");}//在lost_setphonenum界面中的“选择联系人按钮”的android:onClick="selectContact"//所以,当单击“选择联系人”时会执行该方法publicvoidselectContact(Viewview){Intentintent=newIntent(LostSetupPhoneNum.this,SelectContactActivity.class);//激活一个带有返回值的activity。参数二:请求码startActivityForResult(intent,0);}//被激活的Activity将返回的结果数据存放在Intent中,这里的Intent和被激活的Activity//返回数据时所使用的是同一个Intent//注意:如果希望数据能够正常返回,Activity的启动模式不能设置为singletask模式@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){if(data!=null){//获取到返回的数据Stringnumber=data.getStringExtra("number");//将返回的数据显示在edittext中et_PhoneNum.setText(number);et_PhoneNumConfig.setText(number);}super.onActivityResult(requestCode,resultCode,data);}5.1.3备份防盗指令到安全手机号码1、关键代码publicclassSetup4BeiFenextendsActivity{privateCheckBoxcb_sendSms;//是否发送短信的CheckBox第56页,共41页 河北科技学院13届本科生毕业论文(设计)privateSharedPreferencessp;//配置文件privateButtonbt_finish;//完成按钮privatebooleanisSendSms;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.setup4_lost_beifen);//获取到配置文件sp=getSharedPreferences("config",MODE_PRIVATE);//获取界面中的组件cb_sendSms=(CheckBox)findViewById(R.id.setup4_beifen_cb_sendSms);bt_finish=(Button)findViewById(R.id.setup4_beifen_btn_finish);//为是否发送短信设置一个默认的值为true//isSendSms=sp.getBoolean("SendSms",true);//if(isSendSms==false){//cb_sendSms.setChecked(false);//}else{//cb_sendSms.setChecked(true);//}bt_finish.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){if(isSendSms){beifen();}LostProtectedActivity.instance.finish();//关闭第一个界面Setup3PhoneNum.instance.finish();//关闭设置安全手机的界面finish();//关闭本身Intentintent=newIntent(Setup4BeiFen.this,Setup4Activity.class);startActivity(intent);第56页,共41页 河北科技学院13届本科生毕业论文(设计)overridePendingTransition(R.anim.scale_translate,R.anim.my_alpha_action);}});5.1.4SIM卡的绑定1、关键代码//初始化的逻辑--判断sim卡是否被绑定Stringsimseral=sp.getString("simserial","");//获取到配置文件中的安全手机号if(TextUtils.isEmpty(simseral)){cb_sim.setChecked(false);tv_sim_status.setText("SIM卡未绑定,强烈建议您绑定");tv_sim_status.setTextColor(getResources().getColor(R.color.red));}else{cb_sim.setChecked(true);tv_sim_status.setText("检测到SIM卡更换后,仍然可以正常操作手机");tv_sim_status.setTextColor(getResources().getColor(R.color.text_gray));}5.1.5防盗指令功能的实现1、关键代码publicclassSmsReceiverextendsBroadcastReceiver{privatestaticfinalStringTAG="SmsReceiver";privateSharedPreferencessp;//配置文件privateBlackNumberDaodao;@OverridepublicvoidonReceive(Contextcontext,Intentintent){Log.i(TAG,"短信到来了");dao=newBlackNumberDao(context);第56页,共41页 河北科技学院13届本科生毕业论文(设计)//获取到保存的配置文件sp=context.getSharedPreferences("config",context.MODE_PRIVATE);//获取到保存的安全手机号码StringsafeNumber=sp.getString("safeNumber","");//获取短信中的内容。系统接收到一个信息广播时,会将接收到的信息存放到pdus数组中Object[]objs=(Object[])intent.getExtras().get("pdus");//获取手机设备管理器DevicePolicyManagerdm=(DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);//创建一个与MyAdmin相关联的组件ComponentNamemAdminName=newComponentName(context,MyAdmin.class);//遍历出信息中的所有内容for(Objectobject:objs){SmsMessagesmsMessage=SmsMessage.createFromPdu((byte[])object);//获取发信人的地址Stringsender=smsMessage.getOriginatingAddress();//判断发信人的手机号是否包含+86if(sender.charAt(0)=='+'){//进行手机号码的截取sender=sender.substring(3);}//获取短信信息内容Stringbody=smsMessage.getMessageBody();if("#*weizhi*#".equals(body)){Log.i(TAG,"发送位置消息");//获取当前的位置Stringlastlocation=GPSInfoProvider.getInstance(context).getLocation();if(!TextUtils.isEmpty(lastlocation)){//如果位置不是空的//得到信息管理器SmsManagersmsManager=SmsManager.getDefault();//向安全号码发送当前的位置信息smsManager.sendTextMessage(safeNumber,null,lastlocation,null,null);}abortBroadcast();第56页,共41页 河北科技学院13届本科生毕业论文(设计)}elseif("#*baojing*#".equals(body)){Log.i(TAG,"播放报警音乐");AudioManageraudioMgr=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);finalMediaPlayerplayer=MediaPlayer.create(context,R.raw.alert);//获取最大音乐音量intmaxVolume=audioMgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);audioMgr.setStreamVolume(AudioManager.STREAM_MUSIC,maxVolume,AudioManager.FLAG_PLAY_SOUND);//即使手机是静音模式也有音乐的声音player.setVolume(1.0f,1.0f);//开始播放音乐player.start();player.setLooping(true);////监听音频播放完的代码,实现音频的自动循环播放//player.setOnCompletionListener(new//MediaPlayer.OnCompletionListener(){////@Override//publicvoidonCompletion(MediaPlayerarg0){////即使手机是静音模式也有音乐的声音//player.setVolume(1.0f,1.0f);//player.start();////}//});//终止发送过来的信息,在本地查看不到信息abortBroadcast();}elseif("#*xiaohui*#".equals(body)){Log.i(TAG,"清处数据");//判断设备的管理员权限是否被激活。只有被激活后,//才可以执行锁屏、清除数据、重置出厂设置(模拟器不支持该操作)等操作if(dm.isAdminActive(mAdminName)){dm.wipeData(0);//清除设备中的数据,手机会自动重启}第56页,共41页 河北科技学院13届本科生毕业论文(设计)abortBroadcast();}elseif(body.contains("#*suoding*#")){Log.i(TAG,"远程锁屏");Stringpass=body.substring(11).trim();if(pass.equals("")){if(dm.isAdminActive(mAdminName)){dm.resetPassword("199",0);//屏幕解锁时需要的解锁密码dm.lockNow();}}else{if(dm.isAdminActive(mAdminName)){dm.resetPassword(pass,0);//屏幕解锁时需要的解锁密码dm.lockNow();}}abortBroadcast();}5.2通信卫士功能的实现5.2.1添加及删除黑名单号码1、关键代码//添加黑名单号码的方法publicvoidaddBlackNumber(Viewview){AlertDialog.Builderbuilder=newBuilder(CallSmsSafeActivity.this);ViewcontentView=View.inflate(CallSmsSafeActivity.this,R.layout.call_sms_add,null);builder.setView(contentView);//获取显示界面中的相关元素et_add_number=(EditText)contentView.findViewById(R.id.et_call_sms_add_number);cb_add_phone=(CheckBox)contentView.findViewById(R.id.cb_call_sms_add_phone);cb_add_sms=(CheckBox)contentView第56页,共41页 河北科技学院13届本科生毕业论文(设计).findViewById(R.id.cb_call_sms_add_sms);bt_ok=(Button)contentView.findViewById(R.id.bt_call_sms_add_ok);bt_cancel=(Button)contentView.findViewById(R.id.bt_call_sms_add_cancel);//获取对话框勾选的状态码//为确定按钮添加点击事件bt_ok.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){//获取用户在文本编辑框中输入的黑名单的号码blackNumber=et_add_number.getText().toString().trim();//首先先判断用户是否已经输入黑名单号码if(TextUtils.isEmpty(blackNumber)){Toast.makeText(CallSmsSafeActivity.this,"号码不能为空!",0).show();}else{//如果用户选择拦截电话,mode的值为0if(cb_add_phone.isChecked()){mode=0;}//如果用户选择拦截短信,mode的值为1if(cb_add_sms.isChecked()){mode=1;}if(cb_add_phone.isChecked()&&cb_add_sms.isChecked()){mode=2;}//如果用户没有选择勾选状态,提示用户勾选if(!cb_add_phone.isChecked()&&!cb_add_sms.isChecked()){Toast.makeText(CallSmsSafeActivity.this,"请选择拦截模式",0).show();}第56页,共41页 河北科技学院13届本科生毕业论文(设计)//判断是否已经设置好模式else{//向数据库中写入数据dao.add(blackNumber,mode+"");//关闭对话框dialog.dismiss();//通知主线程更新界面newUpdateBlackNumberData().start();}}}});//设置要显示的界面dialog=builder.create();dialog.show();}//根据得到的拦截模式设置mode的值publicintgetblackNumberMode(StringnumberMode){intmode=10;//根据相关模式设置相应的值if(numberMode.equals("电话拦截")){mode=0;}if(numberMode.equals("短信拦截")){mode=1;}if(numberMode.equals("全部拦截")){mode=2;}returnmode;第56页,共41页 河北科技学院13届本科生毕业论文(设计)}5.2.2黑名单短信拦截1、关键代码publicclassSmsReceiverextendsBroadcastReceiver{privatestaticfinalStringTAG="SmsReceiver";privateSharedPreferencessp;//配置文件privateBlackNumberDaodao;@OverridepublicvoidonReceive(Contextcontext,Intentintent){Log.i(TAG,"短信到来了");dao=newBlackNumberDao(context);//获取到保存的配置文件sp=context.getSharedPreferences("config",context.MODE_PRIVATE);//获取到保存的安全手机号码StringsafeNumber=sp.getString("safeNumber","");//获取短信中的内容。系统接收到一个信息广播时,会将接收到的信息存放到pdus数组中Object[]objs=(Object[])intent.getExtras().get("pdus");//获取手机设备管理器DevicePolicyManagerdm=(DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);//创建一个与MyAdmin相关联的组件ComponentNamemAdminName=newComponentName(context,MyAdmin.class);//遍历出信息中的所有内容for(Objectobject:objs){SmsMessagesmsMessage=SmsMessage.createFromPdu((byte[])object);//获取发信人的地址Stringsender=smsMessage.getOriginatingAddress();//判断发信人的手机号是否包含+86if(sender.charAt(0)=='+'){//进行手机号码的截取sender=sender.substring(3);第56页,共41页 河北科技学院13届本科生毕业论文(设计)}//判断短信号码是否是黑名单号码与短信拦截intresult=dao.findNumberMode(sender);if(result==1||result==2){//判断该黑名单号码是否需要拦截短信Log.i(TAG,"拦截黑名单短信");abortBroadcast();}5.2.3黑名单电话拦截1、关键代码//挂断电话,需要复制aid1文件publicvoidendcall(StringincomingNumber){//使用反射获取系统的service方法try{Methodmethod=Class.forName("android.os.ServiceManager").getMethod("getService",String.class);IBinderbinder=(IBinder)method.invoke(null,newObject[]{TELEPHONY_SERVICE});//通过aidl实现方法介绍的调用ITelephonytelephony=ITelephony.Stub.asInterface(binder);//该方法是一个异步方法,会开启一个线程将呼入的号码存入数据库中telephony.endCall();//deleteCallLog(incomingNumber);//注册一个内容观察者,观察uri数据的变化getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI,true,newMyObserver(newHandler(),incomingNumber));}catch(NoSuchMethodExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IllegalArgumentExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();第56页,共41页 河北科技学院13届本科生毕业论文(设计)}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(RemoteExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}//删除呼叫记录privatevoiddeleteCallLog(StringincomingNumber){//呼叫记录内容提供者对应的uriUriuri=Uri.parse("content://call_log/calls");Cursorcursor=getContentResolver().query(uri,newString[]{"_id"},"number=?",newString[]{incomingNumber},null);while(cursor.moveToNext()){Stringid=cursor.getString(0);getContentResolver().delete(uri,"_id=?",newString[]{id});}cursor.close();}}5.3高级工具功能的实现5.3.1号码归属地查询1、关键代码publicclassNumberQueryActivityextendsActivity{privateEditTextet_number_query;//输入要查询的号码privateTextViewtv_number_address;//显示号码归属地位置Stringaddress=null;第56页,共41页 河北科技学院13届本科生毕业论文(设计)@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.number_query);//加载界面//获取界面的相关组件et_number_query=(EditText)findViewById(R.id.et_number_query);tv_number_address=(TextView)findViewById(R.id.tv_number_address);//button1=(Button)findViewById(R.id.button1);//为文本框添加文本改变时的监听事件et_number_query.addTextChangedListener(newTextWatcher(){@OverridepublicvoidonTextChanged(CharSequencearg0,intarg1,intarg2,intarg3){if(TextUtils.isEmpty(et_number_query.getText().toString().trim())){tv_number_address.setText("");address="";}}@OverridepublicvoidbeforeTextChanged(CharSequencearg0,intarg1,intarg2,intarg3){//query();}//文本改变后@OverridepublicvoidafterTextChanged(Editablearg0){if(TextUtils.isEmpty(address)){query();第56页,共41页 河北科技学院13届本科生毕业论文(设计)}}});//为文本框添加按键监听事件et_number_query.setOnKeyListener(newOnKeyListener(){@OverridepublicbooleanonKey(Viewarg0,intarg1,KeyEventarg2){//query();//获取删除后的字符Stringnumber=et_number_query.getText().toString().trim();if(number.length()>0){//如果号码长度大于0if(number.charAt(0)!='0'){//当首个数字不为0时代表手机号if(number.length()<7){//当长度小于7时无法查询,将结果改为空tv_number_address.setText("");address="";}}else{//当首个数字为0时代表是固定电话if(number.length()<=4){//当删除后的号码长度小于等于4时//如果查不到归属地(代表区号为3位)if(NumberAddressDao.getAddress(number).equals("")){//就在删除后清空文本框if(number.length()<4){tv_number_address.setText("");address="";}}else{//如果查到归属地(代表区号为4位)if(number.length()<3){address="";tv_number_address.setText("");}}}第56页,共41页 河北科技学院13届本科生毕业论文(设计)}}returnfalse;}});5.3.2常用号码查询1、关键代码publicclassCommonNumActivityextendsActivity{protectedstaticfinalStringTAG="CommonNumActivity";privateExpandableListViewelv_common_num;//可扩展的ListView@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.common_num);elv_common_num=(ExpandableListView)findViewById(R.id.elv_common_num);//为ExpandableListView设置适配器对象elv_common_num.setAdapter(newCommonNumberAdapter());//为分组中的每个孩子注册一个监听器elv_common_num.setOnChildClickListener(newOnChildClickListener(){@OverridepublicbooleanonChildClick(ExpandableListViewparent,Viewv,intgroupPosition,intchildPosition,longid){TextViewtv=(TextView)v;Stringnumber=tv.getText().toString().split(" ")[1];//使用隐式意图来激活手机系统中的拨号器Intentintent=newIntent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);returnfalse;第56页,共41页 河北科技学院13届本科生毕业论文(设计)}});}5.3.3程序锁1、关键代码publicclassAppLockActivityextendsActivity{//展示手机中的所有应用privateListViewlv_applock;//progressBar和TextView对应的父控件,用于控制progressBar和TextView的显示hiprivateLinearLayoutll_loading;//获取手机中已安装的应用程序privateAppInfoProviderprovider;//存放当前手机上所有应用程序的信息privateListappInfos;//操作存放已锁定的应用程的数据库privateAppLockDaodao;//存放所有已经被锁定的应用程序的包名信息privateListlockedPacknames;//处理子线程中获取到的当前手机中的所有应用程序privateHandlerhandler=newHandler(){publicvoidhandleMessage(android.os.Messagemsg){ll_loading.setVisibility(View.INVISIBLE);//为listView适配数据lv_applock.setAdapter(newAppLockAdapter());}};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.app_lock);//加载界面provider=newAppInfoProvider(this);//初始化AppInfoProvider//获取界面中的相关控件第56页,共41页 河北科技学院13届本科生毕业论文(设计)lv_applock=(ListView)findViewById(R.id.lv_applock);ll_loading=(LinearLayout)findViewById(R.id.ll_applock_loading);dao=newAppLockDao(this);//从数据库中获取到所有被锁定的应用程序包名lockedPacknames=dao.findAll();//正在从数据库中获取数据时,应该显示progressVar和TextView对应的“正在加载字样”ll_loading.setVisibility(View.VISIBLE);//开启一个子线程获取手机中所有应用程序的信息newThread(){publicvoidrun(){appInfos=provider.getInstalledApps();//向主线程中发送一个空消息,通知主线程更新数据handler.sendEmptyMessage(0);}}.start();//为ListView中的item设置单击事件的监听器lv_applock.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterViewprent,Viewview,intposition,longid){//获取当前item的对象AppInfoappInfo=(AppInfo)lv_applock.getItemAtPosition(position);//获取到当前item对象的包名信息Stringpackname=appInfo.getPackName();//查找到item对应的锁控件(imageView)ImageViewiv=(ImageView)view.findViewById(R.id.iv_applock_status);//设置一个左右移动的动画TranslateAnimationta=newTranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,1f,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0);//设置动画播放的时长(毫秒)第56页,共41页 河北科技学院13届本科生毕业论文(设计)ta.setDuration(300);//判断当前的item是否处于锁定状态,如果是,则应该解锁,否则应该加锁if(lockedPacknames.contains(packname)){//锁定状态dao.delete(packname);//设置为未锁定状态iv.setImageResource(R.drawable.unlock);//将当前应用程序的包名添加到集合(存放已锁定应用程序的包名)中,//以便界面的刷新lockedPacknames.remove(packname);}else{//未锁定状态//将包名添加到数据库中dao.add(packname);//设置为锁定状态iv.setImageResource(R.drawable.lock);//将当前应用程序的包名添加到集合(存放已锁定应用程序的包名)中,、//以便界面的刷新lockedPacknames.add(packname);}//为当前的item播放动画view.startAnimation(ta);}});}限于篇幅,其他功能模块的实现方法类似,所以不再一一列出。第56页,共41页 河北科技学院13届本科生毕业论文(设计)第六章系统测试至此,基于Android系统的手机安全卫士的调研、设计与开发已经基本完毕。接下来需要做的是进行软件系统的测试,软件测试的目的是在软件系统上线之前,开发人员以及系统相关人员对软件的功能、流程、解决问题的思想、思路进行系统的测试。从而找出系统中存在的问题,进行升级与改造,在交付用户使用后尽量减少或者避免出现问题。系统测试是对软件设计与系统编码的最终考核与全面检查。在软件开发的每个阶段,系统架构师为了保障系统的质量会采用一系列的方法进行分析与设计。在软件实现之后,包括每个阶段都要对软件设计者的设计理念,设计流程进行复查。因为即使设计者的设计再好,执行者也就是程序员在进行最终转化的时候都可能产生偏差,有可能存在一系列的错误。系统软件是复杂的、知识高密集度的逻辑性非常强的程序员与设计者逻辑集中的思维与思想转换的产品是无状态的,因此要进行系统且完善的软件测试。当然,软件测试能够解决系统设计或者开发中存在的一些问题,改进系统设计或者开发中的某些不足,但是目前尚不存在一种软件测试的方法可以完全保证系统的设计与实现的过程是完全正确的,没有任何错误的,系统测试的最终目的是将系统的错误降到最低,将系统的可靠性、保障性提高到最佳状态。6.1项目设计遇到问题的处理方式在项目开发中不可能一帆风顺,遇到运行错误或者在运行时抛出异常是非常正常的。遇到异常不管是Java还是Android下都是通过打断点的方式进行的,如果在程序运行过程中发现世界结果与预期结果不一致,说明程序在某个地方出现了BUG,找到程序错误的地方。在定义的变量或者定义的方法左边打上断点,然后以DeBugAs的运行方式运行程序,运行时程序会自动跳转到DeBug页面,按F5跳转到下一步进行调试,进行查看变量的值,如此不断的防护进行调试,知道找出出现的问题所在。调试时需要注意的问题如下:第一:断点调试完成后,要在BreakPoints视图中清除所有断点;第二:断点调试完成后,一定要记得结束运行的JVM。第56页,共41页 河北科技学院13届本科生毕业论文(设计)6.2功能测试基于Android系统的手机安全卫士要实现的功能有完成Web服务器端版本的实时更新、手机的远程控制、黑名单电话与短信的拦截,手机软件的卸载、启动与分享,手机进程的结束,手机相关流量信息的统计,手机病毒软件的查杀与卸载,手机垃圾文件的清理,常用手机号码的归属地查询等功能模块。根据上面介绍的测试原则,使用测试用例文档分别对系统进行测试。测试部分包括对手机防盗模块测试,对手机归属地查询功能的测试和对手机杀毒的测试等,测试用例如表6.2.1、表6.2.2所示。表6.2.1测试用例1用例名称对手机防盗密码模块测试用例描述分别输入几组密码和确认密码,观察是否设置成功测试用例1、密码:1234789确认密码:12347892、密码:abcde确认密码:a3、密码:确认密码:4、密码:aa确认密码:5、密码:确认密码:aaa期待输出1、设置成功2、密码不相同,请重新输入!3、密码不能为空4、密码不能为空5、密码不能为空实际输出1、设置成功第56页,共41页 河北科技学院13届本科生毕业论文(设计)2、密码不相同,请重新输入!3、密码不能为空4、密码不能为空5、密码不能为空表6.2.2测试用例2用例名称对手机归属地查询模块测试用例描述输入手机号码,观察是否输出的与之相关的归属地信息测试用例1、在搜索框中输入150323646692、在搜索框中输入15536975976期待输出1、河北秦皇岛移动2、山西太原联通实际输出1、河北秦皇岛移动2、山西太原联通在测试过程中,系统测试小组经过对各个模块的测试,排除了系统的一定的错误,系统在一定程度上得到了巩固与完善。当然由于系统的测试过程中可能还有一些错误没有被发现,需要在后续的使用过程中进一步的完善。6.3运行结果第56页,共41页 河北科技学院13届本科生毕业论文(设计)1、自动更新第56页,共41页 河北科技学院13届本科生毕业论文(设计)2、手机防盗第56页,共41页 河北科技学院13届本科生毕业论文(设计)第56页,共41页 河北科技学院13届本科生毕业论文(设计)3、软件管理第56页,共41页 河北科技学院13届本科生毕业论文(设计)4、进程管理5、流量统计第56页,共41页 河北科技学院13届本科生毕业论文(设计)6、手机杀毒7、系统优化第56页,共41页 河北科技学院13届本科生毕业论文(设计)8、高级工具第56页,共41页 河北科技学院13届本科生毕业论文(设计)9、设置中心第56页,共41页 河北科技学院13届本科生毕业论文(设计)0第七章总结与展望7.1研究总结这次的毕业设计,让我对基于Android智能手机操作系统的移动软件开发有了巨大的认识,还记得刚开始对软件开发的认识就是简单的敲几句代码而已,我相信很多人的看法和我是一样的,但是当我完成这个项目时,我才充分意识到自己的主观意识是多么的肤浅,软件开发不只是我们所认为的敲几句代码就可以的,它具体包括计划、分析、设计、编码、测试、维护等6大方面。所谓计划,就是要对想要解决的问题进行总体定义,包括了解用户的需求及现实环境进行完整的分析,得出最后的实施方案;软件需求分析是对开发的软件的一个系统的分析与设想;软件设计包括概要设计和详细设计两个阶段;软件编码是将软件设计转换成具体可以运行的程序;而软件测试则是以较小的代价发现软件中尽可能多的BUG;软件维护则是对已完成的软件的错误进行修改完善或是增加新功能,使软件可以更好地为用户服务。这个项目可以说是对我们大学所学课程的一个综合运用,其中用到了数据库的设计方法、管理信息系统的开发流程和软件工程的思想。让我深刻的意识到前期基础知识的储备是多么的重要,同时也为以后的工作打下了坚实的基础。7.2不足之处在毕业设计期间,我也意识到自己的不足之处,由于自身的知识肤浅,经验不足,因此,开发的软件还有很多的不足之处,比如有些界面的代码过于类似,代码过于复杂等问题。虽然在最后阶段也进行了测试和完善,但是还是有一些不足之处。不过我会继续努力实现自身的价值。第56页,共41页 河北科技学院13届本科生毕业论文(设计)参考文献[1]韩超.Android经典应用程序开发[J].人力资源出版社.2011:5-18[2]吴亚峰.索依娜.Android核心技术与实例讲解.北京:电子工业出版社.2010[3]BruceEckel.Thinkinginjava(java编程思想)第四版.北京:机械工业出版社.2011[4]陈炜、张晓蕾、侯燕萍等.Java软件开发技术.北京:人民邮电出版社.2005[5]杨丰盛.Android应用开发揭秘.机械工业出版社.2010:5-7[6]李刚.疯狂Java讲义.第二版.电子工业出版社.2012:1-720[7]李刚.疯狂Android讲义.第三版.电子工业出版社.2015:1-650[8]贝利.《数据结构Java语言描述》.北京:清华大学出版社.2004.9.P66-78[9]墨菲.《Android开发入门教程》.人民邮电出版社.2010年.P15-90[10]汪永松.《Android平台开发之旅》.机械工业出版社2010年.P40-220[11]余志龙.《GoogleAndroidSDK开发范例大全(第2版)》.人民邮电出版社.2010年.P5-240[12]周聪、公磊.《基于Android的移动终端应用程序开发与研究》.计算机与现代化,2008(8)年,P5-35[13]梅尔.《Android2高级编程(第2版)》.清华大学出版社2010年.P40-77[14]雍俊海.Java程序设计教程(第二版)[M].清华大学出版社,2008.[15]CayS.Horstmann,GaryCoenell著.叶乃文等译.Java核心技术卷一:基础知识[M].北京:机械工业出版社.2008[16]CayS.Horstmann,GaryCoenell著,叶乃文等译.Java核心技术卷二:核心技术[M].北京:机械工业出版社.2008[17]熊刚.基于.Android的智能手机的设计与实现[D].武汉理工大学,2010第56页,共41页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭