毕业设计(论文)-范例_第1页
毕业设计(论文)-范例_第2页
毕业设计(论文)-范例_第3页
毕业设计(论文)-范例_第4页
毕业设计(论文)-范例_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计(论文)Android平台2048游戏开发 教学单位:计算机学院专业名称:计算机科学与技术(嵌入式系统及应用)学 号:2011031501058学生姓名:黄裕胜指导教师:宋喜佳(讲师)指导单位:计算机学院完成时间:2015年4月30日电子科技大学中山学院教务处制发2电子科技大学中山学院毕业设计(论文)摘要Android手机防盗系统【摘要】随着科技发展,移动终端越来越发达,人们不仅使用手机打电话发短信,而且可以实现手机购物,移动支付等功能方便人们日常的衣食住行,但是也因此给手机用户带来安全隐患,当手机不慎被盗或者丢失时,可能会造成信息泄露以及财产损失,手机防盗成了手机使用者需要考虑到问题

2、之一。本论文旨在详细说明如何开发一款Android手机防盗程序。该程序基于Google公司提供的Android SDK(Android Software Development Kit)和百度地图API(Application Programming Interface),使用Eclipse Platform开发平台以及ADT安卓开发工具(Android Developer Tools),运行与装有Android 4.1.2操作系统的手机上。该程序主要分为耳机监测、SIM卡检测、短信远程控制三大功能:耳机监测功能可以在任何时候,当时耳机被意外拔出时,手机便会立即响起警报通知用户,同时震慑盗贼;

3、SIM卡检测功能是当手机SIM卡被更换后,开机时程序会监测当前的SIM卡是否在用户设置的白名单内,并且发送反馈短信到安全号码中;短信远程控制则是用户与可以通过文字短信息远程控制手机,实现响铃警报,远程位置反馈等功能。本系统复杂的工作流程简单智能化,去除臃肿且不实用的功能,保留最实用的功能并且使用图形界面的方式与用户进行交互,使得用户可以更加方便地使用,易上手。该系统的投入使用将有效提高Android手机的安全防护能力,增强用户在处理手机被盗等问题时的对应能力。该程序通过模拟器和真机测试,所有功能均能达到了需求分析中的要求。【关键词】防盗;Android;定位;远程VII电子科技大学中山学院毕业

4、设计(论文)AbstractAndroid Phone Anti-theft Program【Abstract】【Key Words】 Anti-theft; Android; Location; SMS Remote Control电子科技大学中山学院毕业设计(论文)目录目录第1章 绪论11.1 课题背景11.2 国内外研究现状11.2.1 国内研究状况11.2.2 国外研究状况21.3 课题研究内容和意义31.3.1 研究内容31.3.2 研究意义31.4 论文结构3第2章 相关技术和理论基础52.1 Java语言52.2 Android操作系统62.2.1 简介62.2.2 系统架构62

5、.2.3 Android版本82.2.4 Android系统权限92.2.5 Android程序开发组件92.2.6 Service组件102.2.7 BroadcastReceiver组件112.2.8 ContentProvider组件122.3 百度地图132.3.1 简介132.3.2 百度地图API132.3.3 Android地图SDK142.3.4 Android定位SDK14第3章 系统分析与设计163.1 可行性分析163.1.1 经济可行性163.1.2 技术可行性163.2 需求分析17第4章 系统设计与实现184.1 开发平台与环境184.2 总体设计184.3 详细设

6、计194.3.1 初始菜单以及使能开关194.3.2 耳机监测功能234.3.4 SIM卡检测功能284.3.5 手机号码绑定344.3.6 手机定位364.3.7 短信息远程控制40第5章 系统应用实例和结果分析435.1 应用平台435.1.1 硬件平台435.1.2 软件平台435.2 应用测试用例445.2.1 耳机监测实例445.2.2 SIM卡检测实例445.2.3 手机安全号码绑定实例465.2.4 手机定位实例485.2.5 短信远程控制实例49第6章 总结与展望516.1 本文总结516.2 未来展望51参考文献52附录 配置文件存读实现代码53致谢55电子科技大学中山学院毕

7、业设计(论文)图目录图目录图1.1 手机安全卫士2图1.2 Android设备管理器2图2.1 Java Logo5图2.2 Android Logo6图2.3 Android系统架构7图2.4 Activty状态转换图10图2.6 BroadcastReceiver处理过程11图2.7 ContentProvider12图2.8 百度地图13图2.9 Android定位14图4.1 系统功能结构图18图4.2 初始菜单20图4.3 程序启动初始化流程22图4.4 初始菜单处理流程23图4.5 耳机监测24图4.6 耳机监测界面25图4.7 耳机状态图标25图4.8 耳机监测Activity流

8、程图26图4.9 耳机后台服务流程图27图4.10 警报界面27图4.11 SIM卡检测28图4.12 SIM卡检测界面29图4.13 耳机检测界面启动30图4.14 添加白名单31图4.15 SIM卡白名单添加流程图31图4.16 选项32图4.17 修改白名单32图4.18 SIM卡白名单“修改”和“删除”操作流程图33图4.19 开机自动检测SIM卡流程图34图4.20 手机号码绑定界面35图4.21 手机号码绑定界面35图4.22 手机号码绑定界面操作流程图36图4.23 定位模块演示36图4.24 手机定位功能参考界面37图4.25 Location界面显示流程图39图4.26 短信

9、远程定位流程图40图4.27 短信模块演示40图4.28 短信处理流程图42图5.1 耳机插入状态图44图5.2 耳机被拔出启动警报44图5.3 获取IMSI码并显示45图5.4 添加白名单45图5.5 修改白名单46图5.6 删除白名单46图5.7 SIM卡被换提醒46图5.8 修改绑定手机安全号码47图5.9 发送短信远程控制指令状态47图5.10 安全号码短信指令提示信息47图5.11 有网络定位48图5.12 无网络定位48图5.13 远程定位反馈信息48图5.14 百度地图客户端49图5.15 百度地图网页版49图5.16 正常短信通知49图5.17 警报指令50图5.18 定位查找

10、指令50电子科技大学中山学院毕业设计(论文)第1章 绪论电子科技大学中山学院毕业设计(论文)表目录表目录表2.1 用户使用系统版本分布8表4.1 各项功能图标表21表4.2 百度地图定位反馈代码表38表4.3 短信指令表41表5.1 应用平台硬件参数表43表5.2 应用平台软件参数表43电子科技大学中山学院毕业设计(论文)第1章 绪论第1章 绪论1.1 课题背景从1984年世界第一台手机摩托罗拉DynaTAC 8000X的诞生到现在2015年,31年间快速发展,人们对手机的需求也不再是一台简单地可以打电话和发送短信息的传统手机,而是具有高速处理信息能力,能够及时响应用户各种商务,娱乐等各种需求

11、,比如拍照上传,视频观看,移动支付等功能的智能手机。Android是一种由开放源码的操作系统,由Linux系统演变而来,主要应用于智能手机等便携设备。由于Android系统的开源性,使得手机厂商可以低成本地设计和生产智能手机,Android手机功能强大,高性价比,深受人们的喜爱,正式因为如此,在2014年,Android在全世界占据着81.5%的市场份额,成为使用人数做多,市场份额最大的智能手机系统。Android凭借着巨大的影响力,为运营商和开发者提供了广阔的发挥空间,可以为用户开发各种应用程序,方便用户使用,实现用户各种需求。人们不仅使用手机进行通讯,而且也用来娱乐、购物、移动支付、文档阅

12、读编辑等,甚至是处理一些商务事务。但是凡事都有两面性,在人们享受手机带来的方便之余,同时也伴随着因为手机丢失而引起信息泄露,财产损失等隐患。当手机意外被盗或者丢失时,对于一部分人来说,手机里面的信息往往会高于手机本身的价值。 因此,有必要为Android手机用户开发一款能够防止手机被盗和及时找回手机的应用程序。1.2 国内外研究现状1.2.1 国内研究状况手机防盗程序应该归属于安全类软件,对于安全软件的开发和研究是各类杀毒软件公司的首要考虑之一,所以在国内很多软件公司,包括其它综合型公司都有面向Android系统开发,功能齐全的安全类软件手机卫士,而手机防盗正是在各类手机卫士中的一个功能点,例

13、如金山手机卫士,腾讯手机管家等。但是因为某些手机卫士功能过多,而且各大软件开发商往往为了推广自己的其它产品,往往会在程序上添加一些软件推广信息,诱导用户下载使用,从而使程序变得臃肿,影响手机性能。图1.1 手机安全卫士1.2.2 国外研究状况提供Android系统开发支持的Google公司为Android系统手机提供了“Android设备管理器”服务。用户可以在手机上注册登录Google帐号绑定手机,接着可以在Google提供的远程操作网页上控制手机,实现远程响铃、锁定、清空、定位等功能。但是由于各种原因,这项功能并不支持在中国大陆上使用。图1.2 Android设备管理器1.3 课题研究内容

14、和意义1.3.1 研究内容本文以前人的相关研究工作作为背景和基础,再深入了解需求的基础上提出了总体目标,设计了系统框架,实现了各个相关模块分析,并结合Windows 7 操作系统和Eclipse编译环境以及ADT安卓开发插件为开发平台,基于Android 4.1.2 SDK开发库设计实现了一个建立在Android系统手机上的手机防盗系统。课题的主要研究内容有:(1)对手机用户界面理论进行分析总结,结合实际情况归纳出本程序的总体目标和使用功能,并设计出系统框架,然后从理论上加以论证可行性。(2)分析研究手机防盗系统应包含的功能,并且考虑功能实现方式。(3)探讨在现在生活环境中,系统中的功能的有效

15、性,以及当功能失效时的各种应对方法。(4)从应用实例上进行分析论证,得出有效的数据,以便有针对性的对系统进行调整,从而达到更好的效果。1.3.2 研究意义为手机用户开发一款实用性强,安全可靠的手机防盗系统,使用户可以更加放心地使用手机,并且具有一定的研究价值和应用空间,对其它类似的开发工作起到一定的参考借鉴意义。1.4 论文结构本论文主要从下面几章阐述对于Android手机防盗程序的研究与应用:第 1 章:绪论,介绍了课题的研究背景、国内外研究现状,课题研究目的和意义、以及本文的结构。第 2 章:相关开发技术与理论基础,介绍了课题采用的面向对象程序设计、Java语言,Android操作系统等相

16、关技术。第 3 章:系统分析与设计,对Android平台手机防盗程序的需求分析和可行性分析。总体介绍了程序的设计架构及所要实现的功能分析,并阐述了开发平台和环境的选择。第 4 章:系统详细设计与实现,介绍了程序各个模块的功能分析以及设计思路并其相关实现代码。第 5 章:系统应用实例和结果分析,介绍了应用平台,测试用例以及结果分析。第 6 章:总结与展望,总结本文工作成果,并对研究工作做反思和展望。55电子科技大学中山学院毕业设计(论文)第2章 相关技术和理论基础第2章 相关技术和理论基础2.1 Java语言Java语言的前身是Sun Microsystems公司开发的一种用于智能化家电的名为O

17、ak(橡树)的语言,它的基础是当时最流行的C和C+语言(Sun公司于2009年4月被Oracle公司收购)。但是,由于一些非技术上的原因,Oak语言并没有得到迅速的推广。知道1993年,WWW(万维网)迅速发展,Sun公司发现可以利用Oak语言的技术来创造含有动态内容的WWW网页,于是已受人冷落了的Oak语言又被重新的开发和改造。于是便将改造后的Oak语言改名为Java语言,Java是太平洋上的一个盛产咖啡的岛屿的名字。终于,在1995年,Java这个被定位于网络应用的程序设计语言被正式推出。图2.1 Java LogoJava编程语言的风格十分接近C+语言。集成了C+语言面向对象技术的核心,

18、Java舍弃了C+语言中容易引起错误的指针,改以引用取代,同时移除原C+与原来运算符重载,也移除了多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。Sun公司对Java语言的解释是:“Java编程语言是个简单、面向对象、分布、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java语言问世的时间虽然不长,但却已被业界所接受,IBM、Apple、DEC、Adobe、HP等大公司都已经购买了Java语言的许可证。2001年,当时的移动电话吧主NOKIA宣布,到2003年将出售1亿部支持Jav

19、a的手机。2.2 Android操作系统2.2.1 简介Android,中文俗称安卓,是一个以Linux为基础的开放源代码移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。Android已发布的最新版本为Android 5.1(Lollipop)。图2.2 Android LogoAndroid系统最初由安迪·鲁宾(Andy Rubin)等人开发制作,最初开发这个系统的目的是创建一个数码相机的先进操作系统;但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改

20、造为一款面向智能手机的操作系统。于2005年8月被美国科技企业Google收购。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随后,Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码,让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电脑及其他领域上。2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。在2014年Google I/O开发者大会上G

21、oogle宣布过去30天里有10亿台Android设备被激活,相较于2013年6月则是5.38亿。2.2.2 系统架构Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈(Software Stack)的架构,共分为四层。图2.3 Android系统架构(1)应用程序层该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。(2)应用程序框架层该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、

22、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。(3)系统库和Android运行时系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数

23、Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。(4)Linux内核Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。2.2.3 Android版本

24、Android操作系统是一个由Google和开放手持设备联盟共同开发发展的移动设备操作系统,其最早的一个版本Android 1.0 beta发布于2007年11月5日,至今已经发布了多个更新。这些更新版本都在前一个版本的基础上修复了Bug并且添加了前一个版本所没有的新功能。截止至2015年3月2日,不同的Android操作系统版本的用户比例如表2.1所示:表2.1 用户使用系统版本分布版本代号API用户分布2.2Froyo 冻酸奶80.4%2.3.3-2.3.7Gingerbread 姜饼106.9%4.0.3-4.0.4Ice Cream Sandwich 冰淇凌三明治155.9%4.1.x

25、Jelly Bean 果冻豆1617.3%4.2.x1719.4%4.3185.9%4.4KitKat 奇巧巧克力1940.9%5.0.xLollipop 棒棒糖213.3%由表可知,当前用户量最多的是代号为Jelly Bean 果冻豆版本,占Android用户42.6%,因此,本设计采用Android 4.1.2 SDK版本。2.2.4 Android系统权限 Android系统是基于Linux内核实现的的一个智能系统,同时也继承了Linux严格的权限管理。系统的各部分使用的权限方式并不全部都一样,有各自的规则,Android也遵守这样规则,通过这个原理,将应用于应用、应用与系统分隔开。An

26、droid系统通过权限机制为用户提供了更多的安全功能,一个程序如果没有相应的权限,特定的进程会被禁止执行特定的操作。而在默认设置下,所有应用都只有普通的权限,不能对其它应用、系统应用或者用户进行较大影响的操作,比如读写用户的隐私数据(短信或通讯录),读写文件到扩展存储器,访问互联网,读写其它应用文件数据等等,在安装应用的时候,系统会先检查程序的配置文件(AndroidManifest.xml),将其需要使用的权限为用户显示出来,经过用户确认之后,系统软件包安装器才会注册该程序,并给予相应的应用权限,这就是Android系统安全架构的核心思想。2.2.5 Android程序开发组件Android

27、系统的4个重要的组件包括Activity、Service、BroadcastReceiver和ContentProvider。(1)Activity组件:Activity是Android程序的呈现层,显示可视化的用户界面,并接受与用户交互所产生的界面事件,与“窗体”的概念非常相似。Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动了。Activity在界面上的变现形式一般是全屏窗体,也可以是非全屏悬浮窗体或对话框。Activity从启动到结束销毁的过程称之为生命周期。在Activity一个生命周期过程中,Activ

28、ity一般表现为4种状态,分别是活动状态、暂停状态、停止状态和非活动状态。1.活动状态,当Activity在用户界面中处于最上层,完全能被用户看到,即全屏,能与用户进行交互,并且系统会尽力地保证Activity的资源需求,则Activity处于活动状态。2.暂停状态,当其它程序被启动,遮挡了Activity部分界面,或者新的Activity为半透明状态,而原Activity不再全屏显示,且不能够与用户进行交互,则Activity处于暂停状态。3.停止状态,当新的Activity完全遮挡住原Activity,则原Activity处于停止状态,并且当系统资源不够时,处于停止状态的Activity会

29、被优先终止。4.非活动状态,前三种状态为Activity主要状态,当Avtivity被用户关闭或者被系统终止之后,Activity不在1、2、3种状态时,Activity则处于非活动状态。Activity四种状态安排程序流程规则进行转换,转换关系如图2.4所示。图2.4 Activty状态转换图2.2.6 Service组件因为手机硬件性能和屏幕尺寸的限制,通常Android系统仅允许一个应用程序处于激活状态并显示在手机屏幕上,而暂停其它处于未激活状态的程序,这样的话使得智能手机无法多任务处理,智能手机也不能称之为为智能了。因此,Android系统需要一种后台服务机制,允许在没有用户界面的情况

30、下,是程序能够长时间在后台运行,实现应用程序的后台服务功能,并能够处理时间或数据更新。Android系统提供了Service(服务)组件,不直接与用户交互,能够长期在后台运行。Service适用于无须用户干预,且有规则地运行或长期运行的后台功能。由于Service没有用户界面,可以更加有利于降低系统资源的消耗,而且Service比Activity具有更高的优先级,在系统资源紧张的时候,Service不会被系统有限终止。即使Service被终止,在系统资源恢复后,Service也将自动回复运行状态,因此可以认为Service是在系统中永久运行的组件。Service的生命周期比较简单,仅包括完整生

31、命周期和活动生命周期,如图2.5所示。图2.5 Service生命周期2.2.7 BroadcastReceiver组件BroadcastReceiver顾名思义,就是广播消息接收者的意思,是用来接收并响应广播消息的组件。在Android手机中存在着各种各样的广播消息,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。除此之外应用程序也可以产生广播信息,例如数据下载完毕等等。Broadca

32、stReceiver不包含任何用户界面,但是可以通过Acvity或者Notification通知用户接收到重要信息。Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个持久的图标等方式。BroadcastReceiver执行结束后即表示生命周期结束,同时由于ANR(Application Not Responding)限制BroadcastReceiver必须在10秒之内完成,否则会出现“应用程序无响应”的ANR提示,所以BroadcastReceiver不适合做一些耗时的操作。图2.6 BroadcastReceiver处理过程2.2.8

33、ContentProvider组件ContentProvider是Android系统提供的一种标准数据分享机制,应用程序可以通过ContentProvider访问其它应用程序的私有数据。私有数据可以是存储在文件系统中的文件,也可以是SQLite数据库中的数据。例如,数据库在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据。不能将数据库设为WORLD_READABLE,每个数据库都只能创建它的包访问,这意味着只有由创建数据库的进程可访问它。如果需要在进程间传递数据,则可以使用AIDL/Binder或创建一个ContentProvider,但是不能跨越进程/包

34、边界直接来使用数据库。一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。也就是说,一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去。外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,或者是用数据库存储还是用文件存储,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和程序里的数据打交道,可以读取程序的数据,也可以删除程序的数据,Android系统内部也提供一些内置的ContentProvider,能够为应用程序功能提供

35、重要的数据信息,例如联系人信息和通话记录等。图2.7 ContentProvider2.3 百度地图2.3.1 简介百度地图是百度于2005年9月发布的服务项目,它是百度公司与北京图为先科技有限公司联合开发的电子地图服务。图为先是一个电子地图服务提供公司,先前开发了“图吧”(Mapbar)。图2.8 百度地图百度地图目前仅支持大中华地区,包括中国大陆、香港、澳门及台湾。其他国家无地图数据,并且在部分大城市如北京、上海、广州、深圳推出了3D立体地图功能,用户可缩放浏览城市的三维街道图和建筑物仿真构图。百度地图还推出了卫星地图,缩放可显示全球卫星,但城市级别仅支持北京、上海、广州、深圳、香港、澳门

36、等几个大城市。虽然与google地图的全球地图仍差距甚远,但百度没有出现谷歌的漂移现象。通过百度地图搜索,用户可以找到指定的城市、街区、街道、建筑物等所在的地理位置,也可以找到离用户最近的所有餐馆、学校、银行、公园等等。在交通方面,百度地图搜索还为用户提供了路线查询功能,如果用户要去某个地点,百度地图搜索会提示用户如何换乘公交车,如果用户想自己驾车去,百度地图搜索同样会为用户推荐最佳路线。除了网页版,目前也已经推出Android、iOS等手机、平板系统版。2.3.2 百度地图API百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务AP

37、I、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。2.3.3 Android地图SDK百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。Android地图SDK为开发者提供了实现丰富的L

38、BS功能接口,本设计使用了“短串分享”这个非常实用的功能。短串分享是指,用户搜索查询后得到的每一个地理位置结果将会对应一条短串(短链接),用户可以通过短信、邮件或第三方分享组件(如微博、微信等)把短串分享给其他用户从而实现地理位置信息的分享。当其他用户收到分享的短串后,点击短串即可打开手机上的百度地图客户端或者手机浏览器进行查看。目前短串分享功能暂时开放了“POI搜索结果分享”和“反向地理编码结果分享”。 2.3.4 Android定位SDK百度地图Android定位SDK是为Android移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用百度

39、定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。图2.9 Android定位定位SDK是利用设备当前的GPS信息(GPS定位),基站信息(基站定位)和Wi-Fi信息(Wi-Fi定位)完成定位的。开发者在应用中成功集成百度定位SDK以后,既可以方便的通过定位SDK的接口向百度定位服务请求位置信息。当用户使用定位时,SDK会根据设备当前的实际情况(如是否开启GPS,是否连接网络,是否扫描到Wi-Fi信息等)生成定位依据,并根据开发者设置的实际定位策略(包括三种:高精度模式,低功耗模式,仅用设备模式)进行定位。百度地图Android定位SDK可以提供GPS,基站,Wi-Fi等多种

40、定位方式,适用于室、内外多种定位场景,具有出色的定位性能:定位精度高、覆盖率广、网络定位请求流量小、定位速度快。Android定位SDK具有一些功能特点:(1)混合定位为开发者提供高精度定位、低功耗定位和仅用设备定位三种定位模式,借助GPS、基站、Wi-Fi和传感器信息,实现高精度的混合定位服务。(2)反地理编码功能提供把当前所处地点的位置坐标转换为详细地址描述信息的能力,支持省,市,区县的结构化地址描述。(3)地理围栏地理围栏服务提供基于位置的提醒服务,可实现当用户进入、离开或处在开发者设定的某个虚拟地理区域时,可自动接收相关提醒。电子科技大学中山学院毕业设计(论文)第3章 系统分析与设计第

41、3章 系统分析与设计3.1 可行性分析3.1.1 经济可行性在现代社会中,手机不再是奢侈品,而逐渐成为人们的必需品。虽然手机经过几十年的发展,功能越来越强大,越来越智能,同时也越来越人性化,但是随着国家的经济飞速发展,国人的购买力也有了大大地提升,再加上得益与Android开源智能操作系统,使得手机厂商可以降低成本生产手机,而消费者也可以购买得到高性价比的智能手机。本设计采用的是Android SDK以及ADT,得益于Google免费提供,开发者无需为此付费。使用Eclipse集成开发环境,Eclipse是一个开放源代码、基于Java的可扩展开发平台,所以个人使用也是不需要付费的。得益于百度公

42、司,提供百度地图API,并且免费使用。开发硬件为个人电脑以及个人手机。综上所述,本设计综合成本为零,经济上可行。3.1.2 技术可行性Google公司为开发者提供了一系列完整功能API,并且附有开发者文档帮助开发者开发Android程序,降低学习成本。同时,百度公司也为开发者提供了完整、详细的开发者指南,使开发者能够更容易地使用百度地图API。本设计中使用到了手机短信,GPS定位,媒体播放等底层功能,而现代智能手机中,音乐播放,GPS定位等等功能已经是标配功能,并且Android SDK将大部分功能已封装好,开发者只需根据开发者文档,调用功能API就能实现功能。中国互联网经过这几年的快速发展,

43、WLAN(无线局域网)成了室内外不可缺少的联网方式,而移动通信技术也从1G(第一代通信技术)快速发展到如今的4G(第四代通信技术),有了这些便捷联网的基础,为本设计的实现提供了可行性。3.2 需求分析在现实生活中,人们经常会在地铁,公交车等公共场所使用手机收听电台、欣赏音乐等,手机防盗系统应该具备耳机监测功能,当手机耳机有插拔操作时,能够及时地做出反应,并且有效地反馈通知用户。防盗系统还需要具备信息反馈功能,当手机被盗时,一般来说,手机会被换上其它的手机卡,这个时候,需要监测手机卡合法性,并且向用户反馈相关信息。除此之外,防盗系统应该为用户提供手机找回功能,远程警报以及远程定位,向用户反馈当前

44、手机位置,为手机找回提供有效线索。在Google Play应用市场上有成千上万,各式各样的应用程序,而手机用户对于手机应用程序要求也越来越高,除了可以正常实现功能之外,应用界面的美观也成为程序设计考虑要点之一,所以在系统设计时需要为用户设计一个美观且便于操作的应用界面。综上所述,手机防盗系统应该具备以下功能:(1)美观的用户界面;(2)耳机监测功能;(3)SIM手机卡检测功能;(4)定位功能;(5)远程控制功能。电子科技大学中山学院毕业设计(论文)第4章 系统设计与实现第4章 系统设计与实现4.1 开发平台与环境 由于开源的支持,Android可以在许多开发平台在进行开发,比如NetBean、

45、Eclipse以及Google公司官方发布的Android Studio等。本设计在Windows 7操作系统上,使用Eclipse集成开发环境以及Android开发工具ADT进行开发。4.2 总体设计根据系统的需求分析,为本系统设计了五大功能,包括耳机监测功能、SIM卡检测功能、号码绑定功能、手机定位功能以及远程控制功能,即可实现本地手机防盗,又可以远程控制,系统整体功能结构图如图4.1所示。图4.1 系统功能结构图在系统结构图中不难看出,该系统为用户提供了功能界面入口以及开关,而五大功能点中分别包含了不同的实现方式:耳机监测功能通过界面设计与用户进行交互,为用户提示当前耳机状态,除此之外,

46、耳机监测功能还需在任何时候都可以对耳机状态进行监测,并且及时、有效地向用户反馈,所以该功能也包含了耳机监测后台服务,当耳机状态发生意外变化是,随即做出反应,响起警报。SIM卡检测功能包含界面设计以及SIM卡开机检测服务。在界面中,将当前SIM卡识别码信息呈现给用户,同时,该功能为用户提供白名单功能,用户可以在界面上对白名单增、删、改操作,在用户每一次操作之后系统都将会永久保存到手机中,以便SIM卡开机检测服务启动时读取调用;当手机开机时,系统将自动开启SIM卡开机检测服务,读取白名单数据之后进行核对,当当前SIM不在白名单内时,系统将发送短信息给安全号码。手机定位功能通过手机界面与用户交互,用

47、户可以在界面上实现手机安全号码绑定操作,但用户修改手机安全号码之后,系统将会将修改之后的安全号码永久保存到手机中,除此之外,用户可以随时在界面上向安全号码发送短信指令提示信息。手机定位功能顾名思义,是为手机位置进行定位,系统通过网络,向百度提供的定位接口发送定位请求,系统接收到百度反馈的数据后在界面上显示,并且永久保存到手机当中,为下次定位网络异常时提供内容参考。远程控制功能与其它四大功能不同,远程控制功能不含界面,当功能开启时,该功能将会一直在后台运行,当手机接收到短信息时,系统通过短信内容执行相关操作:警报或者远程定位。当系统接收到远程定位请求时,系统检测手机网络是否正常,如果正常则向百度

48、定位接口发送定位请求,接收到定位数据之后保存到手机中,更新系统定位数据并且通过短信息向安全号码反馈;如果网络异常时,系统将会获取最近一次定位成功的数据,接着反馈给安全号码。4.3 详细设计4.3.1 初始菜单以及使能开关本系统为用户设计了一个Activity组件命名为MainMenu作为程序入口,并且使用一个Service组件命名为SettingService协助处理配置信息。MainMenu由初始菜单和使能开关使用按钮控件Button,来与用户进行交互,并且重新设计界面背景,ActionBar以及按钮背景,使该界面具有更好的观感。如图4.2所示。图4.2 初始菜单通过重写内置主题文件来实现自

49、定义ActionBar,程序如下:<resources xmlns:android="<style name="AntiTheftActionBarTheme" parent="android:Theme.Holo"><item name="android:actionBarStyle">style/AntiTheftActionBar</item></style><style name="AntiTheftActionBar" parent=&

50、quot;android:style/Widget.Holo.ActionBar"><item name="android:background">drawable/bar_bg</item><item name="android:displayOptions">null</item></style></resources>并且在程序配置文件AndroidManifest.xml中引用该主题,代码如下:android:theme="style/AntiThe

51、ftActionBarTheme" >除此之外,在对layout设计时,将背景颜色设置为“#303537”,实现灰色背景效果。当点击按下按钮时,通过对按钮背景图片重新加载实现目标按钮高亮显示,以“耳机监测”为例,实现代码如下:if (event.getAction() = MotionEvent.ACTION_DOWN) / 更改为按下时的背景图片v.setBackgroundResource(R.drawable.icon_headset_pressed); else if (event.getAction() = MotionEvent.ACTION_UP) / 改为抬起时

52、的图片v.setBackgroundResource(R.drawable.icon_headset_default);各项功能图标如表4.1所示。表4.1 各项功能图标表项目默认状态点击状态功能开关开功能开关关耳机监测SIM卡检测号码绑定手机定位响铃警报说明作为程序的入口,除了为用户提供功能菜单之外,还需为后面可能会用到的功能进行初始化。当启动程序,打开MainMenu(Activity组件)时,程序会启动一个偏好设置服务(SettingService(Service组件),在SettingService中,首先会初始化定位模块,接着读取配置文件“SaveSetting.xml”中“Over

53、allControl”字段,根据读取内容,判断是否启动耳机监测服务(HeadsetService(Service组件),自行停止偏好设置服务,具体流程图如图4.3所示。图4.3 程序启动初始化流程使能开关的作用是用来控制整个程序的开关,当程序启动,运行MainMenu时,程序首先读取配置文件SaveSetting中的“OverallControl”字段,判断程序是否使能,接着设置对应的按钮状态,默认情况在为关闭状态。当用户每次点击更改开关按钮时,程序将读取配置文件获取当前状态,并且改变状态后重新保存到配置文件中,便于程序在执行其它功能时判断程序是否已使能,并且会重新启动SettingServi

54、ce,用于启动或关闭耳机监测后台服务(HeadsetService)。功能菜单是为用户提供程序各个功能参考界面入口,当用户点击菜单列表时,程序会跳转到相应的功能参考界面(Activity),具体流程如图4.4所示。图4.4 初始菜单处理流程由图可知,该系统设计了六个界面,其中耳机监测、SIM检测、手机号码绑定以及手机远程查找提供各项功能状态参考,而手机响铃警报界面和说明界面分别是提供手机警报测试和系统说明。4.3.2 耳机监测功能根据需求分析,耳机监测功能应该具有以下功能:(1)自动实时监测耳机状态;(2)自动实时判断耳机是否被拔出;(3)当耳机被拔出时能手机能迅速做出反应;(4)第一时间能够

55、提醒用户以及震慑小偷(5)用户可以关闭提醒图4.5 耳机监测在这些基础上,耳机监测功能还应该无论是手机的任何状态除了关机都能发挥功能,让用户可以放心地使用手机。在该功能中,耳机监测主要利用耳机插拔动作广播来实现,当系统监测到耳机有插拔动作时,系统将会发送Intent为"ent.action.HEADSET_PLUG"的广播,设计耳机监测时,需要建立一个BroadcastReceiver来监听广播,并且根据监听到的广播信息进行判断和操作。耳机监测分为两个模块,模块一是利用Activity组件命名为Headset,为用户提供耳机可视化检测;模块二则为一个S

56、ervice组件命名为HeadsetService,当程序使能时,Service将会一直在后台执行,根据系统广播,实现实时耳机监测功能。在模块一中,使用一个ImageView以及一个TextView分别来显示耳机的状态以及相关信息,Activity界面设计如图4.6所示。图4.6 耳机监测界面默认情况下,耳机为插入状态,ImageView空间显示蓝色耳机图标,而当耳机拔出时,ImageView为黑白耳机图标,如图4.7所示。图4.7 耳机状态图标为了能够实时检测耳机插拔状态,需要建立一个监听广播来监听有关于耳机的广播信息,耳机监听广播代码如下:public class HeadsetReceiver extends BroadcastReceiver public void onReceive(Context context, Intent intent) if (intent.hasExtra("state") if (0 = intent.getIntExtra("state", 0) Headset.this.iv_state_headset.setImageResource(R.drawable.icon_headset_no); else if (1 =

温馨提示

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

评论

0/150

提交评论