版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页)信息同步系统之手机安全卫士设计与实现——手机防盗、通讯卫士、软件管理摘要:本系统正是针对那些恶意应用的,详细的阐述了手机安全卫士的开发流程,包括手机防盗、通讯卫士、软件管理、进程管理、手机杀毒、系统优化、高级工具、设置中心等功能模块。整体项目采用MVC框架,是对安卓知识点的综合应用,用到的技术有(活动,服务,广播接收者,内容提供这,唤醒机制,数据库,自定义标题,自定义控件,小部件,进程间通讯等)。关键词:手机卫士;安卓开发平台;MVC框架;数据库Abstract:
Thesystemisaimedatthosemaliciousapplications,describesindetailthemobilephonesecurityguardsofthedevelopmentprocess,includingmobilephoneanti-theft,communicationguard,softwaremanagement,processmanagement,mobilephoneantivirus,systemoptimization,advancedtools,setthecenterfunctionmodule.ThewholeprojectusingtheMVCframework,itisacomprehensiveapplicationforAndroidknowledgepoint,useofTechnology(activities,services,broadcastreceivers,contentprovidingthis,wake-upmechanism,database,acustomtitle,customcontrols,smallparts,interprocesscommunication).TheprojectisthroughtheXMLfilelayoutonthepage,thebackgroundusingjavacodetoachieveeachbusinesslogicprocess,completetheneedsofeachpageinthe.
Keywords:mobilephoneguardian;Androiddevelopmentplatform,;MVCframework,;database1绪论1.1背景本次开发是由安博教育和学校发起,学生自主选题的一次毕业设计。伴随智能手机的不断普及,移动互联网的快速发展,伴随着3G时代的到来,智能手机的广泛应用,安卓成为活跃用户量最大的移动终端操作系统,并且安卓操作系统是开放源代码的,所以每个人都可以开发出一个安卓应用,导致安卓的应用数不胜数。由于安卓的开源,导致每个人可以对安卓端的软件进行编写,而有些开发者在应用中加入一些非法的代码,窃取用户的隐私,使得手机的安全问题日益明显,手机安全问题关注度日益提高。随着Android平台的发展和普及,Android已经成为恶意代码的下一个肆虐之地,这里我把一些漏洞的原理和技巧加以整理总结,起到抛砖引玉的作用,希望大家能够把这些知识用到以后反病毒和软件保护的工作中.不需要懂得信息安全的人是幸福的,而我们的职责是保障他们的幸福。1.2开发思路和计划在和指导老师多次交流后,确定实现方案的要点和工作计划。整体项目采用MVC框架,是对android知识点的综合应用,用到的技术有activity,service,broadcast,contentprovider,Notification,sqlite数据库,自定义title,自定义控件,widget,aidl进程间通讯等,本项目所实现的功能如下:①手机防盗:根据预设参数,判断手机是否被盗,根据自定义协议发送手机中SIM卡的信息和手机的位置信息给安全号码。可远程通过短信指令,给手机设置锁屏密码,远程锁定手机屏幕,远程格式化手机SD卡,恢复出厂设置,极大的保护用户的隐私安全,通过aidl注册admin设备,一般用户无法卸载该程序。②通讯卫士:来电号码归属地显示,来电归属地位置的调整,来电黑名单/短信黑名单管理。电话短信备份和还原,保护手机的数据和通讯安全。③软件管理:系统软件和本地软件,可以显示软件的详细信息,启动、删除、分享应用程序。程序锁可以指定要保护的程序,用户进入要保护的程序之前必须输入密码。④进程管理:显示当前系统运行的进程信息,显示系统内存信息,可以杀死某个进程,批量杀死进程,通过桌面widget实时展现用户当前的手机内存状态。⑤手机杀毒:从服务器下载最新的病毒库,根据程序的包名和程序的数字签名识别病毒,提示用户并查杀恶意软件,使吸费木马无处可藏。⑥系统优化:清理手机缓存,提高手机性能,优化电池管理。⑦高级工具:手机号码归属地查询,更改归属地位置,常用号码查询。⑧设置中心:可以对是否开启防盗、是否开启程序锁服务等功能进行设置,还可以更改来去电显示的风格。我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据库结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。2系统需求2.1范围本次开发的系统为手机安全卫士。用于广大Android手机用户,包括手机防盗、通讯卫士、软件管理、进程管理、流量统计、手机杀毒、系统优化、高级工具、设置中心。我所负责的模块是手机防盗、通讯录卫士、软件管理这三个模块!2.2定义MSMobileSafe(手机安全卫士)的缩写。2.3功能需求1)手机防盗:进入“手机防盗”模块,提示用户设置手机保护密码,设置密码成功或已经设置后进入保护程序,其主要功能有:SIM卡变更通知、GPS追踪、远程销毁数据、远程报警2)通讯录卫士:根据用户预设的电话号码,拦截该号码的电话或者短信。3)软件管理:软件分享、启动或者卸载。3模块一:手机防盗模块3.1手机防盗--业务处理流程3.1.1设置界面处理流程图3-1-1设置界面流程图3.1.2手机防盗处理流程图3-1-2手机防盗处理流程图3.2手机防盗--界面设计图3-2-1手机防盗界面3.3手机防盗--代码实现(主要代码实现)publicclassLostProtectedActivityextendsActivityimplementsOnClickListener{ privatestaticfinalStringTAG="LostProtectedActivity"; privateSharedPreferencessp; privateEditTextet_first_dialog_pwd; privateEditTextet_first_dialog_pwd_confirm; privateButtonbt_first_dialog_ok; privateButtonbt_first_dialog_cancle; privateEditTextet_normal_dialog_pwd; privateButtonbt_normal_dialog_ok; privateButtonbt_normal_dialog_cancle; privateTextViewtv_lost_protect_number; privateRelativeLayoutrl_lost_protect_setting; privateCheckBoxcb_lost_protect_setting; privateTextViewtv_lost_protect_reentry_setup; privateAlertDialogdialog; protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); sp=getSharedPreferences("config",MODE_PRIVATE); if(isSetupPwd()){ showNormalEntryDialog(); }else{howFirstEntryDialog();}} privatevoidshowFirstEntryDialog(){ AlertDialog.Builderbuilder=newBuilder(this); Viewview=View.inflate(this,R.layout.first_entry_dialog,null); et_first_dialog_pwd=(EditText)view.findViewById(R.id.et_first_dialog_pwd); et_first_dialog_pwd_confirm=(EditText)view.findViewById(R.id.et_first_dialog_pwd_confirm); bt_first_dialog_ok=(Button)view.findViewById(R.id.bt_first_dialog_ok); bt_first_dialog_cancle=(Button)view.findViewById(R.id.bt_first_dialog_cancle); bt_first_dialog_cancle.setOnClickListener(this); bt_first_dialog_ok.setOnClickListener(this); builder.setView(view); dialog=builder.create(); dialog.show(); }3.4手机防盗--实际运行测试图3-4-1实际运行图4模块二:通讯录卫士模块4.1通讯录卫士--业务处理流程图4-1-1业务处理流程图4.2通讯录卫士--界面设计4.2.1主界面图4-2-1主界面设计图4.2.2添加号码界面图4-2-2号码添加界面设计4.3通讯录卫士--代码实现(主要代码实现)publicclassCallSmsSafeActivityextendsActivity{ protectedstaticfinalintLOAD_DATA_FINISH=40; publicstaticfinalStringTAG="CallSmsSafeActivity"; //用于展现出所有的黑名单号码 privateListViewlv_call_sms_safe; //操作黑名单号码数据库的对象 privateBlackNumberDaodao; privateList<BlackNumber>blacknumbers; //显示黑名单号码的适配器对象 privateBlackNumberAdapteradpater; //ProgressBar控件的父控件,用于控制子控件的显示(包括了ProgressBar) privateLinearLayoutll_call_sms_safe_loading; //privateStringinitnumber; //用于接收子线程发送过来的消息,实现UI的更新 privateHandlerhandler=newHandler(){ publicvoidhandleMessage(android.os.Messagemsg){ switch(msg.what){ caseLOAD_DATA_FINISH://从数据库中加载黑名单号码完成 ll_call_sms_safe_loading.setVisibility(View.INVISIBLE); //为lv_call_sms_safe设置适配器 adpater=newBlackNumberAdapter(); lv_call_sms_safe.setAdapter(adpater); break;}};}; protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.call_sms_safe); ll_call_sms_safe_loading=(LinearLayout)findViewById(R.id.ll_call_sms_safe_loading); dao=newBlackNumberDao(this); lv_call_sms_safe=(ListView)findViewById(R.id.lv_call_sms_safe); ll_call_sms_safe_loading.setVisibility(View.VISIBLE); registerForContextMenu(lv_call_sms_safe); newThread(){ publicvoidrun(){ blacknumbers=dao.findAll(); Messagemsg=Message.obtain(); msg.what=LOAD_DATA_FINISH; handler.sendMessage(msg);}; }.start();} publicvoidonCreateContextMenu(ContextMenumenu,Viewv, ContextMenuInfomenuInfo){ super.onCreateContextMenu(menu,v,menuInfo); MenuInflaterinflater=getMenuInflater(); inflater.inflate(R.menu.call_sms_safe_menu,menu);} publicbooleanonContextItemSelected(MenuItemitem){ AdapterContextMenuInfoinfo=(AdapterContextMenuInfo)item.getMenuInfo(); intposition=(int)info.id; switch(item.getItemId()){ caseR.id.item_delete: Log.i(TAG,"删除黑名单记录"); deleteBlackNumber(position); returntrue; caseR.id.item_update: Log.i(TAG,"更新黑名单记录"); updateBlackNumber(position); returntrue; default: returnsuper.onContextItemSelected(item); } } publicvoidaddBlackNumber(Viewview){ showBlackNumberDialog(0,0); } privatevoidshowBlackNumberDialog(finalintflag,finalintposition){ AlertDialog.Builderbuilder=newBuilder(this); Viewdialogview=View.inflate(this,R.layout.add_black_number,null); finalEditTextet_number=(EditText).findViewById(R.id.et_add_black_number); finalCheckBoxcb_phone=(CheckBox)dialogview .findViewById(R.id.cb_block_phone); finalCheckBoxcb_sms=(CheckBox)dialogview .findViewById(R.id.cb_block_sms); TextViewtv_title=(TextView)dialogview .findViewById(R.id.tv_black_number_title); if(flag==1){ tv_title.setText("修改"); BlackNumberblackNumber=(BlackNumber)lv_call_sms_safe .getItemAtPosition(position); Stringoldnumber=blackNumber.getNumber(); et_number.setText(oldnumber); intm=blackNumber.getMode(); if(m==0){ cb_phone.setChecked(true); cb_sms.setChecked(false); }elseif(m==1){ cb_sms.setChecked(true); cb_phone.setChecked(false); }else{ cb_phone.setChecked(true); cb_sms.setChecked(true);}} builder.setView(dialogview); builder.setPositiveButton("确定",newDialogInterface.OnClickListener() publicvoidonClick(DialogInterfacedialog,intwhich){ Stringnumber=et_number.getText().toString().trim(); if(flag==1&&dao.find(number)){ Toast.makeText(getApplicationContext(),"号码已经存在",0).show(); return;} if(TextUtils.isEmpty(number)){ return; }else{ booleanresult=false; BlackNumberblacknumber=newBlackNumber(); blacknumber.setNumber(number); if(cb_phone.isChecked()&&cb_sms.isChecked()){ if(flag==0){//flag=1表示是添加黑名单号码 result=dao.add(number,"2"); blacknumber.setMode(2); }else{ BlackNumberblackNumber=(BlackNumber)lv_call_sms_safe .getItemAtPosition(position); dao.update(blackNumber.getNumber(),number,"2"); blackNumber.setMode(2); blackNumber.setNumber(number); adpater.notifyDataSetChanged();} }elseif(cb_phone.isChecked()){ if(flag==0){ result=dao.add(number,"0"); blacknumber.setMode(0); }else{ BlackNumberblackNumber=(BlackNumber)lv_call_sms_safe .getItemAtPosition(position); dao.update(blackNumber.getNumber(),number,"0"); blackNumber.setMode(0); blackNumber.setNumber(number); adpater.notifyDataSetChanged();} }elseif(cb_sms.isChecked()){ if(flag==0){ result=dao.add(number,"1"); blacknumber.setMode(1); }else{ BlackNumberblackNumber=(BlackNumber)lv_call_sms_safe .getItemAtPosition(position); dao.update(blackNumber.getNumber(),number,"1"); blackNumber.setMode(1); blackNumber.setNumber(number); adpater.notifyDataSetChanged();} }else{Toast.makeText(getApplicationContext(),"拦截模式不能为空",0).show(); return;} if(result){ blacknumbers.add(blacknumber); adpater.notifyDataSetChanged();}}}}); builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich);{}} builder.create().show(); }4.4通讯录卫士--实际运行测试图4-4-1实际运行测试图5模块二:软件管理模块5.1软件管理--业务处理流程图5-1-1业务处理流程图5.2软件管理--界面设计5.2.1主界面图5-2-1 软件管理主界面设计图5.3软件管理--代码实现(主要代码实现)publicclassAppManagerActivityextendsActivityimplementsOnClickListener{ protectedstaticfinalintLOAD_APP_FINSISH=50; privatestaticfinalStringTAG="AppManagerActivity"; privateTextViewtv_appmanager_mem_avail;//显示手机可用内存 privateTextViewtv_appmanager_sd_avail;//显示Sdcard可用内存 privateListViewlv_appmanager;//展示用户程序、系统程序 privateLinearLayoutll_loading;//ProgressBar的父控件,用于控制该控件中的子控件的显示 privatePackageManagerpm;//相当于windows系统下面的程序管理器(可以获取手机中所有的应用程序) privateList<AppInfo>appinfos;//存放手机中所有的应用程序(用户程序+系统程序) privateList<AppInfo>userappInfos;//存放用户程序 privateList<AppInfo>systemappInfos;//存放系统程序 //PopupWindow中contentView对应的三个控件 privateLinearLayoutll_uninstall;//卸载 privateLinearLayoutll_start;//启动 privateLinearLayoutll_share;//分享 privatePopupWindowpopupWindow; privateStringclickedpackname; //当应用程序在子线程中全部加载成功后,通知主线程显示数据 privateHandlerhandler=newHandler(){ publicvoidhandleMessage(android.os.Messagemsg){ switch(msg.what){ caseLOAD_APP_FINSISH: ll_loading.setVisibility(View.INVISIBLE); lv_appmanager.setAdapter(newAppManagerAdapter()); break; } }; }; /** *将手机中的应用程序全部获取出来 */ privatevoidfillData(){ //加载数据时,ll_loading控件中的ProgressBar以及TextView对应的“正在加载数据...”显示出来 ll_loading.setVisibility(View.VISIBLE); newThread(){ publicvoidrun(){ AppInfoProviderprovider=newAppInfoProvider( AppManagerActivity.this); appinfos=provider.getInstalledApps(); initAppInfo(); //向主线程发送消息 Messagemsg=Message.obtain(); msg.what=LOAD_APP_FINSISH; handler.sendMessage(msg); }; }.start();}5.4软件管理--实际运行测试图5-4-1实际运行测试图6测试分析6.1测试概要6.1.1测试设备基于Android2.2系统以上的安卓手机两台6.1.2测试方法主要采用黑盒测试,以需求分析文档中的功能模块为单位,测试的重点集中在验证功能是否能正常运行。6.2测试结果及发现6.2.1手机防盗测试结果:能正常的设置手机防盗信息;SIM卡变更通知,GPS追踪等功能均正常6.2.2通讯卫士测试结果:能正常的添加删除黑名单号码,并且能对黑名单内的号码进行拦截6.2.3软件管理测试结果:软件分享、卸载、运行功能均能正常运行。6.3对软件功能的结论6.3.1手机防盗能力用户设置密码之后,能顺利进入设置界面设置防盗功能,功能开启后可根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育心理学综合练习试卷B卷附答案
- 2024年度山西省高校教师资格证之高等教育法规押题练习试题B卷含答案
- 重庆市西南大学附中2024-2025学年高一上定时检测(一)语文试题含答案
- 2024年度xx村监测对象风险消除民主评议会议记录
- 湖南省长沙市长郡郡维中学2022-2023学年九年级上学期入学英语试卷(含答案)
- 2024年长沙市事业单位招聘计算机岗位专业知识试题
- 2024年培训学校业务外包协议
- 2024年工程咨询服务具体协议样式
- 2024医疗销售企业合作协议样本
- 2024房屋建筑施工劳务协议详例
- 养老机构(养老院)全套服务管理实用手册
- 企业文化管理第八章企业文化的比较与借鉴
- WST311-2023《医院隔离技术标准》
- 《缕书香伴我同行》课件
- 建设项目竣工环境保护验收管理办法
- 100道解方程 计算题
- 赛事承办服务投标方案(技术方案)
- 概率论(华南农业大学)智慧树知到课后章节答案2023年下华南农业大学
- 上海中考英语专项练习-动词的时态-练习卷一和参考答案
- GB 4806.7-2023食品安全国家标准食品接触用塑料材料及制品
- 我们的出行方式 (教学设计)2022-2023学年综合实践活动四年级上册 全国通用
评论
0/150
提交评论