毕业设计So Easy:Java实现手机APP安全卫士

简介: 很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......


针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!


2021052512212232[16].png


项目专栏:7天搞定毕业设计和论文


对计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~        


1、项目简介

本次毕业设计所实现的手机安全卫士是基于Android系统开发的,通过研究目前Android手机用户所面临的安全问题,开发出一款手机安全与管理软件。该软件的主要能包括手机防盗,在用户手机丢失后通过绑定的安全手机号码找回手机;通讯卫士,避免用户被不必要的短信或电话骚扰;程序锁,对某些特定的应用程序加锁,当手机解锁屏幕后第一次使用应用程序需输入密码;软件管理,用户可以运行、卸载或者分享自己喜欢的应用程序给好友;进程管理,通过桌面组件快捷方式管理运行中的进程,是手机保持最佳的运行状态。整个系统主要是通过Eclipse编程实现,其中编写了大量的Android自定义组件来美化系统界面。通过用例的方式说明整个系统的设计与实现和功能描述等。


项目资源下载请参见:https://download.csdn.net/download/m0_38106923/87883320


2、项目功能分析与设计

2.1、手机防盗功能需求分析与设计

落地有声:由于我的眼镜是透明的,经常一觉睡醒找不到眼镜,每次这个时候都想能通过手机控制眼镜发出声音以便更快的找到眼镜。落地有声就是由这个想法演变来的,如果用户的爱机刚被盗不久,那么手机还在用户附近的,如果此时设定的安全号码手机可以用,只需要用安全手机发送一条警报指令给丢失的手机,那么丢失的手机就会播放报警音乐,以便用户在第一时间找回丢失的爱机。


换卡先知:Android手机换SIM卡都需要重启手机,每次手机重启的时候判断当前SIM卡的串号是否和被保护的SIM卡的串号是否相同,如果不相同,则手机将在后台自动发送短信给安全手机,这样就在小偷不知道的情况下第一时间得知小偷的手机号码,大大提升找回手机的可能性。


远程开启防盗:当用户爱机没有开起防盗功能的时候,使用任意的手机发送应用和密码和远程开启防盗功能命令时可以开起防盗功能,并设置当前手机号码安全手机号码,从而为找回手机打下基础。


通信拦截:获取丢失的爱机的外拨电话、来电号码、外发短信和收到的短信,并转发给安全手机。这样就可以爱机丢失的第一时间和盗窃者取得联系,也获取了盗窃者朋友的手机号码,进一步增加找回手机的可能性,也大大影响了丢失爱机的正常使用,使盗窃者觉得丢失的爱机拿来也无用,还给手机主人好些。


保护隐私:当用户的爱机丢失时,通过短信发送特定的指令,可将丢失手机通讯录里面的所有联系人、通话记录以及短信内容全部删除,及时保护用户的相关隐私信息。


充电防盗:在某些特殊的场合,用户的爱机急需充电,而用户又不在手机周围,这时开启手机充电防盗就能很好地监控手机的状况,一旦有其他人蓄意拔出正在充电的手机,手机就会立即发出警报音,并同时发送短信通知安全手机。


2.2、通讯卫士功能需求分析与设计

电话拦截:将指定的号码加入电话拦截列表中,那么下次在该号码来电的时候不会通知用户,直接在后台挂断电话,防止用户被别人打骚扰电话。


短信拦截:将指定的号码加入到短信拦截列表中,那么下次在该号码发送短信来的时候删除这条短信,避免用户被垃圾信息骚扰。


全部拦截:将指定的号码加入到全部截列表中,那么下次该号码发送来的短信和拨打的电话都会被阻止调,避免用户被骚扰。


2.3、软件管理功能需求分析与设计

按用户程序和系统程序分类管理手机中的应用程序,可以查看、执行、卸载和分享用户程序。而系统程序只能被查看和执行。


2.4、进程管理功能需求分析与设计

目前市面上的某些Android手机性能并不是很好,多开几个应用程序就会很卡,而正在运行的程序中有些并不是用户所需要的,通过系统服务获得系统中正在运行的应用总数和手机中剩下的内存信息以及运行中进程详细信息展示给用户,然后提供后台进程停止选项,根据用户的选择终止特定的应用程序。并且提供一个桌面组件给用户,使其能在桌面上点一个按钮就能清理正在运行的应用程序。


2.5、程序锁功能需求分析与设计

在日常生活中,好友之间可能会互相借手机打电话或者是玩游戏,但是用户不想让好友看自己手机里的某些私密应用程序,如果给手机的锁屏加上密码,那么每次解锁屏幕的时候都得输入密码,自己用着也会麻烦,而且手机解锁屏幕后给玩游戏的话好友可以操作手机上的任意一个应用程序。


程序锁功能就是为了解决以上问题,用户不必给屏幕加密码锁,只需要给特定的应用加上应用锁就可以了,只有解屏后第一次进入加锁的应用程序才会要求输入程序锁密码,在应用解锁后只要没有锁屏的情况下,即使用户退出应用程序界面再次进入时不需要输入密码,此时如果好友再让你借手机给他玩,那么用户只需要把屏幕关闭后给他,除了用户的加锁程序,其他程序好友都可以玩。


2.6、手机杀毒功能需求分析与设计

手机安全厂商和各大应用市场收集了市面上常见的病毒软件,本功能需要收集他们所提供的病毒软件的包名,将其存储到本地数据库中,在执行病毒扫描的时候将手机中所有已安装的用户程序包名与病毒数据库中的包名进行对比,如果相同则询问用户是否卸载该应用程序。


2.7、系统优化功能需求分析与设计

清理应用程序缓存在手机中的缓存数据,但是这需要具备root权限,所以本应用的实现方式打开系统自带的查看应用程序详细信息界面,在该界面中清理缓存数据。


2.8、自动升级功能需求分析与设计

70221fa2b2494f639fd112f7c065b425.png


3、项目实现

3.1、欢迎界面实现

该界面的主要功能是显示软件升级信息和初始化应用程序,如果服务器的最新版本和当前版本相同则显示应用的当前版本信息,否则显示提示升级信息对话框,用户根据需要自行决定是否升级。


57594285a11f40b8a359778f551eaff5.png9bbefac221574fadbef5119ce0e88068.png


3.2、检查升级功能实现

判断当前用户是否设置了自动更新应用程序,手机有没有链接wifi,如果有设置自动更新并且已链接wifi,则从服务器获取最新版本信息和本地版本对比,如果本地版本号低于服务器版本号,则弹出升级对话框供用户选择是否立即升级。


3.3、升级对话框显示功能实现

升级对话框采用自定义的对话框,创建一个自定义对话框类继承于Dialog类,其关键是编写自定义布局文件和重写构造方法,实现该对话框能在应用的其他功能模块中能重用。


首先通过抽取样式文件,达到样式代码的重用,然后通过重写构造方法,根据不同的应用场景传递不同的参数,达到自定义对话框的重用。


3.4、应用程序主界面实现

应用程序主页是展示程序的各个功能模块,从而使用户能够快速进入到自己想使用的功能。该界面的另一个很重要的功能就是修改程序锁密码,在该界面连续三次点击菜单按钮弹出修改密码对话框。

44f1afb7f18d4057b9cb6d875dcd5e84.png8650ff7bc74f43cdaccd64d436bd6bfc.png


3.5、程序锁实现

通过帧布局实现Android界面的复杂布局,在页面的底部放置两个按钮控制FrameLayout里的两个ListView的显示与否,模拟出TabHost的效果。由于已加锁应用和未加锁应用列表极其相似,所以这里只需在编写一个ListView适配器,在适配器中通过一个flag标记区分当前适配器是未加锁适配器还是已加锁适配器。为了提升程序锁的运行效率,不每次都从数据库中获取最新已加锁应用程序列表,而是用两个集合来分表保存已加锁应用程序和临时不需要保护的应用程序,在每一次收到锁屏事件的时候清空临时不需要保护的集合,在解锁某一个应用程序的时候将该应用程序加入到临时停止保护的集合中。需要注意的是,这里需要通过代码的方式注册监听锁屏事件的广播和解屏事件的广播。


41dc45d9f8f2437baf4f595156abf7ab.png91dbe4569af346418be2665549aa1d08.png88b55567104f406999dd83e3059a2358.png


3.6、手机防盗实现

手机防盗界面主要是编写ListView及其适配器,根据用户点击不同的条目弹出不同类型的自定义对话框,有些对话框功能不同,但是内容的格式完全相同,这就需要重写自定义度画框的构造方法,根据传入参数的不同显示不同内容和类型的自定义对话框。


d2dc94b2646c42c58a43bfb85db8d931.png7a1c80a01f7648a2bc8f6ae09c4771d9.png


3.7、手机杀毒实现

在Android系统中,每一个应用程序都有一个签名信息。通过反编译360手机安全卫士,获取离线病毒数据库,该数据库中存放了世面上已经存在的病毒应用的签名的MD5信息。当用户进入手机杀毒界面时,通过系统API提供的包管理器获取系统中已安装应用的签名MD5信息,并与离线数据库中的信息对比,如果该签名信息在病毒数据库中存在,则弹出对话框提示用户卸载包含病毒信息应用的应用程序。


97f17cadd7744f9b8faf81b274919edb.png7f31708bb06b4ab3a8557e15c7d163d3.png

3.8、系统优化实现

通过系统API提供的包管理器获取每个应用程序所占的存储空间,并通过ListView展示给用户,由于Google工程师为了提升Android系统的安全性,没有Root权限不能删除其他应用的数据信息,本应用的实现方式是当用户点击某个应用条目时,通过显式意图跳转到系统自带应用数据信息清理界面清理缓存数据。


11fb7511d7694d6c8abb29b24460c1f4.png


3.9、通讯卫士实现

通讯卫士界面主要也是便表列表和适配器,在注册监听电话到来和短信到来事件的广播接收者时,需要将其优先级设置到最大值,以确保本应用最先收到这两个广播事件,在第一时间挂断电话以及删除最近一条通话记录和短信记录,避免用户看到脏数据。


59a129e9e8464d419acb91a73ac23f0a.pngd0c5d343c541423d9d070235d748fdda.png


3.10、软件管理实现

通过系统API提供的包管理器,获取手机中已安装的应用程序并通过ListView展示给用户,当用户点击某个应用条目后,通过弹出PupupWindow显示功能对话框。当用户点击运行按钮时,通过显式意图运行某个应用程序。当用户点击卸载按钮时,通过隐式意图调用系统软件管理器卸载软件。当用户点击分享按钮时,通过调用系统短信发送器发送要分享的应用的基本信息以及在GooglePlay上的下载地址给好友。


2aa8d5f231584ab59afa4cd073dab2d6.png


3.11、高级工具实现

高级工具主要提供手机号码归属地查询和常用号码查询功能。通过反编译QQ通讯录,获取手机号码归属地数据库,将用户输入的手机号码与该数据库中的数据进行匹配获取手机号码归属地并显示给用户。通过互联网获取常用手机号码,并录入到自定义数据库中,用户查看常用号码时将该数据库中的数据显示给用户,当用户点击通用号码条目时,通过隐式意图跳转拨号界面。


6e815eafd510450d8dfa66df8e26cee7.png3f8b1c124cb044f7adaa09af4c59a9f3[0].png

3.12、系统设置实现

系统设置界面的难点是通过自定义组合控件的方式实现自定义view,从而使每一个设置条目只需要引用一个组件,实现代码的复用。为了防止用户打开android系统自带的设置界面关掉安全卫士中的某些服务出现脏数据,每次显示该界面的时候必须在onStart方法内重新获取最新数据。

db1c847606ac4d96b4bbd04e1ae54c3c.pngea8e789e3d0c4eb2989c995d217075a4.png


项目资源下载请参见:https://download.csdn.net/download/m0_38106923/87883320


相关文章
|
22天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
44 4
|
2月前
|
安全 Java 编译器
Java 泛型深入解析:类型安全与灵活性的平衡
Java 泛型通过参数化类型实现了代码重用和类型安全,提升了代码的可读性和灵活性。本文深入探讨了泛型的基本原理、常见用法及局限性,包括泛型类、方法和接口的使用,以及上界和下界通配符等高级特性。通过理解和运用这些技巧,开发者可以编写更健壮和通用的代码。
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
3月前
|
安全 Java API
java安全特性
java安全特性
29 8
|
3月前
|
安全 Java API
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
71 11
|
3月前
|
安全 Java API
【本地与Java无缝对接】JDK 22外部函数和内存API:JNI终结者,性能与安全双提升!
【9月更文挑战第6天】JDK 22的外部函数和内存API无疑是Java编程语言发展史上的一个重要里程碑。它不仅解决了JNI的诸多局限和挑战,还为Java与本地代码的互操作提供了更加高效、安全和简洁的解决方案。随着FFM API的逐渐成熟和完善,我们有理由相信,Java将在更多领域展现出其强大的生命力和竞争力。让我们共同期待Java编程新纪元的到来!
105 11
|
4月前
|
数据采集 供应链 JavaScript
分享基于Java开发的Java毕业设计实战项目题目
这篇文章分享了67套基于Java开发的毕业设计实战项目题目,覆盖了互联网、企业管理、电子政务、Java基础项目、ERP系统、校园相关、医疗以及其他细分行业等多个领域,并推荐了使用IDEA、Vue和Springboot的技术栈。
|
4月前
|
安全 算法 Java
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
|
4月前
|
Java
【Java集合类面试十二】、HashMap为什么线程不安全?
HashMap在并发环境下执行put操作可能导致循环链表的形成,进而引起死循环,因而它是线程不安全的。
|
4月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?