目 录
第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;@Overridepublic 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 {@Overridepublic 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平台的手机安全卫士的设计与实现相关推荐

  1. 基于 Android 平台的手机安全卫士的设计与实现【100010420】

    基于 Android 平台的手机安全卫士的设计与实现 第 1 章 引言 1.1 研究背景及意义 随着智能手机和网络的完美结合,使得智能机的功能越来越强大,浏览网页.网络购物.视频对话都普及到各个手机终 ...

  2. 基于android平台的手机安全卫士的设计与实现 开题报告,开题报告-基于android的手机安全卫士的设计与开发.doc...

    毕业设计开题报告 题 目: 基于Android的手机安全卫士的设计与开发 专 业 计算机科学与技术 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 电气信息工程学院 专 业 负 责 人 ...

  3. 基于android平台的手机游戏的设计与实现,基于Android平台手机游戏社区的设计与实现...

    摘要: 在移动终端性能的不断提高和移动互联网的不断普及,SNS社区以及不再只停留在电脑上,逐渐的走进了手机里,与以往的社区相比,手机社区有更好的实时性,以及能够更方便的提供LBS服务功能.目前每个社区 ...

  4. Android导航软件设计开发,基于Android平台的手机导航系统的设计与实现

    摘要: 互联网和移动智能技术的快速发展,平板电脑,智能手机,已经走进我们生活的方方面面,购物.外卖.租房.工作.旅游,医疗各个行业.我们无时无刻不在享受互联网和移动终端带来的便利.GPS全球卫星定位带 ...

  5. android教育游戏设计方案,基于Android平台的手机教育游戏设计与开发

    摘要: 随着信息化教育的飞速发展,以移动设备作为学习平台的学习方式,越来越受到学者们的重视.在当今时代,手机是移动设备的主流,尤其是使用安卓系统的手机用户越来越多.安卓手机以其系统完全开源的独特优势, ...

  6. Android毕业设计——基于Android+Eclipse的手机安全卫士设计与实现(毕业论文+程序源码)——手机安全卫士

    基于Android+Eclipse的手机安全卫士设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Eclipse的手机安全卫士设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  7. 基于Android平台的手机安全助手的设计与实现

    1.研究(设计)目的意义及国内外研究状况和应用前景(附参考文献): (一)选题的目的和意义 Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞 ...

  8. 基于Android的记账APP论文,基于Android平台的手机记账系统的设计与实现

    摘要: 在经济社会中,"理财"一词对于人们来说已不再陌生.人们的生活收入稳步上升,用于工作,住房,休闲娱乐的财务支出增多,做好详细的收支计划,将有利于对个人,家庭的经济收入,支出状 ...

  9. 基于android地图国内外研究,开题报告-基于Android平台的手机Web地图服务设计.doc...

    开 题 报 告 毕业设计题目: 基于Android平台的 手机Web地图服务设计 浙江理工大学本科毕业设计(论文)开题报告 班 级 10计算机科学与技术1班 姓 名 课题名称 基于Android平台的 ...

最新文章

  1. base64编码的作用【转】
  2. vue-router的基本使用
  3. Liferay 集群 (fail-over)
  4. ubuntu下打开matlab_ubuntu终端命令启动matlab方法
  5. 黑马程序员-4 String类和StringBuffer类
  6. html图片自动替换图片,十种图片替换文本CSS方法
  7. ActiveMQ的消息的(含附件)发送和接收使用
  8. inline函数的注意事项有哪些?
  9. 蛋糕是叫胚子还是坯子_这个生日蛋糕太适合手残党了,不会裱花也能做,学会再不买着吃了...
  10. python 日志框架_按日期打印Python的Tornado框架中的日志的方法
  11. 双系统重装Ubuntu经验分享
  12. 熟知ios与android游戏渠道的区别,艾瑞:2013Q4中国iOS官方游戏分发渠道和Android游戏分发渠道产品榜单热门产品情况...
  13. 怎么复制黑苹果config配置_[黑苹果硬件] 实用黑苹果配置推荐
  14. 【学习笔记】极其美妙的算法——FFT(快速傅里叶变换)
  15. 双舵轮AGV轨迹跟踪Pure Pursuit算法模型分析、python代码实现
  16. 树莓派Ubuntu20.04常见问题总结
  17. 精彩泄漏截图 2006最值得期待的游戏
  18. java开发中遇到的问题_Java开发过程中遇到的问题及解决方法
  19. 关于软件测试你必须知道的名词
  20. 计算机CPU工作(多核/缓存)原理

热门文章

  1. 2022-3-29 Leetcode 636.函数的独占时间
  2. EclipseTomcat服务器启动超时
  3. 2022-3-26 Leetcode 09.字符串轮转
  4. 2022-3-2 Leetcode213. 打家劫舍 II
  5. 软件测试进阶之路_心得体会
  6. 早起的故事-为什么早起?怎么早起?早起做什么?
  7. 基于物联网(IOT)技术的智慧楼宇运营管理平台介绍
  8. 聚类和判别分析小论文
  9. 简单记录一下开机自启动软件失效,无法自启的问题
  10. python缺少动态库libpython_浅析python 动态库m.so.1.0错误问题