android平台游戏开发计算机科学与技术Word文件下载.docx
《android平台游戏开发计算机科学与技术Word文件下载.docx》由会员分享,可在线阅读,更多相关《android平台游戏开发计算机科学与技术Word文件下载.docx(67页珍藏版)》请在冰豆网上搜索。
![android平台游戏开发计算机科学与技术Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-2/1/e737b91e-ef71-4ef0-bfe4-0e597c03599a/e737b91e-ef71-4ef0-bfe4-0e597c03599a1.gif)
远程
AndroidPhoneAnti-theftProgram
【Abstract】
【KeyWords】Anti-theft;
Android;
Location;
SMSRemoteControl
目录
第1章绪论1
1.1课题背景1
1.2国内外研究现状1
1.2.1国内研究状况1
1.2.2国外研究状况2
1.3课题研究内容和意义3
1.3.1研究内容3
1.3.2研究意义3
1.4论文结构3
第2章相关技术和理论基础5
2.1Java语言5
2.2Android操作系统6
2.2.1简介6
2.2.2系统架构6
2.2.3Android版本8
2.2.4Android系统权限9
2.2.5Android程序开发组件9
2.2.6Service组件10
2.2.7BroadcastReceiver组件11
2.2.8ContentProvider组件12
2.3XX地图13
2.3.1简介13
2.3.2XX地图API13
2.3.3Android地图SDK14
2.3.4Android定位SDK14
第3章系统分析与设计16
3.1可行性分析16
3.1.1经济可行性16
3.1.2技术可行性16
3.2需求分析17
第4章系统设计与实现18
4.1开发平台与环境18
4.2总体设计18
4.3详细设计19
4.3.1初始菜单以及使能开关19
4.3.2耳机监测功能23
4.3.4SIM卡检测功能28
4.3.5手机号码绑定34
4.3.6手机定位36
4.3.7短信息远程控制40
第5章系统应用实例和结果分析43
5.1应用平台43
5.1.1硬件平台43
5.1.2软件平台43
5.2应用测试用例44
5.2.1耳机监测实例44
5.2.2SIM卡检测实例44
5.2.3手机安全号码绑定实例46
5.2.4手机定位实例48
5.2.5短信远程控制实例49
第6章总结与展望51
6.1本文总结51
6.2未来展望51
参考文献52
附录配置文件存读实现代码53
致谢55
图目录
图1.1手机安全卫士2
图1.2Android设备管理器2
图2.1JavaLogo5
图2.2AndroidLogo6
图2.3Android系统架构7
图2.4Activty状态转换图10
图2.6BroadcastReceiver处理过程11
图2.7ContentProvider12
图2.8XX地图13
图2.9Android定位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流程图26
图4.9耳机后台服务流程图27
图4.10警报界面27
图4.11SIM卡检测28
图4.12SIM卡检测界面29
图4.13耳机检测界面启动30
图4.14添加白名单31
图4.15SIM卡白名单添加流程图31
图4.16选项32
图4.17修改白名单32
图4.18SIM卡白名单“修改”和“删除”操作流程图33
图4.19开机自动检测SIM卡流程图34
图4.20手机号码绑定界面35
图4.21手机号码绑定界面35
图4.22手机号码绑定界面操作流程图36
图4.23定位模块演示36
图4.24手机定位功能参考界面37
图4.25Location界面显示流程图39
图4.26短信远程定位流程图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.7SIM卡被换提醒46
图5.8修改绑定手机安全号码47
图5.9发送短信远程控制指令状态47
图5.10安全号码短信指令提示信息47
图5.11有网络定位48
图5.12无网络定位48
图5.13远程定位反馈信息48
图5.14XX地图客户端49
图5.15XX地图网页版49
图5.16正常短信通知49
图5.17警报指令50
图5.18定位查找指令50
表目录
表2.1用户使用系统版本分布8
表4.1各项功能图标表21
表4.2XX地图定位反馈代码表38
表4.3短信指令表41
表5.1应用平台硬件参数表43
表5.2应用平台软件参数表43
第1章绪论
1.1课题背景
从1984年世界第一台手机摩托罗拉DynaTAC8000X的诞生到现在2015年,31年间快速发展,人们对手机的需求也不再是一台简单地可以打电话和发送短信息的传统手机,而是具有高速处理信息能力,能够及时响应用户各种商务,娱乐等各种需求,比如拍照上传,视频观看,移动支付等功能的智能手机。
Android是一种由开放源码的操作系统,由Linux系统演变而来,主要应用于智能手机等便携设备。
由于Android系统的开源性,使得手机厂商可以低成本地设计和生产智能手机,Android手机功能强大,高性价比,深受人们的喜爱,正式因为如此,在2014年,Android在全世界占据着81.5%的市场份额,成为使用人数做多,市场份额最大的智能手机系统。
Android凭借着巨大的影响力,为运营商和开发者提供了广阔的发挥空间,可以为用户开发各种应用程序,方便用户使用,实现用户各种需求。
人们不仅使用手机进行通讯,而且也用来娱乐、购物、移动支付、文档阅读编辑等,甚至是处理一些商务事务。
但是凡事都有两面性,在人们享受手机带来的方便之余,同时也伴随着因为手机丢失而引起信息泄露,财产损失等隐患。
当手机意外被盗或者丢失时,对于一部分人来说,手机里面的信息往往会高于手机本身的价值。
因此,有必要为Android手机用户开发一款能够防止手机被盗和及时找回手机的应用程序。
1.2国内外研究现状
1.2.1国内研究状况
手机防盗程序应该归属于安全类软件,对于安全软件的开发和研究是各类杀毒软件公司的首要考虑之一,所以在国内很多软件公司,包括其它综合型公司都有面向Android系统开发,功能齐全的安全类软件——手机卫士,而手机防盗正是在各类手机卫士中的一个功能点,例如金山手机卫士,腾讯手机管家等。
但是因为某些手机卫士功能过多,而且各大软件开发商往往为了推广自己的其它产品,往往会在程序上添加一些软件推广信息,诱导用户下载使用,从而使程序变得臃肿,影响手机性能。
图1.1手机安全卫士
1.2.2国外研究状况
提供Android系统开发支持的Google公司为Android系统手机提供了“Android设备管理器”服务。
用户可以在手机上注册登录Google帐号绑定手机,接着可以在Google提供的远程操作网页上控制手机,实现远程响铃、锁定、清空、定位等功能。
但是由于各种原因,这项功能并不支持在中国大陆上使用。
图1.2Android设备管理器
1.3课题研究内容和意义
1.3.1研究内容
本文以前人的相关研究工作作为背景和基础,再深入了解需求的基础上提出了总体目标,设计了系统框架,实现了各个相关模块分析,并结合Windows7操作系统和Eclipse编译环境以及ADT安卓开发插件为开发平台,基于Android4.1.2SDK开发库设计实现了一个建立在Android系统手机上的手机防盗系统。
课题的主要研究内容有:
(1)对手机用户界面理论进行分析总结,结合实际情况归纳出本程序的总体目标和使用功能,并设计出系统框架,然后从理论上加以论证可行性。
(2)分析研究手机防盗系统应包含的功能,并且考虑功能实现方式。
(3)探讨在现在生活环境中,系统中的功能的有效性,以及当功能失效时的各种应对方法。
(4)从应用实例上进行分析论证,得出有效的数据,以便有针对性的对系统进行调整,从而达到更好的效果。
1.3.2研究意义
为手机用户开发一款实用性强,安全可靠的手机防盗系统,使用户可以更加放心地使用手机,并且具有一定的研究价值和应用空间,对其它类似的开发工作起到一定的参考借鉴意义。
1.4论文结构
本论文主要从下面几章阐述对于Android手机防盗程序的研究与应用:
第1章:
绪论,介绍了课题的研究背景、国内外研究现状,课题研究目的和意义、以及本文的结构。
第2章:
相关开发技术与理论基础,介绍了课题采用的面向对象程序设计、Java语言,Android操作系统等相关技术。
第3章:
系统分析与设计,对Android平台手机防盗程序的需求分析和可行性分析。
总体介绍了程序的设计架构及所要实现的功能分析,并阐述了开发平台和环境的选择。
第4章:
系统详细设计与实现,介绍了程序各个模块的功能分析以及设计思路并其相关实现代码。
第5章:
系统应用实例和结果分析,介绍了应用平台,测试用例以及结果分析。
第6章:
总结与展望,总结本文工作成果,并对研究工作做反思和展望。
第2章相关技术和理论基础
2.1Java语言
Java语言的前身是SunMicrosystems公司开发的一种用于智能化家电的名为Oak(橡树)的语言,它的基础是当时最流行的C和C++语言(Sun公司于2009年4月被Oracle公司收购)。
但是,由于一些非技术上的原因,Oak语言并没有得到迅速的推广。
知道1993年,WWW(万维网)迅速发展,Sun公司发现可以利用Oak语言的技术来创造含有动态内容的WWW网页,于是已受人冷落了的Oak语言又被重新的开发和改造。
于是便将改造后的Oak语言改名为Java语言,Java是太平洋上的一个盛产咖啡的岛屿的名字。
终于,在1995年,Java这个被定位于网络应用的程序设计语言被正式推出。
图2.1JavaLogo
Java编程语言的风格十分接近C++语言。
集成了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针,改以引用取代,同时移除原C++与原来运算符重载,也移除了多重继承特性,改用接口取代,增加垃圾回收器功能。
在JavaSE1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。
Sun公司对Java语言的解释是:
“Java编程语言是个简单、面向对象、分布、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java语言问世的时间虽然不长,但却已被业界所接受,IBM、Apple、DEC、Adobe、HP等大公司都已经购买了Java语言的许可证。
2001年,当时的移动电话吧主NOKIA宣布,到2003年将出售1亿部支持Java的手机。
2.2Android操作系统
2.2.1简介
Android,中文俗称安卓,是一个以Linux为基础的开放源代码移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的OpenHandsetAlliance(OHA,开放手持设备联盟)持续领导与开发中。
Android已发布的最新版本为Android5.1(Lollipop)。
图2.2AndroidLogo
Android系统最初由安迪·
鲁宾(AndyRubin)等人开发制作,最初开发这个系统的目的是创建一个数码相机的先进操作系统;
但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统。
于2005年8月被美国科技企业Google收购。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随后,Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码,让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电脑及其他领域上。
2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。
在2014年GoogleI/O开发者大会上Google宣布过去30天里有10亿台Android设备被激活,相较于2013年6月则是5.38亿。
2.2.2系统架构
Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈(SoftwareStack)的架构,共分为四层。
图2.3Android系统架构
(1)应用程序层
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。
同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
(2)应用程序框架层
该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。
应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。
并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。
基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
(3)系统库和Android运行时
系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。
Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、、android.media等等。
后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
(4)Linux内核
Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。
Linux内核也是作为硬件与软件栈的抽象层。
驱动:
显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
2.2.3Android版本
Android操作系统是一个由Google和开放手持设备联盟共同开发发展的移动设备操作系统,其最早的一个版本Android1.0beta发布于2007年11月5日,至今已经发布了多个更新。
这些更新版本都在前一个版本的基础上修复了Bug并且添加了前一个版本所没有的新功能。
截止至2015年3月2日,不同的Android操作系统版本的用户比例如表2.1所示:
表2.1用户使用系统版本分布
版本
代号
API
用户分布
2.2
Froyo冻酸奶
8
0.4%
2.3.3-2.3.7
Gingerbread姜饼
10
6.9%
4.0.3-4.0.4
IceCreamSandwich冰淇凌三明治
15
5.9%
4.1.x
JellyBean果冻豆
16
17.3%
4.2.x
17
19.4%
4.3
18
4.4
KitKat奇巧巧克力
19
40.9%
5.0.x
Lollipop棒棒糖
21
3.3%
由表可知,当前用户量最多的是代号为JellyBean果冻豆版本,占Android用户42.6%,因此,本设计采用Android4.1.2SDK版本。
2.2.4Android系统权限
Android系统是基于Linux内核实现的的一个智能系统,同时也继承了Linux严格的权限管理。
系统的各部分使用的权限方式并不全部都一样,有各自的规则,Android也遵守这样规则,通过这个原理,将应用于应用、应用与系统分隔开。
Android系统通过权限机制为用户提供了更多的安全功能,一个程序如果没有相应的权限,特定的进程会被禁止执行特定的操作。
而在默认设置下,所有应用都只有普通的权限,不能对其它应用、系统应用或者用户进行较大影响的操作,比如读写用户的隐私数据(短信或通讯录),读写文件到扩展存储器,访问互联网,读写其它应用文件数据等等,在安装应用的时候,系统会先检查程序的配置文件(AndroidManifest.xml),将其需要使用的权限为用户显示出来,经过用户确认之后,系统软件包安装器才会注册该程序,并给予相应的应用权限,这就是Android系统安全架构的核心思想。
2.2.5Android程序开发组件
Android系统的4个重要的组件包括Activity、Service、BroadcastReceiver和ContentProvider。
(1)Activity组件:
Activity是Android程序的呈现层,显示可视化的用户界面,并接受与用户交互所产生的界面事件,与“窗体”的概念非常相似。
Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动了。
Activity在界面上的变现形式一般是全屏窗体,也可以是非全屏悬浮窗体或对话框。
Activity从启动到结束销毁的过程称之为生命周期。
在Activity一个生命周期过程中,Activity一般表现为4种状态,分别是活动状态、暂停状态、停止状态和非活动状态。
1.活动状态,当Activity在用户界面中处于最上层,完全能被用户看到,即全屏,能与用户进行交互,并且系统会尽力地保证Activity的资源需求,则Activity处于活动状态。
2.暂停状态,当其它程序被启动,遮挡了Activity部分界面,或者新的Activity为半透明状态,而原Activity不再全屏显示,且不能够与用户进行交互,则Activity处于暂停状态。
3.停止状态,当新的Activity完全遮挡住原Activity,则原Activity处于停止状态,并且当系统资源不够时,处于停止状态的Activity会被优先终止。
4.非活动状态,前三种状态为Activity主要状态,当Avtivity被用户关闭或者被系统终止之后,Activity不在1、2、3种状态时,Activity则处于非活动状态。
Activity四种状态安排程序流程规则进行转换,转换关系如图2.4所示。
图2.4Activty状态转换图
2.2.6Service组件
因为手机硬件性能和屏幕尺寸的限制,通常Android系统仅允许一个应用程序处于激活状态并显示在手机屏幕上,而暂停其它处于未激活状态的程序,这样的话使得智能手机无法多任务处理,智能手机也不能称之为为智能了。
因此,Android系统需要一种后台服务机制,允许在没有用户界面的情况下,是程序能够长时间在后台运行,实现应用程序的后台服务功能,并能够处理时间或数据更新。
Android系统提供了Service(服务)组件,不直接与用户交互,能够长期在后台运行。
Service适用于无须用户干预,且有规则地运行或长期运行的后台功能。
由于Service没有用户界面,可以更加有利于降低系统资源的消耗,而且Service比Activity具有更高的优先级,在系统资源紧张的时候,Service不会被系统有限终止。
即使Service被终止,在系统资源恢复后,Service也将自动回复运行状态,因此可以认为Service是在系统中永久运行的组件。
Service的生命周期比较简单,仅包括完整生命周期和活动生命周期,如图2.5所示。
图2.5Service生命周期
2.2.7BroadcastReceiver组件
BroadcastReceiver顾名思义,就是广播消息接收者的意思,是用来接收并响应广播消息的组件。
在Android手机中存在着各种各样的广播消息,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;
当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;
当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。
除此之外应用程序也可以产生广播信息,例如数据下载完毕等等。
BroadcastReceiver不包含任何用户界面,但是可以通过Acvity或者Notification通知用户接收到重要信息。
Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个持久的图标等方式。
BroadcastReceiver执行结束后即表示生命周期结束,同时由于ANR(ApplicationNotResponding)限制BroadcastR