已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南软件职业学院毕业设计(作业)湖南软件职业学院 毕业设计 毕业选题:手机安全卫士指导教师:学生姓名:院系名称:软件工程专业班级:Java1304学生学号:提交日期:2015年12月19日目 录第一章 绪论- 1 -1.1选题背景- 1 -1.2系统开发环境- 2 -第二章 需求分析- 3 -2.1可行性分析- 3 -2.2项目需求分析- 3 - 2.3项目的具体功能分析- 4 - 2.4项目框架简介- 5 - 2.5项目的目录空间结构- 5 - 2.6项目代码的组织结构- 6 -第三章 相关技术简介- 8 -3.1 Java技术综述- 8 -3.2 Android技术- 8 -3.3 SQLite数据库- 11 -第四章 项目设计- 13 -4.1项目设计目标及原则- 13 -4.2项目的模块流程图- 13 -第五章 项目详细设计与实现- 21 - 5.1项目的具体功能模块设计及界面- 21 - 5.1.1用户体验界面的设计- 21 - 5.1.2 手机防盗功能模块的设计- 23 - 5.1.3 手机侦测与设置功能的设计- 29 - 5.1.4 用户隐私功能的设计- 33 -5.2 项目设计遇到问题的处理方式- 36 -第六章 项目测试- 38 -6.1 项目测试结果- 38 -本章小结- 41 -结束语- 42 -致谢- 44 -I第一章 绪论1.1 选题背景Android移动终端操作系统由谷歌公司于2007年11月05日推出, Android操作系统是建立于Linux操作系统之上,该平台有操作系统、中间件、用户界面和应用软件层组成。Android操作系统最初由Andy Rubin开发,主要支持手机。根据全球著名调查机构Gartner提供的数据,安卓系统在只能手机市场发占有率达到了一半以上。相对于PC的安全性而言,手机安全对用户的威胁更大。因为手机相对于PC而言其私密性更强,一旦手机遭受到安全攻击,将带来直接的经济损失。所以,为了用户的隐私和手机安全问题,本次毕业设计将选择手机安全卫士作为毕业设计的题目。随着科技的发展,移动互联网已成为当下的趋势,而拥有Android平台的终端设备已达到75%的占有率。这都要归根于其平台的开放性,显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,使得Android下的应用多而混乱,其中不乏有大量的恶意扣费软件、盗取用户隐私的木马程序等等。这就使得开发出一个保护用户隐私和阻截恶意软件的手机安全卫士显得很有必要。本次开发的安全卫士不仅可以检测恶意的软件,还能绑定用户的手机,以便在手机丢失后远程锁定用户的手机,甚至远程销毁数据,已达到保护用户隐私的作用。为了开发出一个适合用户需求的手机卫士,本次设计还借鉴了市面上一些商业性安全软件的一些构思和设计技巧。而有的商业安全软件的界面不够人性化,本次项目针对那些缺点进行优化设计。而随着技术的进步,对手机安全卫士的开发提出了更严格的要求和挑战,本次系统设计是以切合实际的发展趋势和用户需求而开发设计的。国内研究现状分析,从2002年开始,全球领先的计算机安全厂商纷纷介入移动安全领域,并发布了相关的安全产品,反病毒技术在发展上大致经历了以下几个阶段: 针对某个病毒的专有杀毒程序。当手机病毒刚出现的时候,由于病毒数目很少,而且并不具有实质性的危害,安全厂商往往通过提供专有杀毒程序的形式来解决威胁。 基于病毒文件HASH描述的反病毒扫描技术。 是通过给对应的病毒计算HASH,然后通过文件扫描找到对应的病毒。基于HASH计算的反病毒引擎算法简单,而且病毒定义方式也很容易但是但是由于灵活性及效率原因,很快就被淘汰。 基于通用病毒定义语言的反病毒扫描技术。通用的病毒定义语言可以用最少的代价描述一个或者多个病毒,并极大的优化了扫描引擎的性能。1.2 系统开发环境操作系统:Microsoft Windows 7 Ultimate开发平台:Android开发环境:Android Development Tools开发语言:Java数 据 库:Sqlitexlii河南城建学院本科毕业设计(论文) 需求分析全套设计加扣 3012250582第二章 需求分析2.1 可行性分析随着Android用户的不断增长,手机安全卫士在各个应用下载榜上都名列前茅,国内有很多成功的案例,如:奇虎360安全卫士,金山卫士,腾讯手机管家等。而手机卫士这个项目乍一看不知道如何下手,并且其组织关系有很大的复杂性,但仔细分析后,发现它所用到的知识点基本上Android核心的知识点,比如:Android的四大组件、自定义UI布局还有对一些系统API的综合运用。并且由于Android的开源,我们还可以借鉴一下市面上的安全卫士的素材和UI布局,所有说如果我们能详细了解项目的开发流程并且熟悉Android核心的知识点,开发出这个项目并不存在太大的技术问题。改革开放以来,我国经济发展迅猛,而21世纪是信息网络化的时代,近年来,越来越多的人都拥有自己的移动终端,而开发出一款能保护用户隐私和避免恶意软件损坏用户手机的安全卫士显得很有必要。这次要开发的项目能很好的实现手机防盗和病毒查杀的功能,这个项目开发难度不是太大,并且通过开发工具可以导出一个APK文件,直接可以安装到用户的移动终端上,系统部署对软硬件要求不高,用户操作简单,使用比较方便,几乎不需要对用户进行专业培训就可使用本软件,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,适应了当前的发展形式。通过将近几天的可行性分析和对市场需求的调查,发现对手机卫士的需求还是蛮大的,通过技术和经济上的分析,开发出一款手机安全卫士是切实可行的,这就为我们后来的准备工作有了一个良好的开端。好的开头是成功的一半,这会是后期开发的动力之所在。2.2 项目需求分析手机安全卫士是针对当下形势需求而开发的,Android系统的火爆和开源,使得用户的资料都没有安全保障,所以一款适应潮流的手机安全卫士应运而生。而本次项目开发是针对一些潜在的隐患而开发的,本项目预计实现9个大的功能模块,最主要的有手机防盗、软件管理、进程管理、手机杀毒等常用的功能。尽力使每个Android都可以安装这款软件,其中手机防盗模块构思是根据用户是否开启防盗服务而启动的,根据用户预设的密码和手机SIM更换的状态来保护用户的隐私。而软件管理模块是通过ListView展现出用户的所有安装的软件,其中有用户软件和系统软件之分,用户可以对安装的应用程序进行卸载、分享和启动。进程管理是通过ActivityManager来拿到用户手机正在运行的进程,用户可以杀死任意一个进程,也可以全选杀死多个进程来释放手机的内存,节省控件。手机杀毒模块是通过拷贝到用户存储卡上一个病毒数据库,检测用户安装程序的包名和程序的数字签名来识别病毒,并提示用户是否删除恶意病毒。所有的功能模块都是运行于Android平台之上的,各个模块之间的耦合度比较低,都能独立运行在模拟器或者用户的移动终端上,方便用户的操作,能够实现用户的日常需求。2.3 项目的具体功能分析整体项目采用MVC框架,是对android知识点的综合应用,用到的技术有 activity,service,broadcast,content provider,Notification,sqlite数据库,自定义title,自定义控件,widget,aidl进程间通讯等,本项目所实现的功能如下: 手机防盗:根据预设参数,判断手机是否被盗,根据自定义协议发送手机中SIM卡的信息和手机的位置信息给安全号码。可远程通过短信指令,给手机设置锁屏密码,远程锁定手机屏幕,远程格式化手机SD卡,恢复出厂设置,极大的保护用户的隐私安全,通过aidl注册admin设备,一般用户无法卸载该程序。 通讯卫士:来电号码归属地显示,来电归属地位置的调整,来电黑名单/短信黑名单管理。电话短信备份和还原,保护手机的数据和通讯安全。 软件管理:系统软件和本地软件,可以显示软件的详细信息,启动、删除、分享应用程序。程序锁可以指定要保护的程序,用户进入要保护的程序之前必须输入密码。 进程管理:显示当前系统运行的进程信息,显示系统内存信息,可以杀死某个进程,批量杀死进程,通过桌面widget实时展现用户当前的手机内存状态。 手机杀毒:从服务器下载最新的病毒库,根据程序的包名和程序的数字签名识别病毒,提示用户并查杀恶意软件,使吸费木马无处可藏。 系统优化:清理手机缓存,提高手机性能,优化电池管理。 高级工具:手机号码归属地查询,更改归属地位置,常用号码查询。 设置中心:可以对是否开启防盗、是否开启程序锁服务等功能进行设置,还可以更改来去电显示的风格。2.4 项目框架简介整体项目采用MVC框架进行设计和开发,MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + Servlet + Javabean的模式。2.5 项目的目录空间结构在创建了本次的设计的项目后,会在项目的根目录下发现一些文件和子目录,以下是对这些目录的简要说明:AndroidManifest.xml:是一个XML文件,用于描述将被构建的应用程序,以及应用程序中包含哪些组件(Activity、Service等等)。build.xml:是一个Ant脚本,用于编译应用程序和在设备上安装应用程序。Dperties和perties:是属性文件,由Ant构建脚本使用。assets/:文件夹,用于存放需要打包到应用程序中的静态文件,以便部署到设备中。bin/:文件夹,用于存放编译后的应用程序。gen/:文件夹,Android构建工具存放它们生成的源代码的地方。libs/:文件夹,用于存放应用程序用到的第三方JAR包。src/:文件夹,用于存放应用程序的Java源代码。res/:文件夹,用于存放应用程序的资源(如图标、GUI布局等),将被打包到编译后Java中。tests/:文件夹,用于存放完全独立的Android项目,以便测试你所创建的项目。2.6 项目代码的组织结构程序代码的组织结构大体上有两种:第一种:按照业务逻辑组织代码,这样业务与业务之间的关联度比较小。第二种:按照代码的类型组织包结构。在这里,我们采用第二种代码的组织结构进行手机安全卫士的开发,其代码的组织方式如下:com.itheima.mobilesafe.activities,这个包放我们开发程序的主界面;com.itheima.mobilesafe.ui,这个包放我们开发程序的自定义控件;com.itheima.mobilesafe.engine,我们程序开发的业务类放在这个包下;com.itheima.mobilesafe.db,这个包放我们所使用的数据库类;com.itheima.mobilesafe.db.dao,这个包实现我们对数据库的增删改查;com.itheima.mobilesafe.utils,这个包下为我们公用的工具类;com.itheima.mobilesafe.service,这个包下为我们后台长期运行的服务;com.itheima.mobilesafe.receiver,这个包下是我们定义的广播接收者。第三章 相关技术简介3.1 Java技术综述 Java技术简介是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Java是由四个方面组成的,包括Java编程语言、Java文件格式、Java虚拟机(JVM)、Java应用程序接口(Java API)。简言之:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。 Java技术的特点Java编程语言的风格十分接近C语言、C+语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的性能。3.2 Android技术 1)Android技术的简介Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android是第一个内置支持Java的操作系统,Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。另外一方面,3G应用往往会和企业级应用相互结合。配合真实的企业级项目,不但可以深入掌握基于Android平台的智能手机开发技术,更重要的是还系统掌握了智能移动终端与Java EE服务器端相结合的诸多领域商业的应用。项目开发环境为ADT(Android Development Tools),是一个定制版的Eclipse,专门用于开发Android项目,里面集成了Android Virtual Devices,对于Java基础较扎实的人很容易上手。2)Android的四大组件Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。 活动(Activity): Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转。 服务(Service):Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。 广播接收者:在Android 中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。 内容提供者:Content Provider 是Android提供的第三方应用数据的访问方案。3)Android平台的优势与劣势Android平台有五大优势特色。 开放性在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。 挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。 不受任何限制的开发商Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。 无缝结合的Google应用如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。但是事物往往都有两面性,Android平台还有其相应的劣势。 版本过多,升级过快由于Android的开放式特点,所以很多的厂商推出了定制的界面,如HTC Sense、MOTO Blur、三星Touchwiz等等,这提供给客户丰富选择的同时,也造成版本过多,升级较慢的特点,因为Google的升级速度很快,而厂商要推出新固件需要经过深度的研发,就造成升级滞后的问题。 用户体验不一致由于Android在不同的厂商,不同的配置下均有机型,所以造成有些机型运行Android系统流畅,有些则是缓慢卡顿等问题,就如愤怒的小鸟的开发商就表示,这款人气游戏在很多的Android机型上运行得不是很理想,不过就像我们用的PC也有的好有的坏一样,这倒是不必太多顾虑这个问题。3.3 SQLite数据库 SQLite数据库简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。SQLite是一个非常流行的嵌入式数据库,它的SQL界面非常简洁,内存占用少,速度快。此外,它是公开的,所以每个人都可以使用。许多公司(如Adobe、苹果公司、Google、Sun和Symbian)和开源项目(如Mozilla、PHP和Python)都在产品中使用了SQLite。对于Android,SQLite已经“融入”到Android运行时,因此所有Android应用程序都可以创建SQLite数据库。由于SQLite使用SQL界面,对于有基于其他SQL数据库使用经验的用户而言,它的使用非常简单直接。但是,它的本机API不是JDBC,而JDBC对于手机等内存有限的设备来说开销太大。对于程序员来说,学习SQLite就相当于学习一个新的API,它很容易上手。 SQLite数据库的优缺点优点:SQLite是一个轻量级、跨平台的关系型数据库。SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦,还有跨平台性和可移植性。SQLite 操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。缺点:SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错,并且SQL标准支持的不全。湖南软件职业学院毕业设计(作业) 第四章 项目设计4.1 项目设计目标及原则本次项目的设计就是要开发一个手机安全卫士的软件,它属于一个系统级别的软件,通过设置可以监听用户的电话及短信号码,判断是否是黑名单以便于进行拦截,还可以进行手机病毒的查杀、系统优化、软件管理、进程管理、程序锁等功能。本项目致力于设计一个松耦合的功能,降低模块之间的联系,以便后期的维护与再设计。系统设计的原则如下所示。 模块化模块化设计不仅减低了模块之间的耦合性,使得系统容易修改,而且推动了系统各个部分的并行开发,从而提高了软件的设计效率。 模块独立性模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他模块的功能是无关的。模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结构。4.2 项目的模块流程图 主界面业务流程图该系统的总体的一个结构图有主界面以及主界面上的一些模块构成,主界面为HomeActivity,在主界面上有手机防盗、通讯卫士、进程管理、高级工具等模块组成。总体模块结构图如图4.1所示。图4.1 总体模块结构图 splash界面的业务流程图首先说下splash界面的作用,具体有展示产品的logo提升产品的知名度;应用程序的初始化,读取配置文件,加载配置;链接服务器,获取最新信息,检查版本号,判断应用程序是否需要更新;联网校验检查应用程序的完整性。所以说再了解了splash界面的作用后,就可以画出它的业务流程图了,如图4.2所示。图4.2 splash界面流程图 手机防盗模块业务流程图手机防盗模块是根据预设密码,判断手机是否被盗,根据自定义协议发送手机中SIM卡的信息和手机的位置信息给安全号码。手机防盗设置向导业务流程图如图4.3所示。图4.3 手机防盗设置向导流程图手机防盗的核心是通过建立Android下的超级管理员功能,可远程通过短信指令,给手机设置锁屏密码,远程锁定手机屏幕,远程格式化手机SD卡,恢复出厂设置,并且用户也不能对软件进行卸载,可以极大的保护用户的隐私安全。通过建立一个广播接收者监听手机的重启状态,重启后判断手机防盗是否开启,通过TelephonyManager的getSimSerialNumber()方法获取到手机的SIM卡串号,和之前的保存的串号比对是否一致,判断手机是否被盗。再通过建立短信的广播接收者监听来短信短信的状态,如何短信内容和我们预设的指令相同时,由超级管理员来远程锁定手机甚至销毁数据,这两个广播接收者模块流程图如图4.4和图4.5所示。图4.4 检验SIM卡串号流程图根据远程指令向手机发送信息指令,用来锁定手机、获取手机的位置、远程销毁手机的数据,保护用户的隐私不被泄露,则短信的广播接收者业务流程图如图4.5所示。图4.5 SmsReceiver业务流程图 黑名单模块业务流程图黑名单模块是通过创建一个BlackNumberDBOpenHelper类继承SQLiteOpenHelper,就相当于创建一个黑名单的数据库,用于增加、删除、查询、更改黑名单,方便与用户的操作。其业务流程如图4.6所示。图4.6 黑名单模块业务流程图 软件管理模块业务流程图软件管理业务就是让用户管理自己的软件,该界面显示的有系统软件和用户软件,在显示的每一个软件上点击可以分享、启动或者卸载一个应用。该模块的业务流程如图4.7所示。图4.7 软件管理业务流程图 手机杀毒模块业务流程图手机杀毒的业务流程是通过拿到包管理器遍历手机上安装的应用程序,把应用程序的包名和数字签名和数据库中病毒的数字签名进行比对,如果相同,说明该应用程序为病毒,弹出一个删除该应用程序的界面,如果不相同,说明该应用程序不是病毒,扫描结束后,返回到手机杀毒的界面。该手机杀毒业务流程如图4.8所示。图4.8 手机杀毒业务流程图 设置中心模块业务流程图设置中心就是对其他功能进行设置而开发的一个模块,通过设置中心可以更改那些功能的背景、显示风格、是否开启后台服务,还可以更改是否开启应用程序的自动更新业务,这个功能就是当服务器上有新版本的应用程序时,可以连接服务器进行下载更新。其业务逻辑流程如图4.9所示。图4.9 设置中心业务流程图。湖南软件职业学院毕业设计(作业)第五章 项目详细设计与实现5.1 项目的具体功能模块设计及界面本次项目的功能模块大致有十几个,而总体上可以分为三大方向的功能,有手机防盗功能模块、系统侦测与设置以及用户隐私功能模块,而在大的方向下又有不同的小的模块组成,下面就该项目的所有的功能模块的设计进行详细的说明及部分界面的展示。5.1.1 用户体验界面的设计 splash界面,其主要功能是初始化数据、联网检查服务器是否有新的版本更新和展示手机卫士的logo,可以提高用户的体验效果。这个界面的设计流程,首先定义个相对布局,设置一个背景图片,布局中间添加一个TextView用来显示版本号,下方添加一个ProgressBar,用来显示加载的进程。在布局最下方放置一个TextView,当应用程序联网检查更新时,如果连接服务其有更新提示,会弹出一个对话框提示用户进行更新,其界面展示如图5.1所示,其界面布局的代码会在附录里给提供出来。图5.1 Splash界面展示这个页面需要进行联网操作,所要在AndroidManifest.xml配置一个名称为android.permission.INTERNET联网的权限。而且在后台设计这个页面时,由于需要联网进行更新,这是一个比较耗时的操作,所以联网的操作放在的子线程里进行执行,避免由于请求服务器产生anr(Application Not Responding)异常。在splash界面还进行了数据库拷贝的操作,把数据库文件拷贝到/data/data/com.itheima.mobilesafe/files/这个目录下,这样才可以对数据库进行增、删、改、查的操作,同样这个操作也是要放到子线程里去执行。 主界面设计在splash界面后就直接进入到主界面了,这个界面为用户经常操作的界面,而且手机卫士的所有的功能都在主界面里展示,在这个界面用户可以清理手机缓存、设置手机防盗、管理手机的软件和进程等。其设计过程是界面最上端放置的是一个TextView控件,文本为手机安全卫士,其下方放置是一个自定义的FocusedTextView类,让其继承TextView,重写isFocused的方法,return true,这样就骗过了系统,让系统误以为FocusedTextView获取到焦点,这样就能产生一个跑马灯的效果展现到界面上。其下方的模块就是一个设置numColumns为3的GridView显示出来的,主界面展示如图5.2所示。图5.2 主界面展示5.1.2 手机防盗功能模块的设计手机防盗也是手机卫士最为核心的功能模块,其主要是保护用户的隐私不被泄露,可以通过设置初试密码开启防盗功能,可以在手机丢失的情况下,向事先设置的安全号码发送报警短信,可以远程遥控手机销毁数据,保护隐私。其主要界面展示如下图所示。1)设置密码与输入密码设计首次进入打开手机防盗功能的界面时,要先设置安全密码,这个对话框设计是定义一个线性布局LinearLayout,对其方式为竖直,上面定义一个TextView控件,文本内容为:设置密码,下方设置两个EditText,输入类型为textPassword,而在下方再放置一个线性布局,对其方式为水平对齐,添加两个Button按钮,设置layout_width=0dip,layout_weight=1,这样两个Button按钮所占权重一样。其显示效果如图5.3所示。图5.3 设置安全密码界面设置完安全密码后返回到主界面上,再进入手机防盗这个功能时就不用再设置密码了,而是进入到一个用户输入密码的界面,其页面布局和设置密码的页面布局一样,显示效果如图5.3示。图5.4 输入密码界面2)设置向导的详细设计设计输入密码后,用户就进入到设置向导的界面,设置向导一共有四步,用户要完成这四步操作设置手机的防盗功能,其具体的设计如下面四步所示。 设置向导第一步的设计这个界面的布局,界面的根节点是一个线性布局,对其方式为竖直方向,首先设置一个TextView控件,文本内容为:欢迎使用手机防盗,这个控件下面再添加一个TextView控件,文本内容为:您的手机防盗卫士。其下方放置一个线性布局,对其方式设为水平方向,左边设置一个ImageView控件,指定一个小图片,右边放置一个TextView控件,写入文本的内容,下面几个也是这种布局。在这种布局下,再加入一个线性布局,设为水平方向对齐,在线性布局里放入4个ImageView控件,分别给它们指定一个图片的资源即可。在这个线性布局下,再放置一个RelativeLayout(相对布局),设置宽高为match_parent,在相对布局里设置一个ImageView,设置它的layout_centerInParent=true,并为它指定一个图片资源,再添加一个Button,指定一个背景的样式,让Button按钮显示的更美观一些, layout_alignParentBottom=true,layout_alignParentRight =true,让Button按钮显示在父窗体的右下方,给Button添加一个文本为下一步。其具体的显示效果如图5.5所示。图5.5 设置向导第一步界面 设置向导第二步的设计设置向导的第二步的UI布局大致与第一步相同,中间设置的是一个相对布局,其内部添加的是一个TextView控件,其显示文本为:点击绑定sim卡,相对与这个布局的右侧是一个ImageView控件,指定为图片资源是一个未加锁样式的图片,通过后台代码的控制,当用户点击过绑定sim卡后,这个小图片变成一个已加锁样式的图片。页面底部放置两个Button按钮,其界面显示效果如图5.6所示。图5.6 设置向导第二步界面 设置向导第三步的设计第三步界面UI的设计与前两步都大同小异,中间输入电话号码的框为一个EditText控件,其下方是一个Button按钮,宽度为填充父窗体,文本为选择联系人,选择联系人功能实现,由于要拿到手机里面的联系人,联系人是隐私数据,要通过内容提供者来实现,创建一个ContactInfoProvider类,里面写一个返回List的方法,来返回联系人集合。通过创建一个ListView页面布局,把数据填充到ListView页面上,并且给每一个ListView注册一个条目点击事件,当用户点击某个条目时,取出该条目录上的电话号码,并把该号码写到安全号码这个界面上,然后才能进入到下一步的设置向导,其界面显示效果如图5.7所示。图5.7 设置向导第二步界面设置向导第四步设计,显示效果如图5.8所示图5.8 设置向导第四步界面 设置向导完成的界面,要进入到手机防盗的界面,这个界面包含的信息有用户设置的安全号码、防盗保护是否开启、还有一些手机防盗功能的简介。其界面展示如图5.9所示。图5.9手机防盗界面5.1.3 手机侦测与设置功能的设计这个大的功能主要有软件管理、进程管理、手机杀毒这三个小模块组成的,它们的具体的设计流程及界面的展示如下所示。 软件管理模块的设计软件管理这个模块通过listview把手机里面的应用程序给展示到界面上,在界面的最上面有两个textview用来显示用户手机内存(rom)可用的大小和SD卡可用内存的大小,下面是一个listview通过遍历把应用程序显示到界面上,然后给你每一个listview条目都注册了点击事件,在点击每一个条目时,可弹出一个悬浮窗体,用popupwindow实现的,这个弹出窗体有三个小按钮,可以卸载、启动、分享这个应用程序,在点击这些小按钮的时候,可启动其对应的activity,方便于用户的操作。其界面展示如图5.10所示。图5.10 软件管理界面展示 进程管理模块的设计进程管理界面的UI和软件管理界面的UI大致类似,其顶部显示的内容也是通过textview显示出来的,通过ActivityManager拿到手机正在运行的进程数量和可用内存(ram)的大小,再设置显示到界面上。Textview下的布局是一个listview,显示进程的界面是通过创建一个LinearLayout节点的布局文件,里面放置一个imageview和textview,右边再放置一个checkbox,来选择要清理的进程。通过View.inflate方法把xml布局文件填充成一个view对象,显示到界面上。在界面的最下方放置了四个button按钮,设置成width=0dip,weight=1,等比例分配空间,显示到界面上。其主要界面展示如图5.11所示。图5.11 进程管理界面展示 手机杀毒模块的设计手机杀毒模块是通过扫描应用程序的包名和数值签名来和数据库里存储的病毒的数字签名进行比较,如果比较的结果相同,则说明这个应用程序为病毒,否则,则说明这个应用程序是安全的。说一下这个页面呢的布局,界面的上方显示的是一个线性布局,显示方式为水平方向,在线性布局的左边放置两个imageview,其中一个图片设置为不可见,右边放置一个textview显示正在扫描的应用程序的名称,在图片上加入一个动画效果,这样,就感觉手机杀毒在不停的扫描手机里安装的应用程序。在这个歌线性布局下方放置一个listview,用来显示扫描过的应用程序的信息,如果扫描到手机里有病毒,会在扫描结束后,弹出一个对话框,提示用户是否删除该应用程序。大致的界面布局就是这样的,其显示界面如图5.12所示。图5.12 手机杀毒界面展示 设置中心界面展示设置中心是对该手机卫士的一些功能进行设置,里面含的模块有是否打开自动更新,来电显示归属地显示位置信息以及是否显示来电归属地对话框,是否打开黑名单拦截服务等。这个页面的布局主要是通过自定义的组合控件完成的,创建SettingView类继承RelativeLayout,把一个定义好的xml文件转化成view对象,显示到界面上。其主要界面展示如下图5.13所示。图5.13 设置中心界面展示5.1.4 用户隐私功能的设计用户隐私这个功能主要包括通讯卫士、程序锁、高级工具这三个模块组成,其具体的设计流程及界面的展示如下所示。 通讯卫士模块的设计通讯卫士可以让用户添加黑名单,在界面上有个添加按钮,点击添加后,在弹出的对话框里输入要加入黑名单的号码,并选择拦截模式,拦截模式有全部拦截、电话拦截、短信拦截三种模式,点击确定,就可以添加成功,添加的数据存储到数据库里,并在通讯卫士界面显示出来。其界面展示如图6.14所示。图5.14 黑名单界面展示 高级工具模块的设计高级工具模块是给用户提供一些小功能的按钮,里面包含的有手机号码归属地查询、常用号码查询、备份和还原短信、程序锁功能。页面的大致布局是定义一个线性布局,线性布局里放置一些textview,textview左边放置一个小图片,让页面显示的更美观。在代码里给每一个textview设置一个点击事件,当点击每一个条目时跳转到不同的页面,例:点击手机号码查询时,跳转到查询界面,在查询界面用户输入要查询的电话号码,点击查询,比对数据库的信息,把该号码的归属地显示到界面上。其界面展示如图5.15所示。图5.15 高级工具界面展示 程序锁模块的设计高级工具里面程序锁界面,这个界面展示了复杂界面的UI布局是如何编写的,这个界面显示出未加锁列表和已加锁列表,每个界面显示出未加锁软件和已加锁的软件,当用户点击右边加锁或者解锁的小图标时,可以对应用程序进行加锁或者解锁。其界面的设计就是控件的组合实现的,界面的根节点是一个相对布局,对其方式为竖直对齐,第一个节点也是一个相对布局,其对其方式为水平方向,里面添加两个TextView控件,写入文本未加锁和已加锁,并为它们分别指定不同的背景图片。在这个线性布局的下方,放置一个FrameLayout(帧布局),在帧布局里添加两个相对布局,对其方式都是竖直方向对齐。在相对布局里面,放置一个TextView和ListView,TextView里面的文本分别为未加锁软件和已加锁软件。其中未加锁软件所在的线性布局置为可见,而另外一个线性布局置为不可见,通过后台代码的控制,在用户点击未加锁和已加锁条目时,再对应的更改这两个线性布局是否可见,把对应的加锁软件或者未加锁软件显示的界面上。其界面展示如图5.16所示。图5.16 程序锁界面展示5.2 项目设计遇到问题的处理方式在项目开发中不太可能是一帆风顺的,遇到运行错误或者在运行时抛出异常是非常正常的,俗话说,没有经历那么多的异常,你就不能算是一个合格的程序员。而遇到异常一般的操作就是通过打断点的方式来找到问题的所在,再解决这个异样。遇到异常不管在Java或者Android下都是通过打断点的方式进行的,如果在程序运行过程中发现实际结果与预期结果不一样,说明程序在某个地方出现了bug,找到程序出错误的地方。在定义的变量或者定义的方法左边打上断点,然后,以Debug As的方式运行程序,运行后,程序会自动跳转到Debug页面,按F5跳转到下一步进行调试,同时把鼠标移动到变量上,点击右键,选择watch,进行查看变量的值,如此不断的反复进行调试,直到找出出现的问题所在。调试下需要注意的问题,第一:断点调试完成后,要在breakpoints视图中清除所有断点;第二:断点调试完成后,一定要记得结束运行的jvm。界面的布局主要用到了xml文件进行布局,在xml文件中主要使用了TextView、ImageView、ListView、GridView、CheckBox等控件来显示界面。界面的设计较为简单,和商业性的手机卫士页面布局还有很大差距,不过相应的功能基本都实现了,通过详细界面布局和后台代码的实现基本上完成了一个手机卫士的开发,接下来要做的是找些好的素材,再美化下界面就行了。河南城建学院本科毕业设计(论文) 项目的运行与测试湖南软件职业学院毕业设计(作业)第六章 项目测试6.1 项目测试结果在项目完成后,就进入了对项目的每一个功能模块的进行测试的环节,通过把项目部署到模拟器上检测各个功能模块是否都能正常运行,由于项目的功能模块较多,下面就展示一下部分功能的测试结果。 对程序锁功能的测试开启模拟器,把项目部署到模拟器上,进入到设置中心打开程序锁设置的功能,然后返回到程序锁的界面对某一个程序加锁。这里我们采用模拟器上的计算器进行加锁,在已加锁的列表里显示的有计算器,如图6.1所示。图6.1 已加锁界面然后打开计算器,显示的是输入密码的界面而不是计算器的主界面,通过这样的方式进行测试,手机锁功能正常运行,输入密码界面如图7.2所示。图6.2 输入密码的界面 对来电归属地显示的测试我们也通过模拟器进行测试,通过把项目部署到模拟器上,进入设置中心,打开来电归属地显示按钮,并选择显示款的风格为活力橙,通过Eclipse进入到DDMS(Dalvik Debug Monitor Service)界面,是 Android 开发环境中的Dalvik虚拟机调试监控服务。从这个界面上找到Emulator Control来给模拟器模拟一个接到电话的场景,看模拟器在接电话界面上是否有活力橙的号码归属地显示框,其显示的界面如图6.3所示。图6.3 归属地显示界面 对黑名单进行测试这个测试我们通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务谈判策略与合同签订标准化流程
- 贺岁影片营销方案
- 品牌策划现场活动方案
- 餐饮营销方案推广
- 跳线布线施工方案
- 生日会策划活动方案
- 液体固化施工方案
- 展览营销方案策划
- 绿色物流营销方案
- 温州眼镜营销方案
- 独管铁塔施工方案及流程
- 2025云南石林国有资本投资集团有限公司及下属公司招聘30人笔试考试备考试题及答案解析
- 战略性矿产资源的探产供储销体系优化
- 食堂食品供销合同范本
- 中药热奄包课件
- 2025年租车合同范本下载(模板)
- 学生实习安全及突发事件应急预案
- 2025江苏海氧深冷科技有限公司招聘考察人员笔试历年备考题库附带答案详解2套试卷
- 第四单元达标测试卷(单元测试)2025-2026学年二年级数学上册(人教版)
- 《红日》读书分享模板
- 机械伤害事故应急演练方案(现场处置方案)
评论
0/150
提交评论