基于安卓系统的手机位置跟踪应用程序10_第1页
基于安卓系统的手机位置跟踪应用程序10_第2页
基于安卓系统的手机位置跟踪应用程序10_第3页
基于安卓系统的手机位置跟踪应用程序10_第4页
基于安卓系统的手机位置跟踪应用程序10_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文基于安卓系统的儿童防丢跟踪应用程序的设计二级学院机械与电子工程学院专业通信工程年级2012级学号1210618050学生姓名张宁指导教师张红燕职称副教授完成时间2016年04月10日独创性声明本人郑重声明所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。签名年月日授权声明本人完全理解贺州学院有关保留、使用本科生毕业论文(设计)的规定,即学院有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权贺州学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为无。签名年月日指导教师签名年月日基于安卓系统的手机位置跟踪应用程序作者张宁指导教师张红燕摘要ANDROID智能手机凭借其开源、易用和强大的功能,在日常生活中得到了广泛的应用,但这是一把双刃剑,在生活中得到便利的同时,个人隐私信息的安全问题已经越来越受到人们的重视,手机里存储了大量的我们的个人隐私信息,这些信息主要包括个人位置信息、通信信息、账号密码信息、存储文件信息等四大类。近年来我国的手机隐私泄露事件已经司空见惯。本软件采用JAVA,ANDROID,HTML结合开发出的安全套件,软件进行位置的搜集与追踪,即使手机丢了,也能通过不断传输的定位信息,迅速定位手机的位置,同时还可以在电脑上看到手机传输出来的位置信息,更能通过手机短信,返回定位信息,大大的减少了丢失手机的成本。关键词ANDROID,安全,位置,在ANDROID移动应用开发中,手机防盗追踪功能是一项重要的安全技术。基于GOOGLEANDROID移动平台设置开发环境,在智能手机上设计、实现基于ANDROID平台的手机防盗追踪功能软件。本程序的主要功能是利用ANDROID广播机制,当手机用户开启防盗追踪后,将后台监听手机开机启动,通过监听手机用户SIM卡的IMSI码改变来判断手机安全状态,监听并截获安全短信内容,实现非法用户的手机号码向合法用户预先设置的安全号码发送特殊信息的功能。该课题涉及到GOOGLEANDROID平台及其开发套件。可以从架构ANDROID移动平台编程环境开始,研究ANDROID移动平台手持设备功能的FORJAVA网络编程技术,设计基于ANDROID平台手机防盗追踪功能引言随着移动通讯产业的发展,手机的生产和使用量有了大幅的提高。尤其是进入到了3G时代后,手机更是变成了人们手中不可或缺的部分,其不再仅仅是用来打电话、发短信,还有着各种各样的应用上网、学习、娱乐、了解最新的资讯等,随着3G时代的不断深入,手机也成为互联网的终端,可以向外界提供服务。因此,如何能进一步降低开发成本、提升手机的应用价值,已成为手机发展的热点,而这些无一不对手机的操作系统提出更高的要求。而在这种情况下,GOOGLE于2007年11月推出了一个专为移动设备设计的操作系统平台ANDROID,它的出现打破了这些格局。ANDROID是一套真正意义上的开放性的移动设备综合平台,包括操作系统、中间件和一些关键的平台应用,拥有移动电话工作所需的全部软件,里面存储了我们大量的个人信息,一旦被盗,后果将不堪设想,正因此,手机的信息安全才会成为我们的研究对象。通过本次设计可以锻炼自己对所学理论知识和技能的综合运用,提高自己对文献资料的搜索和信息处理能力,培养自己对社会普通科学知识的了解,进一步提高自身的知识素养和设计论文的技巧。1软件介绍此软件是基于安卓系统开发的一个安全软件模块,主要有定位,追踪,防盗等功能。用户可在手机查看自己的位置,家人也可以在电脑查看手机所在位置,同时还有更换SIM手机卡告警,收到短信回复定位功能。11安卓系统简介ANDROID是一种以LINUX为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,最初主要支持手机。2005年由GOOGLE收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2012年2月数据,ANDROID占据全球智能手机操作系统市场59的份额,中国市场占有率为684。12安卓系统结构以及主要组件首先我们看下安卓的系统结构图图1ANDROID系统架构图ANDROID的系统架构和其它操作系统一样,采用了分层的架构。ANDROID分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和LINUX核心层,而本软件就属于应用程序层。其中应用层最主要的几个组件,同时也是本软件所需要应用到的几个分别是ACTIVITY活动,BROADCASTRECEIVE广播接收器,BROADCAST,SERVICE服务,下面简单的介绍下它们。(1)ACTIVITY活动应用程序中,一个ACTIVITY通常就是一个单独的屏幕,也可以说一个ACTIVITY对应了一个界面,一个应用程序就是由多个ACTIVITY组成,它上面可以显示一些控件也可以监听并处理用户的事件做出响应,所以ACTIVITY就是与用户交互的媒介工具。ACTIVITY之间通过INTENT进行通信。在INTENT的描述结构中,有两个最重要的部分动作和动作对应的数据。(2)BROADCASTRECEIVE广播接收器ANDROID中广播的是操作系统中产生的各种各样的事件。例如,收到一条短信就会产生一个收到短信息的事件。而ANDROID操作系统一旦内部产生了这些事件,就会向所有的广播接收器对象来广播这些事件。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收。广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的。(3)SERVICE服务SERVICE类似于WINDOWS中的服务,没有界面,只是在后台运行;而服务不能自己运行,而是需要调用CONTEXTSTARTSERVICEINTENTINTENT或CONTEXTBINDSERVICEINTENTINTENT开启服务;(4)CONTENTPROVIDER内容提供者CONTENTPROVIDER是一个可以共享数据的组件,这些数据可以存储在文件系统中、在一个SQLITE数据库、或以任何其他合理的方式,其他应用可以通过CONTENTRESOLVER类从该内容提供者中获取或存入数据,只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。13软件功能(1)定位功能采用了第三方高德地图实现定位功能,同时高德地图集成了电子围栏,地图显示等功能,在安装了本软件的安卓手持客户端,和任何一台有浏览器软件的电脑端,都可以查看到手机所在的位置。(2)手机防盗功能每次当手机更换SIM卡,手机将会发送告警到事先设置好的监控手机号码。(3)收到短信回复位置功能当手机收到事先设置好的监控手机发来的短信,并且内容为“在哪”,则手机会回复地理位置给监控手机。14软件设计思路一座大楼的最初原型就是一张设计图纸,一个软件也是一样,只有先预想它要有什么样的功能,才能慢慢的去实现它,完善它,所以软件的流程图,就是一个软件的核心,软件的最初原型,和最终功能。图2软件设计总流程图(1)手机设置好本软件需要用到的一些安全信息,如手机监控号码,围栏半径,还有设置好电子围栏的中心点(默认为最初安装软件得到的经纬度)。(2)在软件首页可以通过不同的按钮选择不同的功能。(3)换卡功能在每次开机和开启本软件自动匹配数据,如果与存储的数据不一致,则会发出报警。(4)定位功能使用第三方软件高德地图实现,高德地图还集成了电子围栏功能,因此只需要使用高德地图的API就可以轻松的做到定位以及电子围栏功能。在完成定位的同时,发送定位信息到服务器端,在电脑上通过链接访问网页就可以在电脑上查看到手机的位置,方便又可靠。(5)通过监听手机的短信广播和短信数据库的变化来判断是否收到来自监控手机号码的短信,是否应该回复手机的定位信息。15设计本软件的意义手机在飞速发展,它的功能也不再局限于接打电话,强大的信息处理能力使手机成为我们身边不可或缺的重要助手。现如今,手机的数据传输速度越来越快,智能化程度也是越来越高。最近,MCAFEE对美国、日本和英国等3G业务比较发达国家的2000名用户进行了调查,研究发现,平均有861的用户对于手机所引发的安全问题有所担心。担心的内容包括私人信息泄露,蓝牙间谍或被远程监控、手机病毒影响到朋友和同事关系等。手机作为接入互联网的智能信息终端,安全隐患体现在多个方面。当今手机在人们日常生活中的重要性已不言而喻,但手机内部信息的泄漏、被窃取、遗失或被盗,也给信息安全带来了隐患。随着手机功能的丰富及手机与日常生活的紧密关系,使得手机信息安全,再一次成为关注的焦点,本软件致力于手机的防盗和追踪功能,随时随地让你知道你的手机在哪里。2安卓端21搭建安开发卓环境在刚开始接触软件开发的时候,搭建一个软件运行的环境是最基础,最入门的操作,也是所有后续操作的前提,然而搭建一个环境并不简单,刚开始的时候遇到了很多的难题,搭建环境一直不成功,最终通过上网查询了大量的资料,才把开发安卓的环境搭建好,现在总结出开发的一些重要步骤第一步安装JDK,JDK是JAVA语言的开发工具包,安卓应用层程序是JAVA语言开发是,所以要先搭建好JAVA的开发环境。第二步配置WINDOWS上JDK的变量环境。为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,PATH和CLASSPATH。分别对应了JDK的安装路径,和安装路径下的/JRE/BIN文件路径还有/LIB/TOOLSJAR文件的路径。第三步下载安装ECLIPSE,这是安卓的集成开发环境。ECLIPSE不需要安装,下载后把解压包解压后,剪切ECLIPSE文件夹到你想安装的地方,打开时设置你的工作目录就可以使用了。第四步下载安装ANDROIDSDK,这是安卓软件的开发工具包。它提供了开发ANDROID应用程序所需的API库和构建、测试和调试ANDROID应用程序所需的开发工具。第五步为ECLIPSE安装ADT插件。启动ECLIPSE,点击HELP菜单INSTALLNEWSOFTWARE,点击弹出对话框中的ADD按钮。添加SDK。这样就搭建好了安卓的开发环境。22安卓项目结构搭建好了安卓的环境就可以进入开发阶段了,首先我们来看看一个安卓APP包结构图3安卓包结构图(1)SRC目录源文件存放目录存放代码(2)LIBS目录第3方功能JAR包存放库文件和第三方JAR包(3)RES目录项目内部资源存放图片,布局文件,菜单,文本资源等(4)GEN目录工具自动维护目录(5)ANDROIDMANIFESTXML文件项目的核心配置文件所有ACTIVITY和SERVICE,广播接收器,以及权限都需要在里面配置23安卓存储方式由于软件需要进行数据的处理,存储,发送数据必不可少,下面简单的介绍下安卓的几种存储方式第一种是安卓自带的小型数据库SQLITE,SQLITE虽然比MYSQL,ORACLE等数据库轻量,但是实质都需要编写SQL语句,操作复杂,不建议使用。第二种就是使用FILE,也就是文件的形式进行存储,在手机内存或者SD卡新建目录进行存储,这种存储形式更适合图片缓存,日志记录等内容,也不建议使用。第三种就是使用SHAREDPREFERENCES,这是一种轻型的数据存储方式,使用简便,易于存取。经过仔细对比,感觉本软件需要存储的数据较少,可以不需要使用数据库存储,因此使用安卓自带的一种简便的存储方式进行数据存储。下面简单的介绍下这种存储方式SHAREDPREFERENCES它的本质是基于XML文件存储KEYVALUE键值对数据,通常用来存储一些简单的配置信息。其存储位置在/DATA/DATA/SHARED_PREFS目录下。具体实现代码如下SHAREDPREFERENCESSPTHISGETSHAREDPREFERENCES“SAFEINFO“,THISMODE_PRIVATEEDITOREDSPEDITEDPUTSTRING“BANJING“,MBANJINGEDPUTSTRING“TELNUMB“,MTELNUMBEDPUTSTRING“SIMNUMB“,MSIMEDCOMMIT这段代码是将本软件设置好的围栏半径,监控号码和SIM卡识别号存储到SHAREDPREFERENCES里,一共存储了三条数据,里面”BANJING”对应了设置好的半径,监控号码和SIM卡识别码也是一样,这段代码执行过后,即在/DATA/DATA/COMNINGLOCATIONSYS/SHARED_PREFS目录下生成了一个SAFEINFOXML文件,一个应用可以创建多个这样的XML文件,然而,有存就有取,因为这是一个非常简便的存取工具,在取的时候代码也非常简单,只需要简单的几句就可以取出存储好的数据,具体代码如下SHAREDPREFERENCESSP2THISGETSHAREDPREFERENCES“LOACATE“,THISMODE_PRIVATELATITUDEDOUBLEPARSEDOUBLESP2GETSTRING“LATITUDE“,“纬度获取失败“LONGITUDEDOUBLEPARSEDOUBLESP2GETSTRING“LONGITUDE“,“经度获取失败“这是取出存储的定位获得的经纬度信息,只需要找到对应存储的XML文件,对应的KEY值,通过GETXXX方法,可以方便的获得对应KEY的VALUE值,如果KEY值错误或者此KEY无对应VALUE值,SHAREDPREFERENCES提供了一个赋予默认值的机会,以此保证程序的健壮性。1124安卓的服务器连接由于本软件需要发送数据到电脑端,所以就需要连接到服务器,ANDROID中网络请求一般使用APACHEHTTPCLIENT或者采用HTTPURLCONNECT,但是直接使用这两个类库需要写大量的代码才能完成网络POST和GET请求,所以经过我在网上和书籍上进行搜索,终于找到了更加便捷的方法来实现网络的连接操作。ANDROIDASYNCHTTP这个第三方库可以大大的简化操作,它是基于APACHESHTTPCLIENT,所有的请求都是独立在UI主线程之外,通过回调方法处理请求结果,采用ANDROIDHANDLERMESSAGE机制传递信息。所以本软件采用第三方比较成熟的服务器连接开源框架ASYNCHTTP实现服务器的连接,下面简单的介绍下它的使用方法(1)首先到它的官网去下载最新的JAR包,然后添加到安卓应用程序包目录下的LIBS目录下。(2)在代码中实现网络的连接操作ASYNCHTTPCLIENTCLIENTNEWASYNCHTTPCLIENTLISTLISTNEWARRAYLISTLISTADDNEWBASICNAMEVALUEPAIR“LATITUDE“,DOUBLETOSTRINGLATITUDELISTADDNEWBASICNAMEVALUEPAIR“LONGITUDE“,DOUBLETOSTRINGLONGITUDELISTADDNEWBASICNAMEVALUEPAIR“ADDRESS“,ADDRESSURLENCODEDFORMENTITYENTITYNEWURLENCODEDFORMENTITYLIST,“UTF8“CLIENTPOSTTHIS,“192168201938080/SAFESYS/LOCATESERVLET“,ENTITY,NULL,NEWASYNCHTTPRESPONSEHANDLER通过以上几行简单的代码就可以把服务端需要的信息传输过去,在它的ONSUCCESS方法中可以得到发送成功返回的回调信息。相比使用安卓原生的HTTPCLIENT方便了许多,减少了大量的代码。25APP页面开发做好了前置工作,就可以进行APP的开发了,由于每一个ACTIVITY都对应了一个界面,首先要新建一个ACTIVITY,图4新建ACTIVITY然后在核心配置文件里面配置相关信息,这样就完成了一个界面的创建。最后修改布局文件,就有相对应的一些文字,按钮,图片等控件,下面是修改好的布局示例,每一个APP都由若干个这样的ACTIVITY组成。图5修改好的布局显示这个布局文件采用线性布局的方式,使所有控件就行垂直排列,最上面是一个TEXTVIEW控件,用来显示文字,下面则是几个按钮(BUTTON),通过监听几个不同的按钮可以跳转到不同的界面,对应不同的功能。为了显得更加美观,可以给文字设置大小,风格,对齐方式,背景颜色等熟悉,按钮也可以设置不同的背景图片,颜色,还有里面的文字以及大小等等。本应用程序就是由这种多个ACTIVITY组成,看似简单的步骤,花费的时间并不少,在代码编写阶段,要制作不同的布局格式,不同的组件、控件配合,才能达到理想的效果,也是一个比较大的难点。3功能实现31定位功能由于定位功能有更好的第三方软件可以提供使用,高德地图集成了GPS,基站,WIFI等目前最主要的定位方式,所以本软件采用了高德地图来实现定位的功能。下面是定位功能的详细实现流程图6定位功能流程图高德地图是国内一流的免费地图导航产品,也是基于位置的生活服务功能最全面、信息最丰富的手机地图,由国内最大的电子地图、导航和LBS服务解决方案提供商高德软件纳斯达克AMAP提供。高德地图采用领先的技术为用户打造了最好用的“活地图“,不管在哪、去哪、找哪、怎么去、想干什么一图在手,统统搞定,省电省流量更省钱,堪称最完美的生活出行软件。当然要使用第三方的软件,必须遵守它的规则,下面是本软件使用高德地图进行开发的前置操作(1)访问HTTP/LBSAMAPCOM/进入高德地图官网(2)注册申请成为开发者,并申请应用的KEY。(3)从网站下载并解压得到定位包“AMAP_LOCATION_V1XXJAR“并拷贝JAR包到项目的LIBS目录。(4)在核心配置文件里进行配置并指定申请的用户KEY,这个步骤比较重要,因为每一个应用都对应了一个KEY值,是使用高德地图的一把钥匙。具体代码如下(5)下面是必须在核心配置文件里添加必须的权限这样就可以使用高德地图的服务了。具体功能实现步骤如下首先写一个类实现高德地图的接口AMAPLOCATIONLISTENER,这是为了开启了一个服务在后台做定位功能,实现地图接口会要求你重写地图的一些方法,其中只要在两个主方法里就可以实现定位功能,首先是初始化定位SDK,在INIT方法里进行初始化,具体代码为MLOCATIONMANAGERPROXYLOCATIONMANAGERPROXYGETINSTANCETHISMLOCATIONMANAGERPROXYSETGPSENABLEFALSEMLOCATIONMANAGERPROXYREQUESTLOCATIONDATALOCATIONPROVIDERPROXYAMAPNETWORK,601000,15,THIS此方法为每隔固定时间会发起一次定位请求,通过第三个参数进行设置时间的长短,其次是获得返回的结果,在它的ONLOCATIONCHANGED方法中得到返回的数据,并做一个存储,这样就获得了定位信息,具体代码如下PUBLICVOIDONLOCATIONCHANGEDAMAPLOCATIONAMAPLOCATIONIFAMAPLOCATIONNULL/定位获得经度DOUBLELONGITUDEAMAPLOCATIONGETLONGITUDE/定位获得地址STRINGADDRESSAMAPLOCATIONGETADDRESS由于位置信息需要传递到服务器端,在电脑上显示,所以就必须把定位后得到数据存储并发送出去,所以就需要用到前面所说的服务器连接组件ASYCHTTPCLIENT。发送成功图片缺失32电子围栏功能地理围栏功能,是以一个圆形的地理边界作为虚拟围栏,当手机进入、离开该区域时,手机可以接收自动通知。功能实现步骤如下1地理围栏也是属于定位服务的,所以与定位相关的所有前置工作都要做2在活动中,注册广播接收器INTENTFILTERFLITERNEWINTENTFILTERCONNECTIVITYMANAGERCONNECTIVITY_ACTIONFLITERADDACTIONGEOFENCE_BROADCAST_ACTIONREGISTERRECEIVERMGEOFENCERECEIVER,FLITERINTENTINTENTNEWINTENTGEOFENCE_BROADCAST_ACTIONMPENDINGINTENTPENDINGINTENTGETBROADCASTGETAPPLICATIONCONTEXT,0,INTENT,0MLOCATIONMANAGERPROXYADDGEOFENCEALERTLONGITUDE,LATITUDE,MBANJING,1,MPENDINGINTENT3声明一个类为广播接收器,专门用于接收地理围栏通知PRIVATEBROADCASTRECEIVERMGEOFENCERECEIVERNEWBROADCASTRECEIVEROVERRIDEPUBLICVOIDONRECEIVECONTEXTCONTEXT,INTENTINTENTIFINTENTGETACTIONEQUALSGEOFENCE_BROADCAST_ACTIONBUNDLEBUNDLEINTENTGETEXTRAS/根据广播的STATUS来确定是在区域内还是在区域外INTSTATUSBUNDLEGETINT“STATUS“IFSTATUS0TOASTMAKETEXTGETAPPLICATIONCONTEXT,“不在区域“,TOASTLENGTH_SHORTSHOW/发送短信SMSMANAGERSMSMANAGERSMSMANAGERGETDEFAULTSMSMANAGERSENDTEXTMESSAGEPHONE_NUMB,NULL,SMS_CONTENT,NULL,NULL33换卡发送短信功能由于在手机的SIM卡中并没有保存用户的手机号码,所以只能通过SIM卡唯一的识别串号(区分每一张SIM是通过IMSI码,在运营商的数据库中存在手机号码和IMSI码的映射,所以手机是通过发送IMSI码到运营商的一端,获得自己的手机号码)来判断是否切换了SIM卡,并且在开机和开启APP的时候双重判断,就能够判断出用户的手机卡是否切换。主要流程如下图3换卡发送短信功能流程图(1)首先是在安装APP的时候,默默在后台存储了手机的相关信息,在主界面也能查看手机的各种状态信息。(2)在手机开机的时候和每次开启APP的时候都再次取出IMIS码做对比,如果匹配结果不一致,则判定为切换了SIM卡,反之没有切换。具体代码实现获取手机IMIS码TELEPHONYMANAGERTMTELEPHONYMANAGERTHISGETSYSTEMSERVICECONTEXTTELEPHONY_SERVICESTRINGSUBSCRIBERIDTMGETSUBSCRIBERID开机匹配需要开启监听广播功能,当手机开机完成会发出一个名为“ANDROIDINTENTACTIONBOOT_COMPLETED”的广播,只需要注册一个广播接收器监听它就可以在开机的时候进行一些操作,不过由于开机手机会比较卡顿,经常不会执行或者是卡的时候手机为了保证系统不受影响会杀死这些代码执行的进程,具体代码如下先写一个类继承广播接收器PUBLICCLASSBOOTBROADCASTRECEIVEREXTENDSBROADCASTRECEIVER在它的ONRECEIVE方法里执行相应的匹配操作,如果匹配成功则不做操作,如果检测到号码不一致则执行发送短信操作。最后,需要注意的是,广播接收器需要在核心配置文件里进行配置,具体代码如下34收到短信回复ANDROID收到短信,系统会发送一个特定的广播。名字为“ANDROIDPROVIDERTELEPHONYSMS_RECEIVED”,把它放在BUNDLE(INTENTEXTRAS)中,BUNDLE可以理解为一个MAP,短信采用“PDUS“作为键,PDUS应该是PROTOCOLDESCRIPTIONUNITS的简写,也就是一组短信。ANDROID不是一接收到短信就立刻发出广播的,他会有一定的延迟,所以就有可能会有多条短信,所以才会用数组来存放。所以这个功能需要监听手机来短信的广播或者监听短信数据库的变化,为了确定能收到监听到短信,本软件对这两个点都做了监听,因为广播的权限与优先级别会被打断,但是数据库的变化不会,因此,这样双重监听才能确保能收到短信的时候代码会被执行,具体实现流程如下图4收到短信回复流程图现在主要说明下此功能实现原理首先编写一个广播接收器接收系统发送的短信广播PUBLICCLASSSMSRECEIVEEXTENDSBROADCASTRECEIVER在它的ONRECEIVE方法中实现短信判断逻辑,其中要获取短信的内容,短信的来源。当短信到来的时候,系统会将短信的内容封装成PDU的格式,然后放到INTENT里面。所以要获得短信的内容,就通过INTENT,将PUDS拿出来就可以了,它返回的是OBJECT数组OBJECTMESSAGESOBJECTINTENTGETSERIALIZABLEEXTRA“PDUS“创建一个二维字节数组BYTEPDUOBJSNEWBYTEMESSAGESLENGTHFORINTI0I4在逻辑里判断是否是号码和内容,符合就需要发送位置信息短信到监控手机。4服务器端41B/S结构介绍HTTP/BAIKESOCOM/DOC/69481167170508HTMLB/S结构即浏览器和服务器结构。它是随着INTERNET技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端BROWSER实现,但是主要事务逻辑在服务器端SERVER实现,形成所谓三层3TIER结构。客户机上只要安装一个浏览器BROWSER,如NETSCAPENAVIGATOR或INTERNETEXPLORER,服务器安装ORACLE、SYBASE、INFORMIX或SQLSERVER等数据库。浏览器通过WEBSERVER同数据库进行数据交互。42SERVLET介绍SERVLET是一个继承HTTPSERVLET类的JAVA类,在服务器端运行,用以处理客户端的请求,它最大的优势在它的高性能SERVLET初始化时就被装载并驻留在内存中,以后直接从内存中运行;在默认的情况下,SERVLET以单实例多线程的方式工作,当一个请求到达,SERVLET实例就开启一个新的线程服务这个请求。所以本软件采用SERVLET来处理客户端的请求,作为一个中间件,处理收到安卓端的信息,并发送给电脑端。图10SERVLET响应客户端请求的流程43服务端功能实现步骤1新建一个类继承HTTPSERVLETPUBLICCLASSLOCATESERVLETEXTENDSHTTPSERVLET重写它的DOPOST/DOGET/SERVICE方法,当客户端发送请求到SERVLET会自动调用这些方法用来处理不同的请求,下面以处理本软件的POST请求为例PUBLICVOIDDOPOSTHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTION/设置其编码格式,客户端服务端要一致,否则乱码REQUESTSETCHARACTERENCODING“UTF8“RESPONSESETCONTENTTYPE“TEXT/HTMLCHARSETUTF8“/TYPE是做一个过滤,用来防止其他恶意请求STRINGTYPEREQUESTGETPARAMETER“TYPE“/SESSION是服务端一种存储方式HTTPSESSIONSESSIONREQUESTGETSESSIONSTRINGJSONNULLPRINTWRITEROUTRESPONSEGETWRITER/获取安卓端发送过来的数据IF“DINGWEI“EQUALSTYPEJINGDUREQUESTGETPARAMETER“LONGITUDE“WEIDUREQUESTGETPARAMETER“LATITUDE“ADDRESSREQUESTGETPARAMETER“ADDRESS“IFJINGDUNULLELSESYSTEMOUTPRINTLNJINGDU“,“WEIDU“,“ADDRESSDINGWEIINFODINEWDINGWEIINFOJINGDU,WEIDU,ADDRESSOBJECTMAPPERMAPPERNEWOBJECTMAPPERJSONMAPPERWRITEVALUEASSTRINGDISESSIONSETATTRIBUTE“JSON“,JSONOUTPRINTJSONOUTFLUSH5网页端本软件可以在电脑上查看手机端的位置,只要你的电脑有安装浏览器,并且能上网,就能看到你的手机发送过来的位置信息,并且手机也可以通过访问网页的形式进行查看,非常简单,方便,容易操作下面主要介绍下网页的实现41HTML介绍HTML是用来描述网页的一种超文本标记语言,它不是一种编程语言,而是一种标记语言,是一套标记标签且使用标记标签来描述网页,所以你会在网页的源代码中看到一大堆的类似这样的符号,这就是HTML的标签。42服务端功能实现网页主要由HTML编写,其中使用到了目前比较流行的一些技术,比如AJAX,和JAVASCRIPT。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的WEB应用程序的技术。AJAX在浏览器与WEB服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面,用于局部刷新效果非常好。JAVASCRIPT是一种属解释性的脚本语言,被广泛用于WEB应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。下面是主要使用这些技术实现的网页的一部分逻辑代码首先是访问服务器获取数据AJAXTYPE“POST“,URL“/SAFESYS/LOCATESERVLET“,只需要发送一个AJAX的POST请求到对应的SERVLET就可以请求到服务器返回的数据。然后再它的SUCCESS方法中做处理操作。VARPERSONEVAL“JSON“IFPERSONADDRESSNULLALERT“请打开手机定位“ELSEMAPCLEAROVERLAYSVARNEW_POINTNEWBMAPPOINTPERSONJINGDU,PERSONWEIDUVARMARKERNEWBMAPMARKERNEW_POINTMAPADDOVERLAYMARKERMAPPANTONEW_POINTVARLABELNEWBMAPLABELPERSONADDRESS,OFFSETNEWBMAPSIZE20,10MARKERSETLABELLABEL,在代码中如果没有接收到数据就会弹窗告知打开手机定位,收到数据就能够在地图中显示出手机定位发送过来的信息。6调试在调试初期,遇到了很多问题,比如获取不了手机SIM卡的号码,就不能判断是否切换了帐号;还有监听收到短信的时候,广播接收器不能拦截到信息;还有监听开机广播,开启定位服务和换卡监控服务无法实现等等。后来,经过上网查询资料,终于一点一点解决了问题程序测试就是在程序投入运行前,对程序的需求分析、设计规格说明和编码的最终复审,是保证程序质量的关键步骤,如果要给程序测试下定义,可以这样讲,程序测试时为了发现错误而执行程序的过程。测试的目的就是尽可能多地发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。编程人员力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。61程序调试程序开发中难免会遇到各种问题,如语法的错误,程序设计的错误。程序开发是一个循序渐进的过程。开发完一个功能,需要及时的测试,待功能测试通过后,方可以进行下一个功能的开发,这样可以保证程序的质量。在程序开发中,使用了打印调试信息,DEBUG调试等方法。62测试的主要内容为了保证测试的质量,测试过程包括代码审查、单元测试、集成测试、确认测试以及系统测试。代码审查代码审查为了发现代码中冗余的部分,不合理的部分。单元测试单元测试(模块测试)是编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。1集成测试集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。2确认测试确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。3系统测试系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。(1)功能测试经测试该软件系统的添加联系人功能、查看联系人、编辑联系人、查找联系人、拨打电话、发送短息功能皆正常。软件的质量可以达到保证。(2)健壮性测试经测试该软件系统在异常情况下能正常运行的能力。如直接退出,没有点退出菜单,程序数据不会受到破坏,在配置较低的手机上运行。(3)性能测试经测试该软件系统处理事务的速度快捷。正常该软件时,安装在手机上面运行良好。(4)界面测试。经测试该软件系统的易用性较强,可操作性强,界面视觉效果而等。7总结通过这次毕业设计,我大致了解了在进行软件开发工作时的基本过程,并且从中获得了许多从课堂上学不到的知识和有意义的收获,其中我对以下几点有很深刻的体会1、编程中定义窗体及变量的名称时,一定要规范,必要时加上注解,不要想当然的定义某个变量,常量等。标准的定义方式,有助于其他编程人员更容易的看懂程序代码,以便以后进行维护。2、在工作中要多与小组成员沟通与讨论,这样可以保证系统整体的一致性,而且也可以互相交流经验,从而充实和提高自己。3、编程的方法固然重要,程序的使用界面也需要注意美观,布局要合理,主题要突出,界面要友好,要让使用过计算机的用户在首次接触到该软件时,感到一目了然,只要简单翻阅一下软件使用说明书就能了解该软件的大致功能。软件界面的美观对软件的市场销售及以后的

温馨提示

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

评论

0/150

提交评论