安卓的远程定位系统参考模板_第1页
安卓的远程定位系统参考模板_第2页
安卓的远程定位系统参考模板_第3页
安卓的远程定位系统参考模板_第4页
安卓的远程定位系统参考模板_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业论文题目:基于安卓的远程定位系统 学 院:计算机科学与技术学院专 业:学 号:学生姓名:指导教师:日 期:二一六年六月I / 35摘 要随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。智能移动终端所具有的通讯服务、定位服务和摄像功能为及时获取照片信息带来了极大的方便。Android平台支持各种应用的开发,它是目前最流行的开源智能手机操作系统。因此,Android手机的应用服务将会有很大的发展空间,手机GPS远程定位及运行轨迹管理系统服务就是其中的一项。 远程定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的

2、位置的技术或服务。定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现移动定位的。所以本系统采用前者来开发远程定位系统。本文采用java语言和Eclipse平台,开发了一个安卓远程定位系统,本系统的主要模块:客户端登录模块为用户提供登录,登录方式分为管理员登录和普通用户登录。客户端注册模块进行用户的注册。客户端主界面模块定位用户所在位置,更改定位的刷新时间,管理员可以查看普通用户的轨迹。服务器端登录模块为管理员提供登录。服务器端用户管理模块对用户进行增删改查。服务器端远程定位模块查询用户的

3、位置信息。服务器端轨迹回放查询用户的轨迹。关键词:Java;Eclipse;安卓;远程定位 AbstractAs smart phones into the life of the ordinary people, it will become the main equipment of access to information. Therefore, the application of mobile phone service will have very big development space, mobile phone GPS positioning and orbit serv

4、ice management system is one of them. Android platform to support the development of a variety of applications, it is by far the most popular open source smartphone operating system, the latest version is android4.0, provides a convenient and flexible development interface. Mobile positioning refers

5、 to the fixed by a specific technology for mobile phones or end user's location information (latitude and longitude coordinates), was located in the electronic map object location technology or service. Positioning technology, there are two, one is based on GPS, a positioning is based on mobile

6、operation network base station. Based on GPS positioning way is to use a mobile phone GPS module will send signals to its own position background to realize the mobile location. Base station positioning is the use of measuring distance to determine the distance of the base station for mobile phone l

7、ocation. The latter do not need to mobile phones with GPS capabilities, but the precision is largely dependent on the distribution of base station and the size of the coverage, sometimes error more than a kilometer. The former location accuracy is higher. In addition to use Wifi positioning on a sma

8、ll scale. This procedure has the very good portability and inheritance, developers can in its foundation.Intelligent mobile terminal of communication services, location-based services, and camera for photo information brought great convenience in a timely manner. This subject requires students based

9、 on the Android mobile intelligent terminal to develop a GPS positioning system, management system and the orbit including photography, upload, pictures, etc. This information need by intelligent terminal positioning function, at the same time should be running in the background copy information tra

10、nsmission.Keywords: Java, Eclipse, Android, DistanceLocation目录1绪论11.1 项目研究背景11.2 项目研究意义21.3 论文的组织结构22 需求分析32.1 软件目标32.2 功能分析32.3 开发工具32.3.1 Eclipse32.3.2 Android ADT42.3.3 Android SDK42.3.4 Genymotion42.4 数据存储42.5 运行环境52.6 本章小结53 系统分析与设计63.1 可行性分析63.2 系统设计原理63.2.1 Android系统结构63.2.2 Broadcast工作原理83.3

11、 系统组成模块93.4 系统流程图103.5 系统用列图103.6 本章小结114 系统编码实现124.1 安卓的工程124.1.1 安卓工程程序结构124.1.2 系统权限134.1.3 数据库技术144.2 客户端模块154.2.1 登录模块154.2.2 注册模块164.2.3 主界面模块174.3 服务器模块184.3.1 登录模块184.3.2 用户管理模块194.3.3 远程定位模块204.3.4 轨迹回放模块204.4 本章小结215 总结22参考文献23致 谢241 绪论1.1 项目研究背景Android是一款基于Linux的自由及开放源代码的操作系统,主要使用于智能手机和平板

12、电脑等移动设备。谷歌公司和开放手机联盟合作开发了Android,这个联盟是由全球顶尖的手机制造商、软件开发商、电信运营商和芯片制造商总共65家一同创组。Google公司在2007年11月5日第一次发表了Android操作系统,Android本意指“机器人”,最初由Andy Rubin开发设计的。谷歌于2005年8月收购注资,开发运营Android操作系统。在Android发布不久后,就大受欢迎,它的市场增长速度是惊人的,总的来说导致Android系统风靡的原因主要靠它的各方面的优势。Android是一个真正意义上的开放性移动设备综合平台。它包括操作系统、用户界面和应用程序移动电话工作所需的全部

13、软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。Android在国内社区十分红火,这些社区为Android在中国的普及做了很好的推广作用,同时也为Android 相关产品的消费提供了市场。国内厂商和运营商也纷纷加入了Android阵

14、营,包括中国移动,中国联通,华为通讯,联想等大企业。手机定位是指通过无线终端和无线网络的配合,确定移动用户的实际位置信息,经纬度坐标数据,包括三维数据,通过短消息服务、多媒体消息、语音发给用户或以此为基础提供某种增值服务。手机定位类型:根据定位方法和定位过程的不同,手机定位主要有以下几种类型,起源蜂窝定位 到达时间定位 到达角度定位 到达时间差定位手机定位基本原理:手机定位是利用GSM移动通信网的蜂窝技术来实现位置信息的查询,GSM无线通信网是由许多像蜜蜂蜂窝一样的小区构建而成的,每个小区都有自己的编号,通过手机所在小区的识别号就可以知道手机所在区域。手机定位技术种类:GSM手机定位方式通常可

15、分为基于网络方式和基于终端方式两种。从技术上可分为到达时间、增强测量时间差和GPS辅助3种方式。利用手机平台和web后台结合,变可达到事半功倍的效果,使用户节省时间、方便操作,增加效率。1.2 项目研究意义随着我国经济的高速发展,人们的生活节奏越来越快,活动的范围越来越大,人员和物品的流动率越来越高。实时了解远程目标的情况,已经成为人们的一项重要的管理或生活需求。利用远程定位技术,可以使人们获取远程目标实时反馈的定位信息,人们也能很方便地利用这些定位信息对管理或生活进行规划调整近些年来,随着城镇化和现代化进程的推进,城市人口呈跳跃式增长,在城市中出现了大量的车辆。国内很多城市的道路都处于不断的

16、规划调整过程中,这也使得交通状况越复杂,因此对车辆管理已经成为一个难题。在当今这个信息时代,交通运输对信息化的要求逐渐强烈起来,针对车辆的信息化服务越来越普及。车辆管理者希望对车辆的位置所了解,从而进行调度和管理。在物流行业,利用远程定位可以使物流企业管理这更有效地监控货物的运输状况,并根据具体的交通状况对运输进行调度,极大程度地避免了货物遗失、被盗或寄送错误等情况,客户也可以利用远程定位查询货物的配送状况。在驾校培训和出租车行业中,利用远程定位 可以使管理者了解车辆的位置状况。在公交公司的车辆上安装GPS定位器,公交公司的管理者就可以实时的了解公交车辆的位置状况,从而对公交系统的运行进行调度

17、,候车的乘客可以根据公交车辆的位置合理安排候车时间。此外,远程定位还可以用于儿童和老人的行踪掌控、公路巡检、贵重货物跟踪、个人财务跟踪、宠物跟踪、野生动物追踪、汽车防盗、银行运钞车监管和公务车辆管理等。1.3 论文的组织结构本论文分五个章节,具体章节安排如下: 第1章 绪论,主要介绍项目研究的背景和意义,针对Android的远程定位的背景分析以及论述了该应用开发的实际意义。 第2章 需求分析,分析此项目究竟要做什么,要完成哪些功能,讨论在实际使用中需要注意的问题。第3章 系统分析与设计,阐述了此项目的层次架构,各功能模块之间的调用关系,具体分析功能的可行性和如何实现的问题。给出系统的流程图和系

18、统功能模块图,明确设计了系统各个功能的实现方法。第4章 系统实现,详细讲述了按照系统设计的功能,实现系统的各个模块功能的过程,编写了系统的所涉及到的大部分界面和最核心的代码。第5章 总结与展望,对本项目进行一个全面的总结,回顾整个项目的完成过程,并展望该项目的后期发展2 需求分析2.1 软件目标本系统是GPS远程定位及运行轨迹管理系统系统系统。可以方便用户平时对GPS远程定位及运行轨迹管理系统系统的统计。本系统应达到以下目标: (1)软件采用人机交互的方式,界面美观友好,操作灵活、方便、富有个性化。(2)能够对GPS远程定位及运行轨迹管理系统系统的操作。(3)系统应最大限度地实现易维护性和易操

19、作性。2.2 功能分析基于安卓的远程定位系统作为第三方应用程序开发,对界面美观程度,操作的友好性,良好的用户体验,功能是否明确,安全性等方面有着较高的要求。为此,软件设计的原则考虑了以下四个方面:1. 易操作性:此软件的操作设计要直白简单,让用户能够轻松的熟练掌握改软件的操作,快速的掌握该软件的使用。2. 友好性:软件设计界面美观简洁,没有太多冗余的元素来充斥界面;软件对开启和关闭远程定位服务操作给予用户友好的提示信息,让用户感觉操作便捷舒适。3. 实用性:软件完成了基本定位功能,包扩轨迹回放,能像百度地图等其它定位程序一样正常投入使用,具有实际使用价值。4. 安全性:远程定位的设计,着重考虑

20、了安全性,通过屏蔽HOME键、BACK键及状态栏下拉,防止恶意程序越过锁屏程序直接进入手机主页,保证了系统的安全性。2.3 开发工具2.3.1 EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。Eclipse只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括 Java 开发工具。Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联

21、盟Eclipse基金会(Eclipse Foundation)管理,在2015年6月项目发布代号为Mars的4.5版。Eclipse主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具。Eclipse SDK(

22、软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 CPL发布,第三方组件有各自自身的许可协议。2.3.2 Android ADTADT是英文 Android Development Tools 的简称,即Android开发工具包。ADT是Eclipse中构建Android应用程序IDE插件,ADT扩

23、展了Eclipse的功能,让您快速建立新的Android项目、创建应用程序的用户界面。ADT可以帮助Eclipse找到Android sdk,再加上Android框架的API组件调试使用Android SDK工具,以便APK分发给应用程序。ADT大大减轻Android应用程序的开发工作量,工具集成XML编辑器,将给开发人员一个令人难以置信的开发Android应用环境。2.3.3 Android SDKAndroid SDK全名为Android software development kit,即Android软件开发工具包,被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立

24、应用软件的开发工具的集合。其工具包中提供了Android开发的各类文档资料以及Android提供的库文件。Android SDK使用Java语言,在官方网站下载后不用安装直接进行解压,然后解压后的压缩包放到指定位置。2.3.4 GenymotionGenymotion是一套完整的工具,提供了Android虚拟环境,能够支持 Windows、iOS、Linux等操作系统。Genymotion不是普通的模拟器,而是虚拟机,是目前用户体验最好,响应速度最快的虚拟设备。2.4 数据存储SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.Richa

25、rdHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单

26、的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS,关系数据库管理系统应用软件之一。MySQL关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站

27、的开发都选择 MySQL 作为网站数据库。2.5 运行环境本程序的运行环境:设备:PC机一台(CPU Intel奔腾2.9GHz;内存 8GB;硬盘 100GB),Android手机软件:Windows 7或Windows XP操作系统,Android手机模拟器2.6 本章小结本章主要对项目进行需求分析,介绍了项目开发所需的开发工具Eclipseh、Android SDK、Android ADT、Genymotion、安卓中数据存储SQLite、运行环境以及安卓远程定位项目所需实现的功能。3 系统分析与设计3.1 可行性分析随着各大移动终端生产商大力开发和生产基于安卓上的移动智能手机设备, A

28、ndroid飞速的得到了很多业界和使用者的认可,并很快成为整个手机这个产业的上的热点话题,在Android这个强力的平台的成为了大家的焦点。 而且 这个Android 是一个open的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。Google 发起了围绕 Android 的组织开放手机联盟, 其英文全称为 “Open Handset Alliance”。 它采用了软件堆层(software stack,又名以软件叠层) 的架构,主要分为三部分。底层 Linux 内核只提供基本功能;其他的应用软件则 由各公司自行开发,部分程序以 Java 编写。本系统采用Android框架,可以在e

29、clipse中安装Android开发插件,使用Android模拟器也可以使用任意Android终端。模拟器和真正的Android手机没有太大区别,人们对手机操作早已熟悉。安卓远程定位系统运行在普通的Android系统的手机上,对用户来说,操作简单明了。所有的操作通过界面上的提示,用户就能直接使用。因此,在操作上,是十分可行的,易于使用户接受使用。由于安卓远程定位系统是作为第三方软件开发的,未对系统程序造成攻击,也未抄袭他人劳动成果,程序本身也是按照正常的开发流程,所以不存在任何法律问题,在法律上是完全可行的。综合以上该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。3.2 系统设计原

30、理3.2.1 Android系统结构在开发Android操作系统上的应用程序过程中,许多问题需要先去理解才能想办法解决,例如:程序的运行顺序,这时候可能是由于对Android系统结构不太了解,不清楚程序运行的流程,不了解Android的内部运行的机制,所以学习Android系统结构是非常有必要的。Android的系统架构采用了分层架构的思想,从上到下共包括四层,分别是应用程序层、应用框架层、系统库和Android运行时和Linux内核。Android的系统架构采用分层架构的思想,架构清晰,层次分明,各层之间协同工作。Android的系统层次架构图,如图3.1所示。图3. 1 安卓系统层次架构在

31、Android操作系统的整个组织架构图中分了四个层次,其中第三层包含两大块,下面分别对其分析:第一层:Application,应用程序层。应用程序层Application是程序员使用Android SDK开发出来的软件。在本层,Android配备了最为核心和精简的应用程序设置,例如电子邮件客户端、通讯录、地图、浏览器等,这些程序均用Java语言编写。这里的应用程序不同于手机操作系统内固化在系统内部的系统软件,开发人员可以用其他应用程序替换这些应用程序,使其更加灵活和个性化。第二层:Application Framework,应用程序框架层。通过开放平台,Android为开发人员提供了丰富创新的

32、应用。开发人员可以完全访问同一框架应用程序接口,它们会被应用的内核所调用。这种应用程序结构设计的目的是使组件的重用变得简单,这样的机制使得用户可以自己编写组件予以替代。第三层:Libraries、Android Runtime,库文件、Android运行时。Android包括一套C/C+的库文件,它们会被Android系统的各种组件所调用,这些所实现的功能通过Android的应用框架可以被开发者所使用。Android Runtime,Android运行环境。Android包括一组核心库,它们可以提供大多数可以在Java核心库中可以用的函数。每个Android应用都运行在它自己的进程中,凭借自己

33、的Dalvik虚拟机进行实例化。Android Runtime机制和Dalvik不同,在Dalvik下,应用每次运行时,利用即时编译器将字节码装换成机器码,这样严重的降低了系统运行的效率;应用只会在第一次安装时,就将字节码预编译成机器码。可以成为真正的本地应用。在Android Runtime环境下,。由于Dalvik是被写入的,因而一个设备可以高效地打开多个虚拟机,Dalvik虚拟机执行在.dex格式的文件中,这种文件已经被最小内存占用优化过。虚拟机是基于寄存器的,并且用Java编译器执行类文件,这种类文件已经被虚拟机转化工具转化为.dex的格式了,Dalvik虚拟机进行线程的操作和硬件级的

34、内存管理是通过调用Linux的内核来实现的。第四层:Linux Kernel,Linux内核。Android操作系统中类似于安全机制,内存管理,进程调度管理,网络堆栈,硬件驱动等模块都是基于Linux version2.6而开发的。Linux内核中的“内核”指的是一个系统软件,这个系统软件的功能是控制磁盘及文件系统、提供硬件抽象层、处理多任务等。Android操作系统上的Linux内核是在硬件层和其它软件堆栈层之间扮演着抽象层地角色。3.2.2 Broadcast工作原理Broadcast译为Android中的广播机制,在Android中,某些操作完成以后,会发送系统广播,然后触发相应的操作。

35、Android远程定位系统设计中需要监听屏幕开启广播和开机启动广播,由于有序广播的优先级问题,类似于屏幕开启和关闭广播在静态注册时,系统的优先级大于普通的应用,并且系统会阻止广播的向下传播,所以这类广播必须在配置文件中静态注册。静态注册是当程序关闭后,如果有广播发过来,还能启动程序动态注册的生命周期跟程序的生命周期是一样的,程序关闭后动态注册的广播是不能在接收到广播的,而在开机启动之前,程序肯定是关闭的,所以开机启动广播只能使用静态注册方式。Android广播机制的三要素:1. 广播(Broadcast):用于发送广播,是一种广泛应用的在应用间传输信息的机制,一般分为有序广播(Ordered

36、Broadcasts)和普通广播(Normal Broadcasts)。 2. 广播接收器(BroadcastReceiver):用于接收广播,是对发出来的Broadcast进行过滤接受并响应的组件。3. 意图内容(Intent):用于保存广播相关信息的媒介,实现组件之间的通信。3.3 系统组成模块系统模块在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。它具有两个基本的特征:外部特征和内部特征。外部特征是指模块跟外部环境联系的接口和模块的功能;内部特

37、征是指模块的内部环境具有的特点。为了将安卓远程定位项目的编码工作明确化,项目按照功能划分了七个模块。这六个模块分别是:客户端登录、客户端注册、客户端主界面、服务器端登录、服务器端用户管理、服务器端远程定位、服务器端轨迹回放。其中客户端主界面模块包含定位和轨迹回放功能,以及更改刷新时间。根据每个模块的功能进行代码的编写工作,按照需求自顶向下分析实现每一个功能模块所要实现的功能,每一模块只留出和外部之间传递消息的接口。采用模块化的管理方式可以使软件结构更加清晰,方便之后的维护管理,容易理解和使用。每个模块完成以后,根据总体框架将各个模块结合起来,保证功能的完善性。对安卓远程定位项目,按照系统所需完

38、成功能,我们将其划分为以下七个模块,如图3.2所示。图3.2 系统功能模块3.4 系统流程图System Flowchart又叫系统里的流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员做进一步分析的依据。它的最根本的思想就是用图形和符号以黑盒子方式去描绘该系统里面的所有部件,然后表达出相应的信息在每个部件所流动的状况,GPS远程定位及运行轨迹管理系统的流程图如图3.3所示。图3.3 系统流程图3.5 系统

39、用列图用例图定义:由参与者(Actor)、用例(Use Case)以及它们一起的关系构成的系统功能的所有的静态视图一起称为系统用例图。下面为系统用例图。 图3.4用户用例图 图3.5管理员用例图3.6 本章小结本章对安卓远程定位做了系统的分析,介绍了系统设计原理、各个功能模块、设计模块的实现方法,绘制了系统的流程图,为安卓远程定位系统的实现提供了明确的设计流程和方法。4 系统编码实现4.1 安卓的工程4.1.1 安卓工程程序结构Android工程基本结构目录包括以下几个:src目录:该目录中存放的是该项目的源代码,本系统把源码分成五个包。form包功能是客服端和服务器端进行数据传输,gap包是

40、MainActivity的界面和手机地图以及定位功能,plugs包功能是客户端链接到服务器,tool包获取正在使用数据库的路径。util包字节输入和输出工具。gen目录:该目录下的文件全部都是ADT自动生成的,一般并不需要去修改,实际上该目录下只定义了一个R.java文件,该文件相当于项目的字典,为项目中用户界面、字符串、图片等资源都会在该类中创建其惟一的ID,当项目中使用这些资源时,会通过该ID得到资源的引用。Res目录:该目录用于存放应用程序中经常使用的资源文件,其中包括图片、声音、布局文件以及参数描述文件等。assets目录:资源路径,不会在R文件注册。该目录用于存放项目相关的资源文件,

41、例如文本文件等,在程序中可以使用 “getResources.getAssets().open("text.txt")”得到资源文件的输入流InputStream对象。bin目录:二进制文件,包括class、资源文件、dex、apk等。res目录:该目录用于存放应用程序中经常使用的资源文件,其中包括图片、声音、布局文件以及参数描述文件等,远程定位程序结构如图4.1所示。图4.1远程定位程序图AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局如表4.1所示表4.1资源的类型和

42、布局4.1.2 系统权限Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。 Android系统有一个编码的规定,支持的编码是"utf-8",当程序中出现乱码是,我们须将其编码格式转化为"utf-8".在 A

43、ndroidManifest.xml中会在第一行声明一句:<?xml version="1.0" encoding="utf-8"?>。它是该系统支持的版本和编码。xmlns(XML namespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。AndroidManifest.xml配置文件的根元素,必须包含一个元素并且指定xlmns:android和package属性。xlmns:android指定了Android的命名空间,默认情况下是“为了保证

44、Android应用的安全性,应用框架制定了比较严格的权限系统,一个应用必须声明了正确的权限才可以使用相应的功能,例如我们需要让应用能够访问网络就需要配置“android.permission.INTERNET”,而如果要使用设备的相机功能,则需要设置“android.permission.CAMERA”等。基于安卓的远程定位系统中所需要的一些权限如下表。表4.2系统权限表权限作用ACCESS_WIFI_STATE允许程序访问Wi-Fi网络状态信息ACCESS_FINE_LOCATION通过GPS芯片接收卫星的定位信息ACCESS_LOCATION_EXTRA_COMMANDS允许程序访问额外的

45、定位提供者指令ACCESS_MOCK_LOCATION获取模拟定位信息CHANGE_WIFI_STATE允许程序改变Wi-Fi连接状态CHANGE_CONFIGURATION允许当前应用改变配置INTERNET访问网络连接READ_SYNC_STATS允许程序读取同步状态4.1.3 数据库技术本系统采用mysql数据库,下面为各个实现的表。表4.3经纬度t_info表序号字段名称字段类型大小允许为空最大长度备注1idInt4自增编号10 2imeiVarChar255是255 3phoneNmText16是255 4jingduVarChar50是255 5weiduVarChar50是255

46、 6imgVarChar50是255 7usernameVarChar8是23 表4.4用户信息t_user表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2usernameVarChar50是255 3passwdVarChar50是255 4roletypeVarChar50是255 5roletypecnDateTime8是23 6telVarChar50是2554.2 客户端模块4.2.1 登录模块登录界面使用<div>元素布局分为三个区域,分别是标题栏、表单区、button按钮区。标题“请登录”使用<h1>最大标题。中间使用的是表单&

47、lt;form>,表单中有用户名和密码使用的是label标签,其对应的输入框的类型分别是text和password,其值都先设为空。管理员和普通用户用的是select样式默认选中管理员。第三块区域使用的是两个button按钮,分别是登录和注册并且添加onclick事件,html界面设计如图4.2,实际效果如图4.3。 图4.2 登录模块设计图 图4.3 登录实际效果图 4.2.2 注册模块注册界面使用<div>元素布局也分为三个区域,分别是标题栏、表单区、button按钮区。标题“用户注册”使用<h1>最大标题。中间使用的是表单<form>,表单中有用

48、户名、密码还有电话使用的是label标签,用户名和密码输入框的类型分别是text和password,电话的输入框类型是number,其值都先设为空。第三块区域使用了一个button按钮,并且添加onclick事件,html界面设计如图4.4,实际效果如图4.5。图4.4 注册模块设计图4.5 注册实际效果图4.2.3 主界面模块主界面分为标题栏和<div>元素区,标题"定位"使用最大标题<h1>。使用属性data-iconpos="left"把"选项"嵌入在标题栏的左边,并且自定义一个超链接<a href

49、="#popupMenu">。同样的把"我的位置"嵌入在标题栏右边。div中使用有序列表<ul>每个列表项始于 <li> 标签并且用listview设置样式,把"查询轨迹"、"我的轨迹"、"5秒刷新"、"10秒刷新"、"30秒刷新"、"退出"分别加入标签中,并把每一个都自定义一个标签,主界面设计如图4.6,实际效果如图4.8。 图4.6 主界面模块图图4.7 主界面4.3 服务器模块4.3.1 登录模块在进

50、入后台管理之前先要启动电脑中的mysql数据库和XMAPP中的apache服务器,后台管理只能管理员登录,用户名和密码正确就会提示登录成功,非管理员登录会提示用户或密码不正确用户需要重新输入再进行登录。登录成功会跳到用户管理界面,点击用户列表会显示所有的用户信息。效果如下图。图4.8 后台登录图图4.9 用户列表图4.3.2 用户管理模块管理员可以对用户进行增删改查。增加需要输入用户名、电话、密码还要设置权限,点击保存成功后会提示操作成功。删除之前先选中需要删除的用户然后在点击删除,系统会提示是否确认删除点击确定进行删除。修改会弹出用户的所有信息,进行修改后点击保存即可。查询输入需要查询的用户

51、名点击查询,在用户列表里只会显示查询的用户。 图4.10添加用户图图4.11删除用户图图4.12修改用户图图4.13查询用户图4.3.3 远程定位模块用户登录客户端后系统会记录用户的位置信息,客户端系统把数据传输到后台服务器把数据添加到数据库中,在位置信息中管理员可以查看用户的经纬度信息,地图上可以显示用户的所在位置,定位效果如图4.14所示。4.3.4 轨迹回放模块客户端每个一段时间就会在地图上记录一次用户的位置信息,在地图上打出不同的点把这些点连接起来就形成轨迹,定位刷新时间越短轨迹越精确。管理员在位置地图信息中输出需要查询的用户,点击查询轨迹即可查看用户的轨迹,轨迹回放效果如图4.15所

52、示。图4.14定位图图4.15轨迹回放图4.4 本章小结本章主要介绍了安卓远程定位系统具体编码实现,将项目开发的环境配置,数据库的实现,手机端界面,后台管理系统都进行了详细的论述及代码实现,并展示了项目各个功能模块的效果图。5 总结在这几个个月的时间里,我们已基本完成了毕业设计。在编程的过程中,我们学到了很多知识,不仅是编程开发方面的专业技能,更锻炼了自己的毅力和耐性。 经过一段时间的设计和开发,安卓远程定位系统基本开发完毕,系统功能基本符合远程定位的需求,由于时间比较紧迫,该系统还有些不足之处,比如有些界面做的不够漂亮,不够人性化,有的操作有点繁琐,这些都是后续工作可以更好完善的。因为对远程

53、定位调研不够精确,所以有些问题没有考虑到,导致有些实现的功能不够周全,还需要进一步的完善。对于一些复杂的代码还需要进一步的修改,使之更加简捷易懂。 在开发安卓远程定位系统的过程中,出现了很多问题,如当调试时,出现,程序加载不进去,以前我们只知道单一的调试方法,即点击调试按钮,不知道代码出错信息在哪里,很难调试成功,后来经过到网上搜索信息,以及请教老师和同学,渐渐的懂得了如何调试程序,这需要在相应的函数添加断点,按F10,分段调试,一点一点调试,就能可找出错误出现在哪个地方,然后再不断的调试。 在创建数据库时,会出现,主键和外键的先后创建问题,以及当创建了表和字段的主外键和关系后,需要修改数据库时,会出现主外键的问题,这时就要考虑修改数据表的先后问题了。在创建登录界面的功能时,刚开始理解的有点错误,导致后来登录界面没有更实际的功能,经过一段时间的修改,终于修改成功了,编程并不是最难的,修改程序,调试程序往往是最繁琐,最耗时间的,但是通常,只

温馨提示

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

评论

0/150

提交评论