




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文题目:基于Android手机内置GPS的地铁助手的设计与实现外文题目:Design and realization of built-in GPS Metro assistant based on Android mobile phone毕业设计(论文)共 88(其中:外文文献及译文7页)图纸共 0张完成日期 2012年6月 答辩日期2012年6月摘要随着移动平台的崛起,更多的传统PC软件被移植到移动平台,比如ipad,iphone,Android等智能终端设备,在这些平台中Android占领着最大的市场份额(2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%),所以为Android用户开发满足日常使用的软件成为了现在的一大热门。本文主要介绍了基于Android手机内置GPS的地铁助手的设计与实现制作的全过程,Android手机地铁助手是基于Android手机的一款地图应用软件,目的在于为北京市地铁系统提供一个移动软件,为市民查询地铁线路提供极大便利,方便出行。应用此软件,市民可以利用手机轻松便捷地查询自己出行需要乘坐的地铁,同时可以设置导航,搜索导航线路,为自驾出游提供路线参考,软件直接运行在搭载Android系统的手机或者平板上。手机客户端主要应用Android开发技术,地图数据调用google公司提供的API来实现。关键词:Android;google;地图;导航;定位ABSTRACTWith the rise of mobile, more traditional PC software has been ported to mobile platforms, such as iPad, iPhone, Android and other intelligent terminal equipment, in these platform Android occupied the largest market share (the fourth quarter of 2013, the global market share of the Android mobile phone platform has reached 78.1%), so Android users meet daily use of the software has now become one of the hottest.This article mainly introduced the metro based on Android mobile phone built-in GPS assistant production process, the Android subway assistant is a map of application software based on Android, aims to the Beijing subway system provides a mobile software, great convenience for citizens query subway lines.Applying this software, people can use mobile phone easy to query their travel need to ride the subway, at the same time you can set the navigation, searching navigation line, to provide drive travel route information, software running directly in carrying on the android mobile phone or device.Mobile client mainly used Android development technology, called Google maps data API provided by the company.Key words: Android;the google map; navigation; locationI目录摘要IABSTRACTII1 项目概述11.1 选题背景11.2 选题目的及意义11.2.1 选题的目的11.2.2 选题的意义11.3 研究现状与发展趋势21.4 系统功能模块22 系统需求分析42.1 需求陈述42.2 Use Case建模52.2.1 定义参与者52.2.2 Use Case图53 系统架构设计83.1 架构设计目标83.2 系统架构设计83.3 系统架构类图134 系统详细设计154.1 系统交互图154.1.1系统架构类交互图154.1.2 参与者与模块间的交互164.1.3 系统协作图184.1.4 系统状态图194.1.5 系统活动图204.2 业务逻辑对象类设计214.2.1发现业务逻辑类214.2.2业务逻辑对象类图214.3 数据库设计214.3.1 ER图224.3.2 物理表结构图224.4 开发环境的选择234.4.1系统开发工具234.4.2数据库的选择244.4.3 Android系统架构255 编码285.1 编程语言285.1.1 编程语言命名说明285.1.2 数据库字段命名说明305.2 源程序系统说明305.3 系统代码举例306 测试336.1 测试原则及测试方法概述336.1.1 测试原则336.1.2 测试方法346.2 测试项目测试用例356.3 软件测试结论376.3.1 软件能力376.3.2 缺陷和限制376.3.3 建议376.3.4 测试结论377 结论39致谢40参考文献41附录A 中文译文42附录B 英文原文45附录C 源程序代码49辽宁工程技术大学毕业设计(论文)1 项目概述1.1 选题背景 近年来,网络、地理信息技术等都有了很大的发展,特别是谷歌公司推出的谷歌地图,被广泛的应用于世界各地。谷歌地图应用程序接口Google Map API给用户提供了整合应用,现在已有许多应用程序开发人员使用谷歌地图API来扩展地图服务,及大地方便了人们的生活 。并且Android平台是一个面向大众的系统,分布在低端、中端和高端市场中。并且Android是开源的,开发者可以随时都可以查看系统原代码,并且使用时下最流行的java作为其主要的开发语言。由于这些特点,使得Android成为现在市场占有量最大的软件平台,在这样的平台上面开发一款独特的日常生活软件尤为必要。 而在北京这个高现代化城市中,地铁能够很好地缓解北京的交通压力,成为市民们出行必不可少的交通工具。随着因特网发展的日新月异,人们利用网络实现资源共享以及协同工作越来越成为时代的新潮流,用各种网上的软件方便生活,已经成为了一个不可扭转的趋势。因此有必要开发出关于地铁导航的相关软件,以便帮助人们出行。1.2 选题目的及意义1.2.1 选题的目的 本次选题的目的是,方便市民出行,用户可以在任意一款支持GPS定位的Android手机或平板电脑中安装这款软件,通过查询和导航帮助用户查找想要到达的地铁站或者最近地铁站的信息。本软件更适用对北京并不熟悉的背包旅行一族,利用此软件可以减少很多问路时间,可以利用安装这款软件的支持GPS定位的Android手机或平板电脑来自己查询最近站点以及地铁线路,这条线路所经过的站点等信息。使对北京不熟悉的你面对纵横交错的马路不再迷茫,可以自己畅游北京。1.2.2 选题的意义 本课题研究具有重大意义:在当今出行线路多数是通过PC机查询获得的,但是假想一下在出行线路走到一半的时候计划有所变化,出行线路需要有所调整,那么如何能够动态掌握线路信息显得尤为重要,而且将来对生活的满意度也不仅仅是百姓致富安居乐业就足以,而是逐渐趋向于一个更人性化的服务。城市交通服务以及附属的一些服务一直都在不断的随着社会的进步而进步,这些服务从最开始的直接人力服务转向技术型服务,如电话询问,路牌等,然而这些服务总是有比较大的局限性,即纵然你知道了这条路该怎么走,下条路线该通到哪却不知,于是开发这个手机线路查询软件,可在手机上随时随地对线路进行查询,对用户将要出行的路线了如指掌。1.3 研究现状与发展趋势 2008 年9 月,Google 发表了Android 开放源码计划,释出Android 程序代码。紧接着运营商德国T-Mobile 在纽约正式发布第一款Android手机T-MobileG1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android 操作系统的手机,支持WCDMA/HSPA 网络,理论下载速率7.2Mbps,并支持Wi-Fi。截止目前已经有多款使用Android 的智能手机 ,超过 5 万的应用程序。在不到两年时间的发展中,美国市场研究公司NPD近日发布的统计数据显示,今年第一季度期间,Android手机在美国市场的销量已超过iPhone,占据该季度美国智能手机总销量的28%,iPhone相应份额为21%。随着Android手机在市场上的份额越来越大,相应的Android系统的应用软件也越来也受到人们的重视。本次毕业设计就是结合Android系统手机设计一个地铁线路查询导航系统,学习了解Android系统的开发过程。1.4 系统功能模块 基于Android手机内置GPS的地铁助手以面向对象建模与设计方法学为指导理论,严格按照面向对象软件开发过程的系统构思、领域分析、应用分析、系统设计、类设计、实现、测试部署和维护这八个阶段来执行。软件过程方面,本系统所采用的是瀑布模型,瀑布模型具有以下特点,阶段间具有顺序性和依赖性、推迟现实的观点、质量保证的观点。结合我现在的开发实际,采用迭代模型是最合理的选择。本系统主要提供站点结构选择、线路选择显示、最近站点查询和路线导航等功能,系统的功能结构图,如下图1-1所示: 下面模块划分只是抽象意义上的划分,各模块之间需要共享数据,相互协作,完成整个系统流程,单一事物功能模块间是相互独立的。Android手机地铁助手站点选择线路显示最近查询路线导航图1-1 系统功能模块Fig 1-1 Function Models of System2 系统需求分析2.1 需求陈述为了开发出真正满足用户需求的软件产品首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。需求陈述为以下工作提供了良好的机制:理解客户需要什么,分析要求,评估可行性,协商合理的方案,无歧义的详细说明方案,确认规格说明,管理需求以致将这些需求转化为可运行的系统。根据调研分析得知,地铁助手共需要完成4项中心任务,即:站点选择、线路显示、最近查询、路线导航。每项任务具体描述如下:1.站点选择站点选择模块主要通过访问数据库查询到北京地铁路线和相应的站名,通过下拉列表选择站点并进行导航。2.线路显示线路显示模块主要通过勾选不同的线路确定在地图上显示不同的地铁路线图。3.最近查询 最近查询模块主要是根据用户当前位置,查询附近5公里以内的地铁线路及站点信息等。4.路线导航路线导航模块主要由根据定位的当前位置及查询到的附近的要去的地铁站点之间进行路线导航。系统任务确定之后,下面的工作就是进行系统分析。面向对象的分析的主要任务是:分析问题领域、找出问题解决方案、发现对象、分析对象的内部构成和外部关系、建立软件系统的对象模型。分析问题领域是软件系统开发的一项基本工作,是项目开发之初首先进行的重要工作。分析问题领域的结果是对问题领域清晰、精确的定义,即明确目标系统将做什么。分析问题领域的主要任务是:对问题领域进行抽象、提出解决方案、对未来的系统进行需求分析、确定系统的职责范围、功能需求、性能需求、应用环境及假设条件等。2.2 Use Case建模2.2.1 定义参与者参与者(actor)是系统的直接外部用户直接与系统通信的一个对象或一组对象,但并不是系统的一部分。每个参与者都表示以某种方式对系统起作用的那些对象。参与者可以是人、设备和其他系统任何与系统直接交互的事物。如果对象的行为有不同的侧面的话,他就可以被绑定到多个参与者上。参与者有一个明确的用途。参与者表示在与系统交互当中对象的特定侧面。同一参与者可以表示不同的类的对象,这些对象都执行类似的与系统的交互。每个参与者都便是其对象的一组连贯的功能。参与者与系统的各种交互都可以被量化成用例。用例(use case)是系统通过与参与者的交互可以提供的一段连贯的功能。一个参与者可以执行多个用例,一个用例也可以由多个参与者使用。根据系统模块的需求可以确定2个参与者,即用户,google地图模块。用户使用系统客户端进行登录,使用相关功能进行地铁查询和线路导航。2.2.2 Use Case图根据系统需求分析,结合上节系统参与者的定义分析,得到手机地铁助手的10个用例如下:1. 最近站点查询2. 站点选择3. 路线显示4. 路线导航5. 站信息6. 换乘站信息7. 站线关系8. 路线所有站信息9. 出行路线信息10. 修正路线信息结合活动者和用例得到系统的用例图如下图2-1所示。图2-1 系统Use Case 图Fig2-1 Use Case for System依据以上对系统的用例分析,对各用例做进一步分析得到以下对用例的描述。(1)最近站点查询用例。表2-1 最近站点查询的用例规约Table 2-1 The Use Case Specification of Queries the Recently Site用例名称:最近站点查询用例编号:1用例描述:用户主要功可以查询离用户5公里内的最近站点参与者:用户前置条件:打开软件,进入主界面后置条件:成功进入界面基本操作流程:参与者动作系统响应1.用户打开主界面,点击最近站点查询按钮2.系统查找数据库,看该用户所在位置的最近站线信息,若存在则页面显示信息,若不存在,则进入2.1可选操作流程:参与者动作系统响应1.1 进入主页面没成功2.1 附近没有站点1.2 没打开GPS定位2.2 请打开GPS定位(2)站点选择用例。表2-2 站点选择的用例规约Table 2-2 The Use Case Specification of Selection Site用例名称:站点选择用例编号:2用例描述:用例主要功能是实现用户站点选择参与者:用户前置条件:进入主界面成功后,进入填写路线信息后置条件:点击填写路线信息成功基本操作流程:参与者动作系统响应1.在下拉列表中选择要去的站点2.系统去数据库查询相应的站点信息,在路线上显示相应的站点(3)路线显示用例。表2-3 路线显示的用例规约Table 2-3 The Use Case Specification of Display Route用例名称:路线显示用例编号:3用例描述:用例主要功能是实线用户的路线显示参与者:用户前置条件:成功登录系统后,进入填写路线信息,选择地图路线显示后置条件:点击填写路线信息成功基本操作流程:参与者动作系统响应1.进入主界面,点击填写路线信息2.系统响应点击事件,进入填写路线信息界面3.用户可以选择地图路线显示的地铁线路4.系统去数据库查询相应的路线信息,并显示在页面上(4)路线导航用例。表2-4 路线导航的用例规约Table 2-4 The Use Case Specification of Route Navigate用例名称:路线导航用例编号:4用例描述:用例的主要功能是实现用户的路线导航参与者:用户前置条件:登录系统后,进入显示导航情况界面后置条件:选择出最近站点线路基本操作流程:参与者动作系统响应1.进入主页面,点击显示导航情况按钮2.系统响应点击事件,页面跳转成功显示用户的出行路线3 系统架构设计 软件的系统架构是指通过某种特定的技术平台,完成软件系统整体功能的开发过程。也可以通俗地理解为:总体设计和总体结构布局。在系统设计的过程中我们要设计高层策略,即系统架构,用于解决问题并构造问题的解决方案。系统设计是设计的第一个阶段,设计出解决问题的基本方法。在系统设计阶段,开发者要确定系统的整体结构和风格。系统架构决定了将系统划分成子系统的组织方式。除此之外,系统架构也为后续阶段的详细决策提供了一个上下文环境。3.1 架构设计目标软件架构设计要达到如下的目标:1可行性(Feasible)。架构具有可行性是架构设计的基石。2可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。3安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。4可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。5可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。6可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。7可升级性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。8客户体验(Customer Experience)。软件系统必须易于使用。软件的最终用户很可能是不具有计算机专业技术的人员。3.2 系统架构设计以下将根据架构设计原则和信息系统原理来建立系统的架构设计模型。将系统中比较关心的对象分层,服务端和客户端均可分为三层:用户界面层、业务逻辑层、数据访问层,如图3-1所示:用户界面层User Interface Layer业务逻辑层Business Logic Layer数据访问层Data Access LayerAndroid UIUser Interface ProcessingService LibraryData Base Access ObjectDALInterfaceDALFactoryBusiness Entities & Models图3-1 系统体系架构图Fig3-1 The Diagram of System Architecture把各层中的一些公共部分提出来:权限管理、异常处理,这样得到包图如图3-2示:图 3-2系统包图 Fig3-2 Package Diagram of the system1.converter(转换编码包)转换编码包的职责是:1)当客户端和后台服务端产生信息交互时,HTTP请求协议需要转换为十六进制编码。2)对于传出的数据进行编码处理。3)对于接收到的数据进行解码处理。转换编码包展开如图3-3所示: 图3-3 转换编码包展开图Fig3-3Package Diagram of Converter转换编码包包含的类如图3-4所示。图3-4 转换编码类图Fig3-4 Class Diagram of Converter2.ui(用户界面包) 用户界面包的职责是:1)与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。2)对于输入的数据进行数据校验,过滤非法数据。3)向业务处理对象发送处理请求。4)用于封装界面的数据,并设计数据显示的方案。用户界面包包图展开如图3-5所示。 图3-5用户界面包包图展开Fig3-5 Package Diagram of User用户界面包包含的类如图3-6所示。图3-6 用户界面类Fig3-6 Class Diagram of User3.logic(业务逻辑包)业务逻辑包的职责是:1)接收用户界面层传来的数据;2)根据用户界面的数据向后台请求相应的服务;3)实现业务逻辑的算法并检查异常处理;4)接收后台发回的信息,对信息进行逻辑处理返回给用户界面;业务逻辑包包图展开如图3-8所示。 图3-7 业务逻辑包包图展开Fig3-7 Package Diagram of Business业务逻辑包包含的类见图3-8:图3-8 业务逻辑类图Fig3-8 Class Diagram of Business4.dbutil(数据访问包)数据访问层的职责是: 1)连接数据库;2)实现数据持久化操作;3)执行事务处理,维持事务原子性。数据访问包包图展开如图3-9所示:图3-9 数据访问包图展开Fig3-9 Package Diagram of Data Access数据访问包包含的类见图3-10:对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。图3-10数据访问类图Fig3-10 Class Diagram of Data Access5.dialog(对话框包)对话框包的主要职责是:1) 用户选择数据时跳出对话框,保证数据格式正确性;2) 用户退出客户端是弹出对话框,询问是否退出。对话框包包图展开如图3-11所示:图3-11对话框包包图展开Fig3-11 Package Diagram of Dialog对话框包包含的类如图3-12所示:图3-12对话框类图Fig3-12 Class Diagram of Dialog6.service(后台服务包)1)接收前台客户端层传来的服务请求;2)根据传来的服务要求生产SQL命令;3)实现服务处理的算法并检查操作权限及异常处理;4)调用数据访问层提供的方法形成完整业务;5)传递业务执行命令给数据访问层业务逻辑实现持久化操作。后台服务包图展开如图3-13所示:图3-13后台服务包图展开Fig3-13 Package Diagram of Service后台服务包包含的类见图3-14所示:图3-14后台服务类图Fig3-14 Class Diagram of Service3.3 系统架构类图 将包图展开,得到类图,它是架构的静态结构图,表达了各个类之间的静态联系。手机地铁助手系统架构类图如下图3-15所示。图3-15 系统架构类图Fig3-15 Class Diagram of System Architecture4 系统详细设计本部分设计主要涉及软件系统的动态建模和系统类图的详细设计。软件系统的动态模型分为状态模型和交互模型。状态模型描述了与操作的时间和顺序相关的对象层面标记变化的事件,界定事件上下文的状态,以及时间和状态的组织。状态模型捕获控制,即描述操作出现顺序的系统层面,不用考虑操作做了些什么,它们在操作什么,或他们是如何实现的。状态图表示状态模型。每幅状态图都显示了系统内允许的某个对象类的状态和事件序列。状态图会引用其他的模型。状态图中的动作和事件都变成了类模型中对象上的操作。状态图之间的引用变成了交互模型中的交互。交互模型描述对象之间的交互各个对象如何写作,来从整体上完成系统的行为。状态和交互模型描述了行为的不同侧面,它们两者配合才能完整描述行为。用例、顺序图和活动图描述交互模型。用例描述系统和外部参与者之间交互的主要内容,顺序图显示交互的对象和交互的时间顺序,活动图显示计算的处理步骤之间的控制流。4.1 系统交互图4.1.1系统架构类交互图系统架构的工作流程如下:1.用户窗体在接收了用户的登录信息后,进行登录验证,然后显示系统主页面;2.用户窗体在提交业务请求前,封装数据,然后把封装的数据对象和业务请求传给业务逻辑类的对象进行处理;3.管理界面提交管理员的登录信息后进入到业务逻辑类中,业务逻辑对象接收到请求后,进行业务处理,生成对应的命令,然后提交给数据库访问层进行执行;4.数据库访问对象连接数据库并执行命令后,如果正常执行则返回数据给业务逻辑对象,若产生异常则交付异常处理对象进行处理;5.业务逻辑对象获得返回的数据进行进一步的业务处理,如发生异常则交付给异常处理对象;6.业务逻辑对象将处理的结果封装返回用户窗体类;7.用户窗体类对封装数据进行解读,然后显示处理结果在窗体上。系统架构类的交互图如图4-1所示:图4-1系统架构类的交互图Fig4-1 Interactive Diagram of System Architecture Class4.1.2 参与者与模块间的交互与最近站点查询模块进行交互的活动者(角色)主要是用户。用户与最近站点查询模块、线路查询模块的交互图如下图4-2、图4-3所示:图4-2用户与线路查询模块交互图Fig4-2 Interactive Diagram between User and Route Selection Model 图4-3用户与最近站点查询模块交互图Fig4-3 Interactive Diagram between User and Shortest Station System4.1.3 系统协作图根据上节描述的用户与最近站点查询模块的时序图,给出协作图如下图4-4所示:图 4-4 用户与站点查询模块的协作图Fig4-4 Collaboration Diagram for User and Shortest Station Model图 4-5 用户与线路查询模块的协作图Fig4-5 Collaboration Diagram for User and User and Route Selection Model4.1.4 系统状态图状态图是通过类对对象的生命周期建立模型来描述对象随时间变化的动态行为。在路线导航模块中,主要有填写路线信息、选择站点、路线导航3种状态,状态图如下图4-6所示。图 4-6 用户与手机助手系统的状态图Fig4-6 State Diagram for User and Mobile phone assistant system4.1.5 系统活动图活动图是描述活动是如何协同工作的。当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。用户首先进入系统,如果进入成功则填写路线信息和显示导航情况;还可以进行列表站点选择;同时可以查询最近距离。完成活动后退出系统,下面给出手机地铁助手的活动图,如下图4-7所示。图 4-7 手机地铁助手的活动图Fig4-7 Activity Diagram for Mobile phone assistant system4.2 业务逻辑对象类设计4.2.1发现业务逻辑类本小节的主要任务是对系统架构类图中的业务逻辑类进行设计,由系统分析中的Use Case交互图我们可以发现业务逻辑类包括线路、临时信息、站点。 根据Use Case交互图中的消息找到对象类相应的方法。4.2.2业务逻辑对象类图系统业务逻辑对象类图如下图4-8所示。图4-8地铁助手系统类图Fig4-8 Object Class Diagram for Metro Assistant System4.3 数据库设计关系型数据库是目前应用最广泛的数据库。既然是面向对象系统设计,数据库设计当然也要是面向对象的。现在要考虑如何对类进行持久化操作,即如何将对象类映射到关系数据库的二维表。目前可以采用数据库建模工具来实现,像PowerDesigner、Rose 等。4.3.1 ER图线路,站点和临时信息都是基础类,可以直接映射为一个表。手机地铁助手的ER模型图见图4-10。线路 临时信息站点1nnnnn4-10 手机地铁助手ER图Fig4-10 E-R Diagram of Metro Assistant System4.3.2 物理表结构图根据需求描述和软件架构设计,线路,站点,临时信息等都是模型层的实体类,根据上节中系统架构类图可以直接映射为二维表。经过数据库表结构设计,得到物理表结构如下:1.地铁线路表lines:用于记录线路的基本信息,详细情况如表3-1所示。表3-1 地铁线路表结构tab.3-1 Structure of lines Table主键标识字段名类型可否为空注释PKL_numberintegerN线路编号L_nameVarchar2(20)Y线路名称L_descriptionVarchar2(100)Y线路描述2.地铁站信息表station:用于记录地铁站的基本信息,具体情况如表3-2所示。表3-2 地铁信息表结构tab. 3-2 Structure of StationTable主键标识字段名类型可否为空注释PKS_numberintegerN编号S_nameVarchar2(20)Y站名称S_descriptionVarchar2(40)Y站描述S_jdVarchar2(20)Y站经度S_wdVarchar2(20)Y站纬度3.线站关系表ls:该表记录地铁线路与站之间的关心,具体段情况如表3-3所示。表3-3 线站关系表结构tab. 3-3 Structure of line and station realation Table主键标识字段名类型可否为空注释PKXZ_idIntegerN编号L-numberIntegerY线路编号S_numberIntegerY站编号NumIntegerY序号4.线路修正表linervise:该表记录了各站点之间的信息,具体情况如表3-4所示。表3-4 路线修正表结构tab. 3-4 Structure of linervise Table主键标识字段名类型可否为空注释PKIdIntegerN编号NumVarchar(3)Y序号Xz_idVarchar2(5)Y线站编号JdVarchar2(20)Y经度WdVarchar2(20)Y纬度5.换乘站表tranfrostop:该表记录了换乘站之间的站点信息,详细情况如表3-5所示。表3-5换乘站表结构tab. 3-5 Structure of tranfrostop Table主键标识字段名类型可否为空注释PKidIntegerN编号NameVarchar2(20)Y换乘站名称JdVarchar2(20)Y经度WdVarchar2(20)Y纬度人L_nameVarchar2(20)Y线路名6.临时信息表temp:该表记录了一条线路所有站点的信息,详细情况如表3-6所示。表3-6临时信息表结构tab. 3-6 Structure of temp Table主键标识字段名类型可否为空注释PKNumIntegerN序号JdVarchar2(20)Y经度WdVarchar2(20)Y纬度4.4 开发环境的选择4.4.1系统开发工具该系统在设计和开发过程中,开发工具主要用到了Eclipse、Dreamweaver 8等工具,下面对选取这些工具的原因进行简要介绍。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。Eclipse可以添加Android SDK 从而实现利用java语言在一个开放的免费平台上对android项目进行开发。4.4.2数据库的选择本系统选择SQLite 作为后台数据库,SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有14个年头,SQLite也迎来了一个版本 SQLite 3已经发布。SQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,同时它还支持事务处理能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。到2013年10月17日最新版本是 3.8.1 。它的官方网站是:或者http:/www.sqlite .com .cn,能在上面获得源代码和文档。同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士在确定是否在应用程序中使用 SQLite 之前,应该考虑以下几种情况: 目前没有可用于 SQLite 的网络服务器。从应用程序运行位于其他计算机上的 SQLite 的惟一方法是从网络共享运行。这样会导致一些问题,像 UNIX 和 Windows 网络共享都存在文件锁定问题。还有由于与访问网络共享相关的延迟而带来的性能下降问题。 SQLite 只提供数据库级的锁定。虽然有一些增加并发的技巧,但是,如果应用程序需要的是表级别或行级别的锁定,那么 DBMS 能够更好地满足您的需求。 正如前面提到的,SQLite 可以支持每天大约 100,00 次点击率的 Web 站点 并且,在某些情况下,可以处理 10 倍于此的通信量。对于具有高通信量或需要支持庞大浏览人数的 Web 站点来说,应该考虑使用 DBMS。 SQLite 没有用户帐户概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。 SQLite 支持多数(但不是全部)的 SQL92 标准。不受支持的一些功能包括完全触发器支持和可写视图。如果您感到其中的任何限制会影响您的应用程序,那么您应该考虑使用完善的 DBMS。如果您可以解除这些限制问题,并且对快速灵活的嵌入式开源数据库引擎很感兴趣,则应重点考虑使用 SQLite。一些能够真正表现 SQLite 优越性能的领域是 Web 站点,可以使用 SQLite 管理应用程序数据、快速应用程序原型制造和培训工具。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,它将为那些以前无法提供用作持久数据的后端的数据库的应用程序提供了高效的性能。现在,没有必要使用文本文件来实现持久存储。SQLite 之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQL。这一点对于对于小型设备空间的应用程序来说尤其重要。嵌入式数据库对于加快应用程序开发也很重要,尤其是在用于数据库抽象层(例如PEAR:DB或ezSQL)时。最后,SQLite 正在积极开发中,未来一定会有新的功能,会对开源社区更有用。4.4.3 Android系统架构 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的,基于Linux平台开源手机操作系统的名称,该平台有操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的解决方案。Android最初是由Andy Rubin创造的,其最初的目标是把Android打造成一个可以对所有软件设计人员开放的移动终端平台18。Android的系统架构和其操作系统一样,采用了分层的架构。架构图如图5-3所示,从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。APPLICATIONSAPPLICATION FRAMEWORKLIBRARIES ANDROID RUNTIMELINUX KERNELHomeContactsPhoneBrowser.PackageManagerActivityManagerTelephoneManagerWindowManagerResourceManagerContentProvidersLocationManagerViewSystemXMPPServiceNotificationManagerDalvik VirtualMachineCoreLibrariesSSLFreeTypeMedia FrameworkSGLOpenGLIESSurface ManagerlibcWebKitSOLiteDisplayDriverPowerManagementBinder(IPC)DriverAudioDriverFlash Memory DriverWiFiDriverBluetoothDriverKaypadDriverCameraDriverUSBDriver图5-3 Android系统架构Figure 5-3 Android system framework应用程序层:Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用程序框架层:开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身房会员退款合同范本
- 合同期限无限延长的协议
- 动力电缆安装协议合同书
- 医疗设备框架协议书范本
- 大学生国际劳务合同范本
- 可乐糖浆供货结算协议书
- 2025自愿退股协议书
- 合同债务承担的三方协议
- 外贸业务岗位协议书范本
- 做面条生意转让合同范本
- 物料传送控制系统组态设计与调试全套教学课件
- 重大事故隐患专项排查检查表
- 中金公司行业研究培训(修订版)
- 2023年新教科版五年级上册科学全册练习题(一课一练)
- 文献检索与毕业论文写作PPT完整全套教学课件
- 北师大版初中物理九年级全册第十章《机械能,内能及其转化》检测题(包含答案解析)
- JJF 1959-2021 通用角度尺校准规范 高清晰版
- 口腔预防医学第九章其他口腔疾病的预防
- 盂兰盆供简易仪轨
- 一汽商用车企业级BOM技术方案V1.7
- JJF 1117-2010计量比对
评论
0/150
提交评论