基于Android平台的手机安全卫士的设计与实现

这篇具有很好参考价值的文章主要介绍了基于Android平台的手机安全卫士的设计与实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目 录
第1章 引言 1
1.1 研究背景及意义 1
1.2 安全软件的现状 1
1.3 本文主要工作 2
1.4 本文的组织结构 2
第2章 Android的相关技术介绍及分析 3
2.1 搭建Android开发环境 3
2.1.1 搭建Ubuntu系统下Java开发环境 3
2.1.2 搭建Ubuntu系统下Android开发环境 3
2.2 Android项目目录结构 4
2.3 Activity 5
2.3.1 Activity生命周期方法 5
2.3.2 与其他应用程序交互 5
2.4 BroadcastReceiver 6
2.4.1 广播接收者的分类 6
2.4.2 注册广播接收者的两种方式 6
2.5 Service 7
2.5.1 什么是服务 7
2.5.2 本地服务 7
2.5.3 远程服务 7
第3章 手机安全卫士分析与设计 8
3.1 手机防盗功能需求分析与设计 8
3.2 通讯卫士功能需求分析与设计 9
3.3 软件管理功能需求分析与设计 10
3.4 进程管理功能需求分析与设计 10
3.5 程序锁功能需求分析与设计 10
3.6 手机杀毒功能需求分析与设计 11
3.7 系统优化功能需求分析与设计 12
3.8 自动升级功能需求分析与设计 12
第4章 手机安全卫士详细设计与实现 13
4.1 欢迎界面实现 13
4.1.1 检查升级功能实现 14
4.1.2 升级对话框显示功能实现 14
4.2 应用程序主界面实现 14
4.3 程序锁实现 16
4.4 手机防盗实现 18
4.5 手机杀毒实现 19
4.6 系统优化实现 21
4.7 通讯卫士实现 21
4.8 软件管理实现 23
4.9 高级工具实现 23
4.10 系统设置实现 25
第5章 结论与展望 27
5.1 结论 27
5.2 进一步工作的方向 27
参考文献 28
致 谢 29
第3章手机安全卫士分析与设计
手机防盗功能需求分析与设计
落地有声:由于我的眼镜是透明的,经常一觉睡醒找不到眼镜,每次这个时候都想能通过手机控制眼镜发出声音以便更快的找到眼镜。落地有声就是由这个想法演变来的,如果用户的爱机刚被盗不久,那么手机还在用户附近的,如果此时设定的安全号码手机可以用,只需要用安全手机发送一条警报指令给丢失的手机,那么丢失的手机就会播放报警音乐,以便用户在第一时间找回丢失的爱机。
换卡先知:Android手机换SIM卡都需要重启手机,每次手机重启的时候判断当前SIM卡的串号是否和被保护的SIM卡的串号是否相同,如果不相同,则手机将在后台自动发送短信给安全手机,这样就在小偷不知道的情况下第一时间得知小偷的手机号码,大大提升找回手机的可能性。
远程开启防盗:当用户爱机没有开起防盗功能的时候,使用任意的手机发送应用和密码和远程开启防盗功能命令时可以开起防盗功能,并设置当前手机号码安全手机号码,从而为找回手机打下基础。
通信拦截:获取丢失的爱机的外拨电话、来电号码、外发短信和收到的短信,并转发给安全手机。这样就可以爱机丢失的第一时间和盗窃者取得联系,也获取了盗窃者朋友的手机号码,进一步增加找回手机的可能性,也大大影响了丢失爱机的正常使用,使盗窃者觉得丢失的爱机拿来也无用,还给手机主人好些。
保护隐私:当用户的爱机丢失时,通过短信发送特定的指令,可将丢失手机通讯录里面的所有联系人、通话记录以及短信内容全部删除,及时保护用户的相关隐私信息。
充电防盗:在某些特殊的场合,用户的爱机急需充电,而用户又不在手机周围,这时开启手机充电防盗就能很好地监控手机的状况,一旦有其他人蓄意拔出正在充电的手机,手机就会立即发出警报音,并同时发送短信通知安全手机。

package com.bingoogol.frogcare;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import android.app.Activity;
import android.app.Application;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Process;

import com.bingoogol.frogcare.util.Constants;
import com.bingoogol.frogcare.util.DateUtil;
import com.bingoogol.frogcare.util.Logger;
import com.bingoogol.frogcare.util.SpUtil;
import com.bingoogol.frogcare.util.StorageUtil;
import com.bingoogol.frogcare.util.ToastUtil;

/**
 * 保存应用程序全局状态的基类
 * 
 * @author bingoogol@sina.com 2014-4-25
 */
public class App extends Application {
	private static final String TAG = "App";

	/**
	 * 应用程序中所有正在使用的activity集合,主要是用来实现完全退出应用程序功能
	 */
	private List<Activity> mActivities;

	/**
	 * 上一次按下返回键时的时间戳
	 */
	private long lastTime;

	@Override
	public void onCreate() {
		super.onCreate();
		mActivities = new ArrayList<Activity>();
		SpUtil.init(this);
		Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
	}

	/**
	 * 添加activity到全局状态中
	 * 
	 * @param activity
	 */
	public void addActivity(Activity activity) {
		mActivities.add(activity);
	}

	/**
	 * 从全局状态中移除activity
	 * 
	 * @param activity
	 */
	public void removeActivity(Activity activity) {
		mActivities.remove(activity);
	}

	/**
	 * 双击返回键退出应用程序
	 */
	public void exitWithDoubleClick() {
		if (System.currentTimeMillis() - lastTime <= 1500) {
			exit();
		} else {
			lastTime = System.currentTimeMillis();
			ToastUtil.makeText(this, R.string.exit_tips);
		}
	}

	/**
	 * 退出应用程序
	 */
	public void exit() {
		for (Activity activity : mActivities) {
			activity.finish();
		}
		System.exit(0);
	}

	private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {

		@Override
		public void uncaughtException(Thread thread, Throwable ex) {
			FileWriter fw = null;
			try {
				File file = new File(StorageUtil.getFeedbackDir(), DateUtil.dateToDayString(new Date()) + ".log");
				boolean flag = file.exists();
				// 这行执行完,file就存在了,所以得在这之前判断文件是否已经存在
				fw = new FileWriter(file, true);
				if (!flag) {
					fw.write("当前应用版本:" + getCurrentVersionName() + "\n");
					fw.write("当前设备信息:\n");
					fw.write(getMobileInfo());
					fw.write("----------------------------------------------------------------------------\n");
				}
				fw.write(getErrorInfo(ex));
				fw.write("----------------------------------------------------------------------------\n");
				fw.flush();
				// TODO 正式发布后删掉
				ex.printStackTrace();
			} catch (Exception e) {
				Logger.e(TAG, e.getMessage());
			} finally {
				if (fw != null) {
					try {
						fw.close();
					} catch (IOException e) {
						Logger.e(TAG, e.getMessage());
					}
				}
			}
			Process.killProcess(Process.myPid());
			// TODO 定期上传错误日志到服务器
		}

		private String getErrorInfo(Throwable throwable) {
			Writer writer = new StringWriter();
			PrintWriter pw = new PrintWriter(writer);
			throwable.printStackTrace(pw);
			pw.close();
			return writer.toString();
		}

		private String getMobileInfo() {
			StringBuffer sb = new StringBuffer();
			// 通过反射获取系统的硬件信息
			try {
				Field[] fields = Build.class.getDeclaredFields();
				for (Field field : fields) {
					// 暴力反射 ,获取私有的信息
					field.setAccessible(true);
					sb.append(field.getName() + "=" + field.get(null).toString());
					sb.append("\n");
				}
			} catch (Exception e) {
				Logger.e(TAG, e.getMessage());
			}
			return sb.toString();
		}

	}

	/**
	 * 获取当前版本名称
	 * 
	 * @return
	 */
	public String getCurrentVersionName() {
		try {
			return getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
		} catch (Exception e) {
			// 利用系统api getPackageName()得到的包名,这个异常根本不可能发生
			return null;
		}
	}

	/**
	 * 获取当前版本号
	 * 
	 * @return
	 */
	public int getCurrentVersionCode() {
		try {
			return getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
		} catch (Exception e) {
			// 利用系统api getPackageName()得到的包名,这个异常根本不可能发生
			return 0;
		}
	}

	/**
	 * 获取安装apk文件的意图对象
	 * 
	 * @param apkFile
	 *            要安装的apk文件
	 * @return
	 */
	public Intent getInstallApkIntent(File apkFile) {
		Intent installApkIntent = new Intent();
		installApkIntent.setAction(Intent.ACTION_VIEW);
		installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);
		installApkIntent.setDataAndType(Uri.fromFile(apkFile), Constants.mime.APK);
		return installApkIntent;
	}
}

基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现
基于Android平台的手机安全卫士的设计与实现文章来源地址https://www.toymoban.com/news/detail-494658.html

到了这里,关于基于Android平台的手机安全卫士的设计与实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Andriod平台的手机Web地图服务设计(源码+开题)

    本系统 (程序+源码) 带文档lw万字以上   文末可获取一份本项目的java源码和数据库参考。 研究背景 随着移动互联网的迅猛发展,智能手机已成为人们生活中不可或缺的一部分。在这样的背景下,基于Android平台的手机Web地图服务应运而生,它不仅满足了用户在移动设备上对

    2024年02月21日
    浏览(41)
  • 基于Android的手机新闻客户端的设计与开发

    摘要: 随着手机的普及,人们获取与保存信息的方式已经发生了彻底的转变。智能手机已经融入了我们的生活,并影响和改变着我们每个人的生活。由于现在各种各样智能手机的普及,使得人们在管理、生活及服务等各个领域使用数据变得更加简洁,更加方便,大大提高了人

    2024年02月02日
    浏览(41)
  • Java基于Andriod平台的手机Web地图服务设计(源码+mysql+文档)

    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考 选题背景: 随着移动互联网的快速发展,智能手机已经成为人们生活中不可或缺的一部分。而地图服务作为智能手机的重要功能之一,为用户提供了方便快捷的定位、导航和搜索服务。然而,传统的桌

    2024年01月25日
    浏览(45)
  • ssm/php/node/python基于Andriod平台的手机Web地图服务设计(源码+mysql+文档)

    本系统 (程序+源码) 带文档lw万字以上    文末可领取本课题的JAVA源码参考 选题背景: 随着移动互联网的快速发展,智能手机已经成为人们日常生活中不可或缺的工具。而地图服务作为智能手机的重要功能之一,为用户提供了方便快捷的定位、导航和地理信息查询等服务

    2024年01月21日
    浏览(46)
  • 智能手机主动安全防护系统设计与实现

    论文下载链接《智能手机主动安全防护系统设计与实现》 智能手机主动安全防护系统设计与实现 Design and Implementation of an Active Security Protection System for Smartphones 目录 2 摘要 3 4 第一章 绪论 4 1.1 研究背景 4 1.2 研究目的与意义 5 1.3 相关技术综述 6 第二章 智能手机主动安

    2024年02月05日
    浏览(61)
  • 基于SSM框架的手机商城设计与实现

    目 录 摘 要 I Abstract II 1绪论 1 1.1系统开发背景 1 1,2研究现状 1 1.3研究主要内容 2 2相关技术 4 2.1 SSM的技术原理 4 2.1.1 SSM语言及其特点 4 2.1.2 Java及Java Servlets概述 5 2.1.3 JavaBean简介 5 2.2 服务器配置 6 2.2.1 Tomcat安装及配置 7 2.2.2 数据库配置 7 3系统分析 10 3.1 可行性分析 10 3.1.1 技术

    2024年02月10日
    浏览(41)
  • 基于欢迪迈手机商城设计与开发的设计与实现

    系统包含:源码+开题+任务+论文+说明文档 所用技术:SpringBoot+Mybatis+Mysql 获取资料请滑到底部获取联系方式 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本欢迪迈手机商城就是在这样的大

    2024年03月17日
    浏览(51)
  • 用户隐私安全卫士——小程序沙箱

    随着数字经济的发展,中国有越来愈多个数据,但数据泄露风险也越来越大。根据IDC数据23%,2022年我们产生了23.3ZB的全球数字(2017年为6.5%),预计2026年将超过美国成为世界上最大的数据生产国。因此,数据安全问题愈加重要。 沙箱也称作“沙盒/沙盘”,是一种安全机制,

    2023年04月18日
    浏览(36)
  • 基于java图片分享平台设计与实现

    【用户功能模块】 (1)登录功能:注册普通账号登录;登录后可以修改用户的基本信息,也可以退出。 (2)浏览资讯:浏览网站管理发布的资讯,可以评论,评论后需要管理员审核和查看。也可以收藏资讯。 (3)关于我们:浏览网站关于我们的信息,涉及关于我们、联系我们、加

    2024年02月12日
    浏览(38)
  • 智能客服平台的架构设计,实现高效、安全、可靠的服务运行

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着互联网技术的飞速发展,互联网服务行业也在蓬勃发展,客服系统作为企业的重要基础设施之一,承载了用户咨询、投诉、建议等交互环节。然而,传统的客服系统在处理海量用户请求、提供高效稳定的服务方面存在诸

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包