基于android的手机安全卫士

上传人:抢*** 文档编号:58573167 上传时间:2022-02-28 格式:DOC 页数:43 大小:1,023.38KB
收藏 版权申诉 举报 下载
基于android的手机安全卫士_第1页
第1页 / 共43页
基于android的手机安全卫士_第2页
第2页 / 共43页
基于android的手机安全卫士_第3页
第3页 / 共43页
资源描述:

《基于android的手机安全卫士》由会员分享,可在线阅读,更多相关《基于android的手机安全卫士(43页珍藏版)》请在装配图网上搜索。

1、烟台大学毕业论文(设计)任务书院(系):计算机与控制工程学院姓名王兴锋学号201158504304毕业届别2015专业软件工程毕业论文(设计)题目基于Android的手机安全卫士指导教师张玉学历本科职称高级软件工程师所学专业信息管理与信息系统 论文设计的主要内容: 基于Android的手机安全卫士主要内容有。(1)绪论,包括课题的研究意义及必要性、相关领域国内外的现状及发展趋势、卫士中黑名单实现原理。(2)系统分析,包括系统功能要求、需要开发的功能、可行性分析。(3)总体设计,包括功能模块划分、系统模块设计图、系统流程图、开发框架及开发工具的介绍。(4)详细设计,包括各模块的详细功能实现。(5

2、)系统实现,包括主界面的实现以及各个服务的实现。 (6)综合测试,包括各个功能模块以及服务的测试。 基本要求:通过本次的系统设计能够使学生具备基本的代码编写能力,逻辑组织以及分析能力。对整个系统有个更深的认识,能够独立的思考系统设计以及框架的搭建。同时还要具备语言组织能力,文档的编写能力。 参考文献:1 Chris Haseman. Android Essentials.Apress2 王家林.大话企业级Android开发.电子工业出版社.2011.8 进度安排:2014.11.202014.11.29:系统的分析阶段,开题2014.11.302014.12.13:系统的设计,实现阶段2014

3、.12.142015.1.5:系统的测试阶段,进一步补充完善2015.1.62015.5.16:论文的撰写和答辩指导教师(签字): 年 月 日院(系)意见: 教学院长(主任)(签字): 年 月 日备注:烟台大学毕业论文(设计)烟台大学毕业论文 (设计)评审表(指导教师用)题 目基于Android的手机安全卫士学生姓名王兴锋学号201158504304专业软件工程指导教师姓 名张玉职称高级软件工程师所学专业信息管理与信息系统是否同意参加答辩:得分评语: 指导教师(签字): 年 月 日2烟台大学毕业论文(设计)烟台大学毕业论文(设计)评审表(评阅人用)题 目基于Android的手机安全卫士学生姓名

4、王兴锋学号201158504304专业软件工程指导教师姓 名张玉职称高级软件工程师所学专业信息管理与信息系统是否同意参加答辩:得分评语: 评阅人(签字): 年 月 日烟台大学毕业论文(设计)烟台大学毕业论文(设计)评审表(答辩小组用)题 目基于Android的手机安全卫士学生姓名王兴锋学号201158504304指导教师姓 名张玉职称高级软件工程师得分评语: 答辩委员会(小组)(全体成员签字): 年 月 日烟台大学毕业论文(设计)综合评定成绩表指导教师评分评阅人评分答辩评分综合评定成绩(2:2.5:5.5)答辩委员会负责人(签字): 年 月 日烟台大学毕业论文(设计)摘要随着科技的发展手机的不

5、断更新,各式各样的安卓手机也在不断的更新换代。随之而来的是各式各样的应用,这样一来就需要有款应用来统一管理我手机中的应用,手机安全卫士是我们手机中必备的应用了。现在我们队手机的保护,已经不是简单的设置一下黑名单,拦截电话等。现在的功能更多更强大了,比如可以清理系统的空闲进程,查杀手机内的病毒,手机防丢失等。此次设计研究的这个项目,主要实现手机安全卫士的通讯卫士、手机防盗、手机杀毒、软件管理、任务管理、设置中心等预期的主要功能。该手机卫士的最突出的优点就是,轻巧易用,方便操作,占用资源较少。关键词 安全卫士;Android;手机Abstract: Due to the rapid develop

6、ment of Android mobile terminal operating system, a variety of Android mobile phone software has also a lot of growth. In the mobile terminal, mobile security guards is the basic function of mobile phone terminal essential, its quality has direct impact on the user experience and feeling of cell pho

7、ne use. Mobile phone security guards not only can simplce add black list, reduce telephone harassment, and now has developed much more outstanding function, such as clean process, virus killing, anti-theft tracking and so on, which greatly improves the security of the mobile phone. The main achievem

8、ent mobile security guards mobile security, communications guards, mobile anti-virus, software management, task management, traffic management, and set up centers of major features expected. The primary advantage of this security is that its simple and lightweight, less resource occupied.Key words:

9、Security guards Android; mobile phone目 录1 绪 论11.1 本课题的研究意义及必要性11.2 相关领域国内外应用的现状及发展趋势11.3 卫士中黑名单原理22 系统分析32.1 系统功能要求32.2 系统开发功能32.3 系统的可行性分析43 总体设计53.1 功能模块划分53.2 系统模块设计图63.3 系统流程图73.4 开发工具和开发框架介绍103.4.1 硬件环境介绍103.4.2 软件环境介绍103.4.3 Android系统介绍104 详细设计114.1 功能模块114.1.1 程序锁功能模块124.1.2 手机杀毒功能模块134.1.3 通

10、讯卫士功能模块144.2 系统数据库的设计154.2.1 数据库表的结构154.2.2 数据库选择及理由165 系统实现175.1 主界面类的实现175.2 程序锁服务实现206 综合测试226.1 测试目的及意义226.2 测试方法226.3 部分模块测试226.3.1 程序主界面的启动226.3.2 程序锁功能236.3.3 通讯卫士与归属地测试24结 束 语25致 谢26参考文献27附录 部分代码281 绪 论1.1 本课题的研究意义及必要性随着Android越来越流行,针对Android系统的攻击激励也越来越强,2009年11月10日Android平台出现了第一个恶意间谍软件-Mobi

11、le Spy。随后针对Android平台的攻击与其市场份额一样,呈现了爆炸式的增长 1。大家都知道安卓手机资源消耗非常严重,在安卓手机内后台悄悄的运行着很多的程序,使手机变得卡顿。出现这一问题的主要原因在于,没有一款有效的应用来统一进行管理。各大应用平台虽有各式各样的安全类的应用,但是这些应用大都含有广告应用不美观。有些虽然没有广告,但是占用资源较多,安装之后使得手机变得很卡。另有一些程序为了自己利益,在用户退出之后并没有真正的退出,而是在后台运行。这使得用户有限的资源被占用,没有合理的利用。应用市场上的应用,使我们眼花缭乱。选择一款合适的软件也不是很容易。对于不懂智能机的人来说,更是难上加难

12、。稍不留意就会被一些流氓应用窃取了隐私信息,这还稍好一点,更有甚者会直接扣除你手机内的话费。我相信这样的例子一定很多,像我们的亲朋好友一定会遇到类似的问题。有些游戏类的应用,当你游戏失败的时候,会在界面弹出对话框。对话框上用很大的字写着“再来一次”,旁边用很小不起眼的字体写着“1元”。这种类似的应用真是遍地都是,这也算稍好点的。但是这对用户来说真的很冤很冤。现在电信诈骗也相当的猖狂,特别是老人。稍不留意就会被骗,当然年人也有。现在手机成了我们每个人日常生活的必须品,相信大家都已经离不开它。但是你们有没有发现,我们的宝贝手机每天都会被各种的垃圾短信,骚扰电话,诈骗电话等所腐蚀着。我们每天还要忍受

13、着被诈骗的恐惧,我们的生活因为有了手机变得更加的繁重了。通过以上的分析,我觉得需要有一个简单安全的卫士类应用提供给广大的安卓用户。该卫士必须简单,能够适应较多的安卓手机。不会占用太多的资源,即使很少的资源也能跑的起来。拥有较高的权限,能够管理系统内的各种应用。该应用是每个用户必不可少的应用之一。1.2 相关领域国内外应用的现状及发展趋势(一)国内研究现状随着人们生活水平的提供,大家对手机的追求已经不再是简单的能够打电话,能够上网而已了。人们需要更安全,更智能的手机。这几年我们国内的智能手机也有着飞快的发展,像大家都熟悉的小米华为等等。推出的产品都是当前最流行,最实用的手机。安卓手机的用户也在与

14、日俱增。这时我们更需要一个安全的环境。国内现在也有很多手机卫士,如金山卫士等。但是这些卫士类的应用都有一个统一的问题,就是界面过于炫丽。当然我们的用户希望有一个炫丽的界面,但是对于以低配置手机的用户来说。这无非给用户增加了资源的浪费,使得用户更不方便。更有一些安全类的应用,不断给用户推送消息。拦截用户的短信,读取通讯录信息。上传用户的行为,使得用户的隐私外泄。还有一些卫士,开启各种服务,消耗手机资源。本来手机还好,装上卫士之后变得更加卡了。(二)国外研究现状国外用户大都选择一些休闲类的应用,但是不管何种应用都会有存在病毒或者恶意软件的可能。而普通用户又不能对该类应用做出很好的判断,只能通过一些

15、卫士类的应用了。相比国内,国外的应用口碑可能会好些。再者我们也不会了解过多的国外应用,只能通过朋友介绍信息推送等来了解。国外的应用对用户的隐私保护做的还是要比国内的要好的。但是不可避免,还有很多的流氓软件在后台偷偷的跑着我们的流量。还有些应用会偷偷的读取用户的联系人,用户的地理位置等信息。因此国外对手机安全也是有着很高的重视程度,因此也出了各种的安全类的应用,像ESET等。国外的应用对资源的占用也有很好的把握,效率相对较高一点。当然对我们英语好的用户来说是不错的选择,但是国内用户大部分都是普通用户。没有很高的教育程度,对英语的学习不够强。因此不能很灵活的使用国外的软件,再者不收费没有广告的应用

16、也是少之又少,用户不能对该类应用有一个很好的把握。1.3 卫士中黑名单原理建立存储黑名单信息的数据库,主要存储黑名单的号码拦截模式。根据黑名单的信息创建为本表服务的数据访问对象,方便以后查询等操作。由用户向该数据库中添加黑名单号码选择相应的拦截模式,并开启黑名单拦截。当开启黑名单拦截后,安全卫士会启动对应的监听,监听是否有短信或者电话进入。当我们有电话打进来或短信发送过来时,会根据来的号码,去进行数据查询来查询拦截模式。如果没有,则直接放行,用户将会正常收到短信或者电话通知。如果存在拦截模式,就会根据当前的来电或者来短信与拦截模式进行匹配。如果能够匹配成,那就说明这个号码是黑名单号码就得拦截它

17、的电话或者短信。安全卫士就会将该信息拦截下来。系统就不会收到通知,避免给用户带来困扰。通过该功能可以有效的保护用户的隐私,避免用户受垃圾信息的影响。还给用户一个安静的手机使用环境。2 系统分析2.1 系统功能要求本软件的设计目的就给用户带来方便,使用简单而且不会带来不必要的资源浪费。因此每个功能点的设计都要合理,代码都要做到足够优化。现在市面上的大部分安全卫士类的软件,界面都过于花哨,这样会占用大量的系统内存。导致其在低版本的手机上运行很卡,这也是很多用户为什么不愿意安装安全类的软件的原因。找到了别人的痛点,努力做别人实现不了的,这是我一直追求的。为了达到简洁的目的,该软件的所有功能直接在主界

18、面上展示。同样也达到了直观明了的目的,能够满足大多数人的使用习惯。每个服务启动都设有开关,用户可以根据自己的需求进行服务是否启动的设置,这样也会避免内存资源的浪费。代码逻辑一定要清晰,这样可以利于以后功能的扩展,也便于维护修改。软件设计模式采用MVC模式这样可以将软件分为几个层,各层之间不会相互影响,实现也较为方便。便于以后的扩展维护。该软件提供的功能要能满足用户的基本要求。手机安全卫士就是要保护手机给用户带来安全措施。所以在该系统中添加许多的安全措施,比如手机防盗功能。在该功能中用户可以对手机进行安全号码的设置,可以开启安全保护。当开启手机保护模式后,如果手机不小心丢失了。用户可以用被设置安

19、全号码的手机向丢失手机发送预设指令,可以使手机播放报警铃声,以便及时定位手机的位置。还可以发送指令给丢失手机,让手机返回丢失手机的地理位置信息。也可以发送指令清楚手机内的信息,避免手机内的信息泄露。还可以发送指令设置锁屏密码并将手机锁住。对于使用过程中的手机该系统也有相应的保护措施,比如可以清楚手机内的缓存,避免手机内存不足的问题发生。也可以有选择的清除空闲的线程,避免资源的浪费。当然该软件系统也设有黑名单拦截等功能。2.2 系统开发功能根据功能与软件的需求可以将该软件系统分为以下几个模块来开发。手机防盗模块,通讯卫士模块,软件管理模块,任务管理模块,手机杀毒模块,系统优化模块,高级工具模块,

20、设置中心模块。(1)手机防盗模块:如果手机开启了该功能,手机内的sim卡变更了。则会向安全号码发送短信,包含当前手机的其他信息。来提示我们的手机可能已经遇到了危险。以此来建立保护网络。(2)通讯卫士模块:通讯卫士就是拦截用户不想看的短信,或者电话等信息。如果某个号码已经添加到黑名单中,并且这个号码打来电话或者发送短信过来。将会被我们的卫士所拦截。用户就不会有相应的提醒,给用户创造一个安静的手机环境。(3)软件管理模块:列出手机系统软件和本地软件。可以对这些软件进行选择性的启动,卸载等操作。(4)任务管理模块:管理系统中正在运行的所有任务,显示系统内存占用信息。选择性的杀死正在运行的进程,释放系

21、统空闲的内存,节约系统内存资源。(5)手机杀毒模块:对手机中的软件文件等进行病毒查杀,找出病毒后提示用户,进行删除卸载等操作。 (6)系统优化模块:清理我们用户手机中的所有应用程序的缓存数据信息,并释放手机的内存空间。删除不必要的文件。(7)高级工具模块:电话短信备份,将手机中的短信进行备份,防止重要的信息丢失。手机号码归属地查询。还可以选择某些应用程序进行锁定,这样用户只要输入密码获得权限才可以打开相应的应用,以保护用户的隐私。(8)设置中心模块:设置安全卫士是否需要启动时自动检测更新,设置归属地在来电屏幕上的显示位置,以及来电归属地的显示风格等操作。启动程序锁服务,号码归属地显示等服务。2

22、.3 系统的可行性分析该软件系统没有涉及ROOT权限等较为底层的功能,所有功能的实现都可以在Android提供的API上进行开发。将该应用定义为应用层的软件,在技术方面存在可行性。对于不明白的功能实现,可以借助网络等途径进行查询。应用的图标的设计等也可以参考其他应用程序的UI设计。现在Android开发已有多种插件可以参考,实现复杂的功能也变的较为轻松。设计所需的时间也很充裕,某些功能的具体实现也已经做了详细的分析。3 总体设计3.1 功能模块划分根据软件的需要该应用主要包含手机防盗模块、通讯卫士模块、软件管理模块、任务管理模块、手机杀毒模块、系统优化模块、高级工具模块、设置中心模块这几大模块

23、。对于较复杂的模块再进行细分。对于大的方向可以分为界面的展示,业务逻辑的处理,数据库的访问创建,各个模块所需的工具等。模块的具体内容如下。(1)手机防盗模块:如果手机开启了该功能,手机内的sim卡变更了。则会向安全号码发送短信,包含当前手机的其他信息。来提示我们的手机可能已经遇到了危险。以此来建立保护网络。(2)通讯卫士模块:通讯卫士就是拦截用户不想看的短信,或者电话等信息。如果某个号码已经添加到黑名单中,并且这个号码打来电话或者发送短信过来。将会被我们的卫士所拦截。用户就不会有相应的提醒,给用户创造一个安静的手机环境。(3)软件管理模块:列出手机系统软件和本地软件。可以对这些软件进行选择性的

24、启动,卸载等操作。(4)任务管理模块:管理系统中正在运行的所有任务,显示系统内存占用信息。选择性的杀死正在运行的进程,释放系统空闲的内存,节约系统内存资源。(5)手机杀毒模块:对手机中的软件文件等进行病毒查杀,找出病毒后提示用户,进行删除卸载等操作。 (6)系统优化模块:清理我们用户手机中的所有应用程序的缓存数据信息,并释放手机的内存空间。删除不必要的文件。(7)高级工具模块:电话短信备份,将手机中的短信进行备份,防止重要的信息丢失。手机号码归属地查询。还可以选择某些应用程序进行锁定,这样用户只要输入密码获得权限才可以打开相应的应用,以保护用户的隐私。(8)设置中心模块:设置安全卫士是否需要启

25、动时自动检测更新,设置归属地在来电屏幕上的显示位置,以及来电归属地的显示风格等操作。启动程序锁服务,号码归属地显示等服务。3.2 系统模块设计图安卓手机安全卫士任任务管理设设置中心高高级工具系系统优化手手机杀毒软软件管理通通讯卫士手手机防盗手程序锁手短信备份手归属地查询手分享手启动手卸载图3.1 系统模块图通过以上对该软件系统功能的分析,该软件系统分为八大模块如图3.1所示。手机防盗主要实现的功能就是当手机丢失的时候可以做成相应的处理,用户可以通过安全号码向该手机发送指令进行密码锁屏等操作。通讯卫士,保护我们的用户免受一些不想看到的电话或者短信的频繁骚扰。通过软件管理工具,可以轻松的对软件进行

26、卸载等操作。任务管理可以及时清理手机内不用的线程,保证我们的手机资源能够得到最充分的利用。手机杀毒可以对安装的应用进行病毒匹配,如果发现病毒会及时的提醒用户进行清理。系统优化功能可以来帮助我们的用户清理手机内应用产生的无用的缓存信息,释放我们的手机内的内存空间可以供其他应用程序的使用。通过高级工具使用户更方便更安全的使用手机,里面还有程序锁功能,可以安全的保护用户的隐私。用户可以根据设置中心进行自己独特的设置,使手机更安全方便。3.3 系统流程图连接服务器去读取服务器的配置文件升级提醒对话框是否升级比对客户端和服务器版本 相同进入应用程序的主界面不同 否下载新版本替换安装是图3.2 启动流程图

27、在该系统的启动界面回去做一些初始化的操作,比如数据库的初始化等操作。还会进行自动更新的检测,连接服务器读取服务器的配置信息。如果本软件的版本低于服务器上软件的版本,就会弹出对话框提升用户进行更新操作。否则,直接进入应用程序主界面。手机防盗界面设置密码 重新返回手机防盗设置完成手机防盗设置向导打开防盗保护点击绑定SIM卡不绑定设置安全号码图3.3手机防盗设置流程图手机防盗要避免其他用户进入,所以在第一次进入的时候会要求用户进行密码设置。当用户的安全密码设置完成后,就会进行下面的其他设置。比如,系统会检测我们的手机卫士是否已经安全绑定了SIM卡等操作。当用户再次进入的时候还会需要输入上次设置的密码

28、,也可以重新进行设置向导的设置。建立一个黑名单数据库添加查看号码是否存在删除修改拦截模式黑名单电话黑名单电话黑名单电话黑名单拦截电话通知拦截模式修改删除成功输入号码图3.4 通讯卫士黑名单设置流程图通讯卫士功能会在手机内部创建一个自己的数据库,用来保存黑名单的信息。主要信息有需要拦截的黑名单号码,需要拦截的模式等。拦截模式主要有通过短信拦截,电话拦截,短信与电话都拦截等等。用户可以对黑名单中的信息进行相应的添加删除等操作。3.4 开发工具和开发框架介绍3.4.1 硬件环境介绍CPU: Intel core I5内存: 6GB硬盘: 60GB以上3.4.2 软件环境介绍操作系统: Windows

29、7网络协议: TCP/IP服务器: apache-tomcat-7.0.57数据库: SQLite3开发工具:Eclipse/Android SDK2.2/ SQLiteExpertPers3.4.3 Android系统介绍图3.4 Android系统结构Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟(Open Handset Alliance)开发。24 详细设计4.1 功能模块该软件系统的各个模块之间是有联系的,不同的模块之间又有各自的数据交换。要有统一的管理类对其所有的数据进行管理,不同模块之间数据交互要合理方便。软件设计采用MVC设计模

30、式,各层次之间要降低耦合度。由于Android对安全有很高的要求,要分析清楚每个模块所需的权限。软件需要自动检测更新,会需要到联网的权限。在手机防盗模块需要定位手机的位置,还要给用户发短信等,会用到发短信以及定位的权限。线程管理模块,会获取用户当前的线程信息,因此会用到用户的获得线程的权限还有杀死线程的权限。Android系统是不允许用户杀死系统线程的,因此该功能是不可杀死系统线程的。同样在软件管理功能中,对系统应用进行卸载时,也会需要用到ROOT权限时才会对系统应用进行卸载的操作。此处可以给用户友好的提示。对程序锁的实现逻辑较为复杂,需要维护已锁定的应用的信息。同时还要监听到该应用启动。对有

31、权限访问的应用也要做相应的处理,否则应用程序将会一直停留在解锁的界面。对于程序启动的监听安卓系统没有提供相应的API,但是我们可以查询当前运行的程序。根据当前运行的程序与被锁定程序信息进行匹配,如果改程序被锁定则进入解锁界面,要求用户输入密码。系统整体功能用例图如图4.1所示。图4.1 系统功能用例图4.1.1 程序锁功能模块图4.2 程序锁时序图程序锁功能锁定应用管理。进入该功能的界面的时候,通过应用系统内部的程序管理器来获得系统内部所有的已安装的应用。程序显示采用选项卡模式,未锁定的程序在一边,锁定了的程序在另一边。当点击未锁定的程序时默认将程序进行锁定,将该程序移到锁定程度列表。当点击被

32、锁定程序时,默认将该程序解锁并移到未锁定程序列表。当程序进行启动,只需要程序锁定程序列表。如果打开的应用程序在已经锁定的应用程序列表中,说明这个应用程序是需要进行锁定的,则不会直接进入该应用程序。程序锁是该程序的一个难点,如果逻辑设计不合理程序将会出现崩溃现象,还有可能导致其他应用程序无法使用。要对该模块做详细的分析,当程序锁服务开启的时候,将对用户启动的程序进行监控。通过应用管理类获得启动应用的信息,到数据库中进行查询。如果通过对该应用程序的查询发现该应用程序是已经被锁定了的,则应该通知应用程序管理类说明该应用程序没有权限进行启动操作,要求用户输入安全密码。如果安全密码输入正确无误则启动该应

33、用程序,否则将不能启动或者进入该应用程序。如果该应用不在锁定程序列表中,则直接启动该应用程序。实现过程如图4.2所示。对于程序启动的监听采用Android中的Service。这样不容易被系统回收,可以持续监听。如果处理不当,系统将会出现卡的现象。在该服务内的操作尽量做到简洁,逻辑要清晰。在设置中心给用户提供开关的功能。4.1.2 手机杀毒功能模块图4.3 手机杀毒时序图手机杀毒的实现方式有很多种,对于实时较强的实现方式可以通过联网的方式。扫描所有应用程序的信息,将该信息上传至服务器。由服务器进行病毒匹配,并将匹配结果进行返回。这样做的好处是,病毒库只有一个并且可以实时更新。当然,这种方式需要消

34、耗用户许多流量。还有较为智能的实现方式是,检测应用程序的行为。如果通过检查发现某个应用程序有进行后台默默启动的行为,偷偷获取并上传用户的隐私信息等行为时,说明该应用有可能是病毒程序,则提示用户进行处理。这种实现方式较为安全,但是也有可能产生误报的情况,给用户带来烦恼和担忧。对于实时性要求不高的实现方式,就是我想用的方式。在本地建立病毒库,当进行病毒查杀时,扫描系统内所有应用程序,找出程序的签名秘钥,将该信息与已有的病毒库进行查询。如果发生匹配成功,并有信息返回,则将该应用程序的信息记录下来。当扫描结束后提示用户进行处理。如图4.3所示。这种实现方式较为简单,而且不会给用户带来额外的流量浪费,也

35、不会给用户带来困扰。当然也有他的缺点,就是病毒库存在漏洞。有新的病毒可能查杀不到,如果用户需要准确率高,就要经常更新病毒库。对于病毒库的建立,可以在程序初始化的时候进行。将已有的病毒库复杂到应用程序的数据中,这样可以及时访问。手机内病毒查杀主要就是,要通过计算准确的获得应用程序的内部签名信息。病毒库的建立,采用内置的方式。随着软件的安装,将该数据库移植到手机内存中。4.1.3 通讯卫士功能模块图4.4 通讯卫士时序图用户通过通讯卫士界面添加黑名单号码,在设置中心开启该服务。如果有电话短信等,就会到黑名单中查询。如果查询到相关进行,则终止该电话接通。如果,黑名单中号码有短信进入时,该软件系统也会

36、监听到并将该短信进行拦截。功能实现如图4.4所示。但是很遗憾Android为了保护用户的隐私,该API在高版本的系统中是无法使用的。这样就用到了Android的底层API的调用。需要拿到Android系统的源码,在源码中搜索ITelephony.aidl文件。将该文件复制到对应的包中,Eclipse会自动帮我们在gen目录下生成对应的类文件。对于电话的拦截,是该模块的难点。如果没有更好的方法只能如此实现。Android这么做也是为了保护用户的隐私。对于短信的拦截,我们可以通过监听获得短信的信息。将该关闭停止即可。虽然通讯卫士的电话拦截跟短信拦截在同一模块下,但是实现的方式不同只能根据不同的单独

37、功能,分到不同的类中进行实现。4.2 系统数据库的设计该软件系统无需储存大量的数据,因此数据库的表较为简单。各表之间相对独立,设计也比较容易。l 黑名单数据表:编号、手机号码、拦截模式。l 程序锁数据表:编号、锁定程序包名。l 病毒库数据表:编号、病毒匹配码、病毒类型,病毒名称,病毒描述。4.2.1 数据库表的结构(1) 黑名单数据表表名:blacknumber.blacknumber, 在该表中保存了用户需要拦截手机号的数据信息,数据表结构如表4.1所示。表4.1 黑名单数据表字段名称数据类型字段长度备注_idint11系统编号numbervarchar64黑名单手机号码modovarcha

38、r40拦截模式(2) 程序锁数据表表名:applock.info, 在该表中保存了用户需要锁定应用的包名信息,其数据结构如表4.2所示。表4.2 程序锁数据表字段名称数据类型字段长度备注_idint11系统编号packNamevarchar64锁定程序包名(3) 病毒库数据表 表名:antivirus.datable, 该表保存了病毒的详细信息,其数据结构如图4.3所示。表4.3 病毒库数据表字段名称数据类型字段长度备注_idint11系统编号md5varchar64病毒特征匹配码typeint8病毒类型namevarchar64病毒名称descvarchar64病毒信息描述4.2.2 数据库

39、选择及理由 对于Android系统使用SQLite数据库操作较为简单轻便。对于一些少量的信息存储,Android提供了SharedPreferences来进行,这种存储方式只适合少量数据的存储。对于数据量较大的存储就要用到SQLite了。SQLite数据库采用的是嵌入式数据库引擎,不会受到外部环境的影响,对于移动应用程序开发非常方便。而且SQLite数据库的运行速度也不亚于那些主流的大型数据库。5 系统实现5.1 主界面类的实现主界面是整个软件系统的入口,通过该界面可以访问其他模块的各个功能。该界面设计主要采用LinearLayout布局,在顶部显示系统内存的使用情况。中间部分为主要的三个功能

40、模块,底部放其他功能模块。如图5.1是主界面及部分类的类图结构。图5.1 主界面类图 (1)主界面布局实现介绍 以上是主界面的布局文件,将设置中心的菜单布局与主界面的布局用自定义的SlideMenu分开。分到不同的布局文件中进行编写,这样设计使得界面比较清洁,不会有过多的代码。(2)自定义控件SlideMenu介绍 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) super.onMeasure(widthMeasureSpec, heightMeasureSpec);/ 测量菜单的宽和高

41、View menuView = getChildAt(0);/ 把菜单的宽度设置为240dip, 高度设置为和SlideMenu的高度规格一样menuView.measure(menuView.getLayoutParams().width, heightMeasureSpec);/ 测量主界面的宽和高View mainView = getChildAt(1);/ 设置主界面的宽和高和slideMenu的宽高一样: 填充整个屏幕mainView.measure(widthMeasureSpec, heightMeasureSpec); Overridepublic boolean onTouc

42、hEvent(MotionEvent event) switch (event.getAction() case MotionEvent.ACTION_DOWN:mMostRecentX = (int) event.getX();break;case MotionEvent.ACTION_MOVE:/ 1). 计算增量值int moveX = (int) event.getX();/ 计算出增量值int deltaX = mMostRecentX - moveX;/ 当前最新屏幕x轴的偏移量的值int currentX = getScrollX() + deltaX;/ 限定左右边界if(cu

43、rrentX 0) scrollTo(0, 0);/ 移动到主界面的位置 else if(currentX -getChildAt(0).getMeasuredWidth() / 2) / 进入到主界面currentScreen = MAIN_SCREEN; else / 进入到菜单界面currentScreen = MENU_SCREEN;switchScreen();break;default:break;return true;Android并没有提供实现左右滑动的组件,为了操作方便只能通过自己实现。如果要实行多个控件的组合控件,就要将该控件继承ViewGroup并重写内部的一些方法。重

44、写onMeasure方法,该方法就是通过各个控件的组合通知父容器需要准备多大的空间存放该自定义控件。通过各个控件的大小计算得出自定义控件SlideMenu的大小,得到父容器的view。调用父容器的measure的方法,将控件的大小传递给父容器。这样父容器就知道该控件的大小了。重写onTuchEvent方法,该方法是当手指在该控件上滑动时调用。主要有以下几种状态。MotionEvent.ACTION_DOWN手指在控件上按下时,记录手指按下在X轴上的坐标位置。MotionEvent.ACTION_MOVE手指在控件上移动,在该状态下通过手指按下的位置计算出在X轴上的偏移量,并将该偏移量记录下来。

45、MotionEvent.ACTION_UP手指弹起时的状态,该状态说明移动结束,对SlideMenu控件进行相应的处理。如果手指发生了右移动动作,则将该控件进行右移。通过左移右移将主界面的菜单或功能主界面显示出来。5.2 程序锁服务实现 图5.2 程序锁服务类图程序锁功的基本类图如图5.2所示,主要程序是监听程序启动的类。该类主要负责监听程序的启动,锁定程序信息的获取等功能。在这个模块DAO也是很重要的,没有数据就不知道哪些程序已经被锁定。DAO主要能添加锁定程序信息,删除锁定的程序,根据特定信息找到锁定程序,以此判断该程序是否被锁定。(1)程序启动监控的实现private void star

46、tWatchDao() / 由于WatchDog是应该在后台一直运行的,所以flag置为trueflag = true;while (flag) / 获取当前正在运行的所有的任务栈信息通过活动管理者的getRunningTasks(int maxNum),/ 参数maxNum是指你最多要获得任务栈中任务的个数,这里我们只需要用户最近打开的任务信息即可,写1时就是获得用户最后打开的/ 应用任务,返回结果是一个集合,所以get(0)获得最该任务。List runningTasks = activityManager.getRunningTasks(1);RunningTaskInfo runnin

47、gTaskInfo = runningTasks.get(0);/ 然后获得该应用最后打开的页面,即顶部的activity,获取顶部activity所属的包名String packName = runningTaskInfo.topActivity.getPackageName();Log.i(fenghuo, packName + 正在监控.);/ 判断当前的应用的包名是否在程序锁的数据库里,上面已经将所有的已加锁的应用包名存储在了集合中,从内存里面查数据,不需要每次都去数据库查询速度快效率高/ if (dao.find(packName) if (lockPackNames.contain

48、s(packName) / 说明当前应用在已加锁的数据库中,再判断是否等于要临时停止保护的包名if (packName.equals(tempStopProtectPackName) / 说明是要临时停止保护的应用,则什么都不做,即不开启输入密码的界面直接进图程序界面 else / 说明在已加锁的数据库中,并且不是临时停止保护的应用,则打开输入密码的界面Intent intent = new Intent(this, EnterPwdActivity.class);/ 注意:*如果从服务直接跳到activity界面的话,需要加入栈intent.setFlags(Intent.FLAG_ACTI

49、VITY_NEW_TASK);/ 将报名传递过去intent.putExtra(packName, packName);/ 开启activitystartActivity(intent);/ 让监控程序休息一下SystemClock.sleep(500);该方法主要功能启动监控,程序将进行循环监听当前运行的程序。如果发现当前启动的程序是被锁定的程序,则跳到输入密码界面。通知用户进行密码输入。该功能如果开启,程序将陷入循环。在处理的时候要设置标识,防止程序陷入死循环。导致程序系统的崩溃。(2)数据库的创建与数据的获取用自定义的AppLockOpenHelper来进行数据库的创建。通过该类拿到数据

50、库,如果发现没有该数据库,系统会根据自定义的数据创建语句进行创建。创建的时候要注意填写数据库的版本,当我们程序的数据库进行升级时,只需将数据库的版本号进行改变即可。在下次程序启动时系统会自动检测,如果发现数据库的版本发生了改变,会执行数据库的更改语句,以及时改变数据库。应用程序的锁定功能,交由监听程序。通过该类可以对数据直接进行增加删除等操作,将数据访问层与业务逻辑相分离。使各层之间解耦,易于程序的扩展与更改。6 综合测试6.1 测试目的及意义测试的目的,主要是为了保证各个功能模块能够正确运行。通过测试还可以发现一些未知的问题,并对这些问题加以修改,使之能够适应多种复杂的情况,使程序代码更加健

51、壮。通过测试还能够发现软件的缺陷,使软件使用起来更加方便。同时还可以改善用户体验,使软件设计更加人性化。6.2 测试方法对于该软件系统,我采用的是黑盒测试。这种测试方式在软件开发的领域是很常见的,用黑盒测试这种方式,比较容易找出一些系统内部的不容易被我们发现的错误。测试起来也相对简单一些,测试的时候可以采用Android自带的测试工具Monkey。让程序按照测试的次数进行随机的运行。我们只需要观察控制台的输出日志即可,如果发现很严重的问题,立即记录下来进行修改。使我们的程序系统更加的健壮,兼容性更好。6.3 部分模块测试6.3.1 程序主界面的启动(1)程序启动进入主界面当程序启动进入到应用的

52、展示界面的时候,会根据当前是否需要进行检测更新,来从服务器上获取更新信息,进行判断是否需要进行软件的更新。进入主界面看主界面各个模块的功能是否显示完整,各个功能模块是否能够点击进入。按住该卫士的主界面模块向右滑动看是否能够完整的显示设置中心的各个功能设置界面。主界面显示情况如图6.1所示。 图6.1 主界面(2)主界面内存占用情况显示在主界面启动时会根据当前系统内存占用情况显示内存的信息,根据不同的占用情况顶部背景的颜色显示也将不同。打开其他应用,看内存占用是否有变化。具体显示效果如图6.2所示。点击屏幕中上部带有数字的圆圈,看看是否进行内存清理。看通过卫士对手机内存的清理后,内存的使用情况等

53、信息是否发生变化。这样的清理,一般不会将系统进程的内存信息进行清理,所以内存的变化可能不会太大。在内存清理与程序启动进入时,内存占用情况会有相应的动画进行展示。看动画是否执行正确。 图6.2 内存占用情况显示6.3.2 程序锁功能 先将要锁定的程序添加到锁定程序列表,打开程序锁功能。查看锁定程序是否已添加,确保程序添加正确。打开锁定程序看是否提示输入密码,当密码输入正确时,看是否能够进入系统。执行结果如图6.3所示。 图6.3 程序锁功能界面6.3.3 通讯卫士与归属地测试将测试号码添加到黑名单中,开启黑名单拦截服务。用黑名单中的号码给安装了该安全卫士的手机拨打电话,看是否能够拨入。用已经添加

54、到黑名单中的号码,给安装了我们的安全卫士的手机发生送短信,看安装了我们的卫士的手机,能不能准确的的接收到黑名单中的号码发来的短信信息。用模拟器测试,给安装了我们的卫士的手机拨打电话,看看安装了卫士的模拟器是否能够正确的显示归属地信息。测试结果如图6.4所示。 图6.4 通讯卫士归属地显示结 束 语经过我近两个月的努力,我的这个手机卫士的系统终于完成了。心里非常的激动,也很有成就感。虽然该系统仍会存在着众多未知的问题,但是能将这么一个系统独立完成,心里还是很高兴的。相信这次的学习实践等,对日后的工作学习等都会有很大的帮助。现对自己在本次毕业设计过程中的一些想法总结一下:(一)收获在做之前心里还是

55、很担心的,因为有很多的知识没有接触过。在编写的过程中每当遇到困难的时候,有时会先在网上查查看,或者直接找我的指导老师进行沟通询问等。正式因为有问题有难点,所以才会去解决去学习。这也是我一直提醒自己的,要不断的学习新的知识,不要被社会所抛下,要赶超时代的脚本。确实,科技发展太快,真的不允许我们有半点的犹豫。你不学习,别人学习,你就落后了。遇到问题不要太冲动,要分析好问题的根源。找到问题的所在就很容易解决了。一开始可能有点着急,发现问题就不知所措。还好有指导老师的帮助,否则真不知道怎么办了。后来,也慢慢学会了自己解决。遇到问题也冷静了,不浮躁了。(二)不足之处系统内的部分功能实现不够完美,Andr

56、oid系统对用户的操作是有限制的,这是为了用户的安全考虑。所以,有些功能只能绕过去,不去涉及太底层。给用户体验不是很好,感觉功能不是很强大。各个模块的界面不够美观,这也是我一直想完善的。自己的美工功底已经算是极限了,这是令我很遗憾的。一个软件的UI还是很重要的。致 谢时间真的过得好快,四年的大学生活就这样匆匆过去了。离开学校,步入社会是个很艰难的过程。通过这次毕业设计我有很强的感受,自己独立完成一件事是多么的艰难。还好有张玉老师的指导与督促,否则我感觉真的是太难了。在此我对张老师表示由衷地感谢。能遇到张老师给我指导,算是我的福分。告诉我怎样组织语言,怎样搭建一个系统。方方面面够考虑的非常的周到。让我也学到了很多课上学不到的知识,把所学的知识都利用到系统中去。让各个知识相互结合,真心堪称完美。在我没有动力再继续进行下去的时候,张老师还会不断的给我打气,给我鼓励。没有抱怨没有批评,只有耐心的劝导。有的时候由于别的原因,毕业设计没能按照老师的要求时间内完成。张老师也耐心的督促,鼓励我们去写。现在想想真的很后悔,自己的事还不够一个外人上心,真是非常的惭愧。在此也想跟张老师说一句,老师,您真的辛苦了。参考文献1 孙伟.Android移动终端操作系统的安全分析j 软件.2013,34 2 王

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!