基于android平台的实时公交查询系统方案_第1页
基于android平台的实时公交查询系统方案_第2页
基于android平台的实时公交查询系统方案_第3页
基于android平台的实时公交查询系统方案_第4页
基于android平台的实时公交查询系统方案_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、 .38/44 .HUNAN UNIVERSITY毕业设计(论文)设计论文题目:基于Android平台的实时公交查询系统_唐鹏学生_专业_软件工程11级6班学院名称:信息科学与工程学院指导王涛学院院长:仁发2015 年5 月 30 基于Android平台的实时公交查询系统摘 要目前公交已经成为了城市必不可缺交通工具,丰富交错的公交车线路网络让人们的出行,上下班获得了巨大的方便和实惠。然而,因为公交线路的错综复杂,而且信息来源较为缺乏,使得人们难以便捷地获得准确的公交信息,这样对一些人的出行就会产生一定的影响。随着信息技术的高速发展,互联网已经融入到千千万万的家庭中,为他们带来了很大便利。在如今

2、4G时代,智能手机必将成为出行者导航、信息查询的良好终端。本课题将研究城市公交的实时运行线路与乘客的需求状况,目的在于帮助出行者随时随地快速选择正确的乘车线路。实现的方式将通过Android平台设计出相应的方案,做出能够运行在Android系统的手机客户端。实时分析的基本思想是将公路上的人流信息以唯一标识、时间、位置为属性进行统计分析,找出每天每个人在公路上在特定时间的流动规律,以此推断公交的到站时间,并在手机app中显示,以此作为乘客的候车依据,从而实现“实时”。为了完成这个应用的开发,以C/S作为开发模式,需要开发客户端用户交互界面、数据的获取与分析处理以与基于B/S结构的后台管理系统。关

3、键词:Java;手机公交查询;Android;SQLiteReal-time Public Transportation Query System Based on Android platformAbstractCurrently the bus has become indispensable urban transport, rich staggered bus line network to let people travel, commuting was a great convenience and benefits. However, since the bus lines ar

4、e complex, but more a lack of sources of information, making it difficult to easily obtain accurate public information, so some people will have to travel a certain impact. With the rapid development of information technology, the Internet has been integrated into millions of homes, as they bring a

5、lot of convenience. In todays era of 4G smart phones will become the travelers navigate, good information inquiry terminal. This paper will examine the needs of real-time status of city bus routes and passengers, is designed to help travelers anywhere quickly choose the right car lines. The way to a

6、chieve through the Android platform design the appropriate solutions to make the system to run on Android mobile client. The basic idea of real-time analysis of the flow of information is on the road to uniquely identify, time, location of property for statistical analysis to identify everyone on th

7、e roads every day flow pattern within a specific time, in order to infer the arrival time of the bus, and displayed in the phone app as a passenger waiting basis, in order to achieve real time. To accomplish this the development of applications to C / S as a development mode, we need to develop a cl

8、ient user interface, data acquisition and analysis process, and based on B / S structure of the back office systems.Keywords: Java; Mobile and querying traffic; Android; SQLite.目录 TOC o 1-3 h z u HYPERLINK l _Toc420869817第一章 绪论 PAGEREF _Toc420869817 h 1HYPERLINK l _Toc4208698181.1 课题背景 PAGEREF _Toc4

9、20869818 h 1HYPERLINK l _Toc4208698191.2 研究容 PAGEREF _Toc420869819 h 1HYPERLINK l _Toc4208698201.3 工作容 PAGEREF _Toc420869820 h 2HYPERLINK l _Toc420869821第二章 需求分析与概要设计 PAGEREF _Toc420869821 h 3HYPERLINK l _Toc4208698222.1 需求分析 PAGEREF _Toc420869822 h 3HYPERLINK l _Toc4208698232.1.1 总体需求分析 PAGEREF _To

10、c420869823 h 3HYPERLINK l _Toc4208698242.1.2 系统数据库需求分析 PAGEREF _Toc420869824 h 3HYPERLINK l _Toc4208698252.1.3 服务器端需求分析 PAGEREF _Toc420869825 h 3HYPERLINK l _Toc4208698262.1.4 客户端需求分析 PAGEREF _Toc420869826 h 4HYPERLINK l _Toc4208698272.1.5 开发环境与工具需求分析 PAGEREF _Toc420869827 h 6HYPERLINK l _Toc4208698

11、282.2 概要设计 PAGEREF _Toc420869828 h 6HYPERLINK l _Toc4208698292.2.1 开发流程 PAGEREF _Toc420869829 h 6HYPERLINK l _Toc4208698302.2.2 系统数据流图 PAGEREF _Toc420869830 h 6HYPERLINK l _Toc420869831第三章 模式设计 PAGEREF _Toc420869831 h 8HYPERLINK l _Toc4208698323.1 C/S模式简介 PAGEREF _Toc420869832 h 8HYPERLINK l _Toc420

12、8698333.2 B/S模式简介 PAGEREF _Toc420869833 h 8HYPERLINK l _Toc4208698343.3 B/S-C/S模式 PAGEREF _Toc420869834 h 9HYPERLINK l _Toc4208698353.3.1 B/S-C/S模式定义 PAGEREF _Toc420869835 h 9HYPERLINK l _Toc4208698363.3.2 B/S-C/S模式特点 PAGEREF _Toc420869836 h 10HYPERLINK l _Toc420869837第四章 数据库设计 PAGEREF _Toc420869837

13、 h 12HYPERLINK l _Toc4208698384.1 数据库结构 PAGEREF _Toc420869838 h 12HYPERLINK l _Toc4208698394.2 服务器数据库设计 PAGEREF _Toc420869839 h 12HYPERLINK l _Toc4208698404.2.1 Oracle简介 PAGEREF _Toc420869840 h 12HYPERLINK l _Toc4208698414.2.2 数据库设计 PAGEREF _Toc420869841 h 13HYPERLINK l _Toc4208698424.3 客户端数据库设计 PAG

14、EREF _Toc420869842 h 15HYPERLINK l _Toc4208698434.3.1 SQLite简介 PAGEREF _Toc420869843 h 15HYPERLINK l _Toc4208698444.3.2 数据库设计 PAGEREF _Toc420869844 h 16HYPERLINK l _Toc420869845第五章 服务器端详细设计 PAGEREF _Toc420869845 h 19HYPERLINK l _Toc4208698465.1 后台管理模式 PAGEREF _Toc420869846 h 19HYPERLINK l _Toc420869

15、8475.2 查询简析 PAGEREF _Toc420869847 h 20HYPERLINK l _Toc4208698485.2.1 线路查询 PAGEREF _Toc420869848 h 21HYPERLINK l _Toc4208698495.2.2 站点查询 PAGEREF _Toc420869849 h 21HYPERLINK l _Toc4208698505.2.3 用户轨迹 PAGEREF _Toc420869850 h 22HYPERLINK l _Toc4208698515.2.4 用户管理 PAGEREF _Toc420869851 h 23HYPERLINK l _T

16、oc4208698525.3 数据库同步 PAGEREF _Toc420869852 h 23HYPERLINK l _Toc4208698535.3.1 Servlet PAGEREF _Toc420869853 h 23HYPERLINK l _Toc4208698545.3.2 DAO PAGEREF _Toc420869854 h 23HYPERLINK l _Toc420869855第六章 客户端详细设计 PAGEREF _Toc420869855 h 24HYPERLINK l _Toc4208698566.1 简述 PAGEREF _Toc420869856 h 24HYPERL

17、INK l _Toc4208698576.2 什么是Android PAGEREF _Toc420869857 h 24HYPERLINK l _Toc4208698586.3 Android系统架构简介 PAGEREF _Toc420869858 h 25HYPERLINK l _Toc4208698596.3.1 应用程序(APPLICATIONS) PAGEREF _Toc420869859 h 25HYPERLINK l _Toc4208698606.3.2 应用程序框架(APPLICATION FRAMEWORK) PAGEREF _Toc420869860 h 26HYPERLIN

18、K l _Toc4208698616.3.3 Android 运行时(RUNTIME) PAGEREF _Toc420869861 h 26HYPERLINK l _Toc4208698626.3.4 系统库(LIBRARIES) PAGEREF _Toc420869862 h 26HYPERLINK l _Toc4208698636.3.5 Linux PAGEREF _Toc420869863 h 27HYPERLINK l _Toc4208698646.4 实现客户端数据库 PAGEREF _Toc420869864 h 27HYPERLINK l _Toc4208698656.4.1

19、SQL语言 PAGEREF _Toc420869865 h 27HYPERLINK l _Toc4208698666.4.2 创建数据库 PAGEREF _Toc420869866 h 27HYPERLINK l _Toc4208698676.4.3 客户端数据库操作 PAGEREF _Toc420869867 h 28HYPERLINK l _Toc4208698686.5 客户端功能模块实现 PAGEREF _Toc420869868 h 29HYPERLINK l _Toc4208698696.5.1 用户登录注册 PAGEREF _Toc420869869 h 29HYPERLINK

20、l _Toc4208698706.5.2 换乘、线路、站点查询(离线模式) PAGEREF _Toc420869870 h 30HYPERLINK l _Toc4208698716.5.3 换乘查询(在线模式) PAGEREF _Toc420869871 h 31HYPERLINK l _Toc4208698726.5.4 数据下载 PAGEREF _Toc420869872 h 31HYPERLINK l _Toc4208698736.5.5 选择城市 PAGEREF _Toc420869873 h 33HYPERLINK l _Toc420869874第七章 结论 PAGEREF _Toc

21、420869874 h 34HYPERLINK l _Toc420869875致 PAGEREF _Toc420869875 h 35HYPERLINK l _Toc420869876参 考 文 献 PAGEREF _Toc420869876 h 36第一章 绪论1.1 课题背景随着我国社会经济、科技的高速发展,城市规模的扩大,人们上班、上学、出游等活动量也随之增长,导致部分城市严重拥堵,比如、这样的大城市,公交线路系统庞大,车辆众多,交通拥堵不断加剧,给出行带来诸多不便。智能公交的发展对于广大出行者来说显得越来越重要1。然而现有公交系统存在诸多问题,人们去公交站点乘公交车常常会遇到以下几种情

22、况:(1)马上就要到公交站点了,却眼看着公交车刚刚开走。(2)在公交站点等了很长时间也没来车,犹豫着是改用其它交通工具还是再等一等。(3)换乘站点有多路车可供选择,有的离目的地近,但是车次间隔长;有的离目的地稍远,但是车次间隔短,不知乘哪一路 更好。(4)对于外地人员或者对某些地区不太熟悉的人员不知乘坐什么线路公交车才能到达目的地。随着移动3G、4G网络的发展的日渐成熟,目前大部分智能手机都能通过应用客户端从互联网获取大量信息,基于智能手机平台开发的实时公交查询系统就是通过从服务器获取公交线路信息、地理位置分析乘车方案与公交实时到站信息。目前很多手机软件,如“高德地图”,“百度地图“,”车来了

23、“,”无线城市“,”掌上公交等,都具备公交查询和路线选择功能,然而他们多数是基于静态数据的查询,无法反映实时交通路况,解决不了以上问题,当然也有少数一些具备实时查询功能,但却并不完善,存在信息不全、信息不稳、系统不稳等问题c。1.2 研究容本课题通过调研城市实际交通状况、查阅相关文献资料,根据自己所学知识,开发一个基于android平台的实时公交查询手机应用。实时分析的基本思想是将公路上的人流信息以唯一标识、时间、位置为属性进行统计分析,找出每天每个人在公路上在特定时间的流动规律,以此推断公交的到站时间,并在手机app中显示,以此作为乘客的候车依据,从而实现“实时”。研究容主要分为三个部分:公

24、交线路、站点数据,手机客户端,PC服务器端。公交线路、站点数据方面,从互联网资源获取各城市的公交信息,并存储在本地数据库中,以便手动更新与客户端的调用。手机客户端方面,先设计好简洁、美观的显示和操作界面,根据从服务器下载下来离线公交信息,为用户提供适宜的外出乘车方案,并能随时随地离线查询公交线路、站点信息。PC服务器端方面,根据公交查询系统的功能需求,设计服务器与手机客户端之间的交互流程和通信机制,管理各个城市的公交线路、站点数据,实现公交数据的增、删、改、查。根据用户乘车方案以上传的实时位置信息,分析公交的实时位置信息,预计公交到站时间。1.3 工作容在整个课题设计中,使用了数据库系统设计、

25、WEB系统实现、Android应用开发技术,其中包括SSH框架、JSP、HTML、CSS、JavaScript等技术。具体工作容,包括以下四五个部分:设计系统的整体框架和交互机制,包括客户端与服务器之间的通信机制、通信接口的设计,在系统各个实体之间的交互流程的设计、服务器各组件间交互设计;数据库系统的设计与具体城市公交数据获取;服务器、客户端功能的代码实现;模拟数据的生成、系统测试第二章 需求分析与概要设计2.1 需求分析2.1.1 总体需求分析基于Android平台的手机实时公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短的时间给用户一条或多条到达目标地的路径,并且能够提示

26、公交何时到站。整个查询过程中,公交线路数据是预先通过服务器下载到手机本地的,所以查询算在本地实现,而公交的到站时间是通过服务器实时获取的。实时信息的获取是通过对公交运行状态(某时间点下对应的地理位置)的历史统计数据来建立对应的模型和分析,根据分析结果预测公交车在未来某个时间点的运行状态,综合当前实时运行信息与历史交通流量模型,实时预测公交车位置和公交车到站时间,以此作为依据向用户推荐计算出来的实时公交出行方案2。乘车方案查询是计算用户请求的两点之间符合用户要求的综合最优的实时公交出行方案。查询算法包括直达算的和一次换乘算法。2.1.2 系统数据库需求分析实时公交查询系统以公交信息数据为基础,公

27、交数据又分为静态和动态数据,其中静态数据包括公交车的线路信息、站点信息、公交的线路轨等,动态数据包括公交车的实时位置数据、实时路况等3。本系统的静态公交数据通过相关网络资源获取,根据这些原始数据的数据库和编码规则,将这些信息完整有效地、完整地组织起来并存储到本地SQLite数据库中,并能够进行数据的增、删、改、查操作。在动态公交数据方面,主要是用户上传到服务器的实时位置信息,只要设计出相应的能存储用户名、对应的位置和时间信息的表即可。2.1.3 服务器端需求分析服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员借助管理软件对服务器进行常规维护。服务器可以通过数据库同步,为客

28、户端数据库提供数据。通过仔细分析服务器需求之后,服务器端要完成以下功能:1、服务器后台管理功能服务器后台管理是针对数据库进行操作,具有增、删、改、查功能。2、数据同步功能。采用Servlet技术,响应客户端请求,返回给客户端一端数据流,该数据流按照Xml语言规写入数据流。服务器端功能模块划分如图2.1所示。图 2.1 服务器端功能模块图2.1.4 客户端需求分析客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作,可以使用一些功能。该软件应满足若干要求,比如能够随时掌握公交信息,动态更新最新数据等。也要

29、考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依赖服务器等问题。通过仔细分析用户需求之后,该软件要完成以下功能:登录注册功能用户可以注册个人账号,用户登录系统。2、线路查询功能获得线路经过的每个站点信息以与线路的票价信息和发车时间信息。3、站点查询功能根据输入的具体站点,能够获得包含该站点的所有公交线路。4、换乘查询功能输入起点和终点,能够快速得出乘车方案,并存“查询历史”中,方便下次直接获取。5、数据下载功能根据客户端输入的城市名,服务响应查询结果并返回该城市公交线路数据库文件,客户端可点击下载到本地。客户端功能模块划分如图2.2所示。图2.2 客户端功能模块图2.1.5 开发环境

30、与工具需求分析服务器端开发环境,以windows7操作系统为开发平台,用Tomcat6.0做为服务器,ORACLE和SQLite作为数据源,Myeclipse8.6作为开发工具,SSH作为开发框架,运行在一般的PC机上即可。客户端开发环境,以Android手机操作系统为开发平台,用Android手机操作系统自带的SQLite作为数据源。ADT(Android Development Tools)作为开发工具,Java语言和Xml语言作为开发语言,实体安卓手机作为测试工具。整个Android手机操作系统是在Android SDK提供的虚拟机中运行,该虚拟机运行在windows7操作系统上,所以客

31、户端的开发是在windows7操作系统上运行的Android操作系统中进行的二次开发4。2.2 概要设计2.2.1 开发流程开发流程如图2.3所示。运行测试调试程序编写程序确定功能调查研究优化完善图2.3 开发流程图2.2.2 系统数据流图系统数据流程如图2.4所示。图2.4 系统数据流图第三章 模式设计3.1 C/S模式简介C/S模式是一种三层结构的系统,第一层在客户机上安装了客户机应用程序,第二层在服务器上安装服务器管理程序,第三层是数据访问层。在C/S模式的工作过程中,客户机程序向服务器发出请求,服务器程序接收客户机程序提出的请求并且作出相应处理,然后向客户机返回处理结果5。C/S模式特

32、点:(1)C/S模式将应用与服务分离,使系统具有更高稳定性和灵活性(2)C/S模式配备的是点对点的适用于局域网的结构模式,具有可靠的安全性(3)由于客户端与服务器端之间没有中间环节,实现了直接连接, ,因此响应速度快(4)在C/S模式中,作为客户机的计算机都必须安装客户端程序,一旦软件系统升级,每台客户机都要重新安装升级后的客户端应用程序,因此C/S模式在系统升级和系统维护方面显得较为复杂。3.2 B/S模式简介B/S模式是一种从传统的二层C/S(客户/服务)模式基础上而发展起来的新的网络结构模式,其本质可以说是三层网络结构的C/S模式。只要在用户的计算机上安装如IE、火狐、谷歌等浏览器软件,

33、将相关数据存放在服务器上并且在服务器上安装服务应用程序,服务器分为WEB服务器、服务器和文件服务器等。用户可以通过已经安装好的浏览器软件来访问服务器,进行互联网信息浏览、电子传递和文件传输等服务6。B/S模式特点:(1)系统开发、维护、升级方便 每当服务器应用程序需要进行升级时,只需升级服务器上的应用程序即可,而不需要修改用户计算机上的浏览器软件,从而让系统开发、升级和维护更加方便。(2)B/S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器软件进行访问,极增强了系统的开放性。(3)B/S模式的结构易于扩展由于Web的平台无关性,B/S模式的结构可以进行任意的扩展,可以由仅包含一台服

34、务器和几个用户的小型系统,扩展成为包含成千上万个用户的大型系统。(4)用户使用方便 B/S模式的应用软件一般都是基于Web浏览器的,而不同Web浏览器的界面都是相似的,对于用户未登录系统的相关功能页面,用户所接触到的界面都是一致的,从而让用户使用更加方便。3.3 B/S-C/S模式3.3.1 B/S-C/S模式定义B/S-C/S模式是将B/S模式和C/S模式组合而来的,吸取这两种模式的优点,达到互补的作用。B/S模式和C/S模式都是三层结构,B/S模式第一层是表现层,第二层是业务逻辑层,第三层是数据访问层。C/S模式三层结构中第一层是客户端与B/S模式中的第一层不一样,其余两层相同。在B/S模

35、式和C/S模式数据访问过程和业务逻辑处理过程中是在服务器端完成,用户只需承受服务器返回的结果。在B/S-C/S模式中,一部分数据访问过程和业务逻辑处理过程在客户端完成,另外一部分数据访问过程和业务逻辑处理过程在服务器端完成。本手机公交线路查询软件一部分功能只要依靠手机本地数据库就可以实现,令外一部分功能需要借助互联网实现7。目前不论是手机硬件还是计算机硬件,更新速度很快,而且硬件的配置水平也越来越高,在硬件条件允许的情况下把一部分业务处理、数据访问的过程放在客户端去完成,那么对服务器的硬件要求就会低一些,甚至一些高性能的PC机就可以作为服务器。从整个作业量来看,本质上是把作业量往客户端多分摊一

36、部分,降低服务器的作业量,因此,对客户端的硬件要比较高的。B/S-C/S模式结构如图3.1 所示。图3.1 B/S-C/S模式结构图本软件系统采用B/S-C/S模式,系统框架如图3.2所示。图3.2 系统框架图3.3.2 B/S-C/S模式特点B/S-C/S模式在继承了B/S模式和C/S模式的优点之后,还具有以下特点:(1) 可靠性高1、客户端不必完全依赖于服务器,即便脱离服务器,还有手机数据库的支持,可以继续使用一部分功能。2、客户端的数据丢失的时候,可以采用数据库同步的方式从服务器获得新的数据信息。(2) 省资源一部分作业在客户端完成,服务器的访问量和作业量都会减少,省资源,维护起来会更加

37、方便。第四章 数据库设计4.1 数据库结构服务器数据库为总数据源,每一个客户端都拥有独立的小型数据库。客户端数据库信息从服务器端同步获得。服务器的数据库是基于Oracle和SQLite建立,客户端数据库是基于SQLite建立。数据库体系结构如图4.1所示。图4.1 数据库体系结构图4.2 服务器数据库设计4.2.1 Oracle简介ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一8。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世

38、界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在其中一种机型上学习了ORACLE知识,便能在其它各种类型的机器上使用它。Oracle数据库目前的最新版本为Oracle Database 12c。一个新的多承租方架构被引入Oracle数据库12c,使用这种多承租方架构可轻松地对数据库进行云部署和管理。此外,一些创新特性可以让资源的使用率和灵活性得到最大限度地提高,如Oracle Multitenant可进行快速整合多个不同的数据库,而Automatic

39、Data Optimization和Heat Map能以更高的压缩率来压缩数据和更高密度对数据进行分层。这些独一无二的技术进步,再加上在安全性、可用性大数据支持方面的主要增强,使得Oracle数据库12c 成为公有云和私有云部署的理想平台9。4.2.2 数据库设计E-R关系如图4.2所示。图4.2 服务器数据E-R图根据上面的E-R图,本软件服务器端定义的数据库设计了以7表:站点表:site(表4.2)、线路表:bus(表4.3)、公交详情表表: bus_intro(表4.4)、城市表:city(表4.5)、管理员表:user(表 4.6)、用户表:uuser(表 4.7)、用户轨迹表:use

40、rlocation(表 4.8)本软件服务器数据库所包含的表的描述如表4.1。表4.1 数据库概况表表名描述主要字段site(站点表)保存站点信息site_id,site_bus_id,site_order,site_namebus(线路表)保存线路信息bus_id,bus_type,bus_name,bus_site_numbus_intro(公交详情表)介绍公交相关信息intro_id,intro_bus_id,intro_textcity(城市表)user(管理员表)uuser(用户表)userlocation(用户轨迹表)保存城市公交数据源保存管理员信息保存用户信息保存用户轨迹信息ci

41、tyId,cityName,dbUrluserId,username,passworduserId,username,realName,passwordulId,userId,site,city,currentTime表4.2 站点表字段名数据类型长度主键/外键默认值描述site_idintPK站点idsite_bus_idsite_ordersite_nameintintvarchar255FK线路id站点顺序站点名称表4.3 线路表字段名数据类型长度主键/外键默认值描述bus_idintPK线路idbus_typebus_namebus_site_numberintvarcharint25

42、5线路类型线路名称站点数量表4.4 公交详情表字段名数据类型长度主键/外键默认值描述intro_idintPKidintro_bus_idintFK线路idintro_texttext介绍信息表4.5 城市表字段名数据类型长度主键/外键默认值描述cityIdintPK城市idcityNamevarchar255城市名称dbUrlvarchar255数据存放地址dataSizevarchar20数据大小表4.6 管理员表字段名数据类型长度主键/外键默认值描述userIdintPK管理员id,自增userNamevarchar255管理名passwordvarchar255登录密码表4.7 用户表

43、字段名数据类型长度主键/外键默认值描述userIdintPK用户id,自增userNamevarchar255用户名passwordvarchar255登录密码realNamevarchar255真实表4.8 用户轨迹表字段名数据类型长度主键/外键默认值描述ulIdintPKId,自增userIdintFK用户idsitevarchar255站点名cityvarchar城市名currentTimedate时间4.3 客户端数据库设计4.3.1 SQLite简介Android数据库使用的是SQLiteDatabase,我们来简单的介绍下Android平台上的SQLiteDatabase 。SQL

44、ite是一款轻型的数据库,是一种遵守ACID关联式的数据库管理系统,嵌入式是它的设计目标,而且目前SQLite已经在很多嵌入式的产品中被使用,它所占用硬件资源很低,在大多嵌入式设备中,可能只需要仅仅几百K的存就足够了。它能够支持Windows/Unix/Linux等等大多数主流的操作系统,同时能够跟Tcl、Java、PHP等很多程序语言相结合,还有ODBC接口,同样比起PostgreSQL、Mysql这两款世界著名的开源数据库管理系统来讲,SQLite数据库的处理速度比他们还更快10。该软件数据库的建立是完全在Android平台上执行Java代码,通过DVM编译来建立的,没有什么辅助工具,由于

45、整个SQLite数据库是非可视化操作,所有对数据库的操作都是通过执行Java代码实现,在完成其查询功能的时候没有使用数据库高级编程,较为麻烦的关节是在如何有机的将客户端数据库整体结构实现出来,实现过程是无可视界面,也没有数据库辅助工具情况下,整个过程很抽象。且表的设计应尽量简单,不要有错综复杂的关系,每表都是独立的,不存在任何约束,数据库也是独立数据库,不采用Android特有的可共享数据库。4.3.2 数据库设计E-R关系如图4.3所示。图4.3 客户端数据库E-R图根据上面的E-R图,本软件客户端定义的数据库中包含以下4表:站点表:site (表4.10)、线路表:bus(表4.11)、公

46、交详情表:bus_intro(表4.12)、历史查询表:history(表4.13)、城市查询表:setting(表4.14)。本软件服务器数据库所包含的表的描述如表4.9。表4.9 数据库概况表表名描述主要字段site(站点表)保存站点信息site_id,site_bus_id,site_order,site_namebus(线路表)保存线路信息bus_id,bus_type,bus_name,bus_site_numbus_intro(公交详情表)介绍公交相关信息intro_id,intro_bus_id,intro_texthistory(历史查询表)保存历史查询信息id,city,st

47、art,endsetting(城市设置表)保存城市选择信息id,city表4.10 站点表字段名数据类型长度主键/外键默认值描述site_idintPK站点idsite_bus_idsite_ordersite_nameintintvarchar255FK线路id站点顺序站点名称表4.11 线路表字段名数据类型长度主键/外键默认值描述bus_idintPK线路idbus_typebus_namebus_site_numberintvarcharint255线路类型线路名称站点数量表4.12 公交详情表字段名数据类型长度主键/外键默认值描述intro_idintPKidintro_bus_idi

48、ntFK线路idintro_texttext介绍信息表4.13 历史查询表字段名数据类型长度主键/外键默认值描述idintPKid,自增citytextFK城市名称starttext起点endtext终点表4.14 城市设置表字段名数据类型长度主键/外键默认值描述idintPKid,自增citytext城市名称第五章 服务器端详细设计5.1 后台管理模式后台使用SSH框架实现。基本管理流程如图5.1所示。图5.1 管理流程图通过输入管理员用户名、密码,验证通过,进入后台系统。登录界面如图5.2所示。图5.2 添加线路页面通过管理员模式进入查询、新增、修改、删除线路页面,可以对已经添加成功的公交

49、线路信息修改并保存,也可以直接在该页面删除数据。查询、新增、删除线路页面如图5.3所示,具体修改页面如图5.4所示。图5.3 查询,新增、修改,删除页面图5.4 具体修改页面5.2 查询简析查询方式与数据存储格式有关,线路名称、站点名称的存储为字符串,且线路、站点两个表的设计满足第二式,查询时根据主键、外键的对应关系进检索:图5.5 线路表图5.6 站点表5.2.1 线路查询线路查询可按线路名称、编号两种方式查询(图5.7),如1路、2路,编号1、2,服务器后台会进行模糊搜索,能够返回包含该输入字符的线路信息。图5.7 查询方式5.2.2 站点查询在站点查询页面设置一个线路选择域,可以查询出该

50、线路的所有站点,如图5.8所示。而页面下方设置了一个输入文本域,可以根据输入的站点名称,查询出包含该站的所有线路,如图5.9所示。图5.8 通过线路查询所有站点图5.9 查询方式5.2.3 用户轨迹用户轨迹模块可以显示所有用户在某个时间点所在位置,用于分析公交车的实时位置信息,如图5.8所示。图5.8 用户轨迹5.2.4 用户管理 用户管理分为管理员信息管理和用户信息管理,管理员是指登录“实时公交后台管理系统的“拥用管理权限的角色,用户是指登录手机客户端的使用者角色,如图5.9和较长5.10所示。图5.9 管理员信息图5.10 用户信息5.3 数据库同步5.3.1 Servlet客户端发出一个

51、请求,服务器接收后并且响应返回一段流。客户端接收后再根据服务器端返回流的格式来解析数据11。5.3.2 DAODAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。在此使用DAO模式中封装数据的方法,将这些数据封装后按照一定的格式写成数据流12。第六章 客户端详细设计6.1 简述在互联网迅速发展的形式下,我们不得不考虑,是否还真的有必要将公交线路查询软件紧紧局限于PC机上,每次查询都要找个PC机然后再记录下来,那样虽然达到了查询的目的,但是这种方式是否就能够满足用户的需求了,那如果在没有PC机的环境呢,或者说总不能随身带个

52、PC机或者笔记本电脑出门,只为了查询公交线路,很明显这种方法意义不大。但是我们可以换种思维去考虑,既然PC机可以迷你成笔记本,那么也肯定有一定的方法将其的部分功能放到更小型的“PC”上面去,比如手机。其实随着硬件设备的逐渐发展,不少的高端手机甚至可以冲当一台计算机使用,如今没电脑的人可能不在少数,但是放眼望去,有几个没有手机呢。此次设计的主要目的是实用,让人们使用起来会更加简便。目前主流手机操作系统有Mac OS, Windows Mobile,Android,Symbian,分别由苹果公司,微软,谷歌,诺基亚推出,而本次设计是在Android平台下进行开发。在此就不分别一一介绍每一个手机软件

53、开发平台,主要对Android进行介绍。6.2 什么是AndroidAndroid是首个基于Linux平台的开源手机操作系统,该平台由操作系统中间件、用户界面和应用软件组成,并且号称是首个为移动终端打造的真正开放和完整的软件13。Android一词的本义指“机器人”,2003年美国有一家以Android为名的小公司成立,开发手机平台。Google收购Android之后,于07年11月5日发布了开源的Android平台一款包括操作系统(基于Linux核)、中间件和关键应用的手机平台,并组建了开放手机联盟(Open Handset Alliance),包括Google、中国移动、T-Mobile、

54、宏达、高通、摩托罗拉等领军企业14。2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机T-Mobile G1。该款手机为宏达电制造,是世界上第一部使用Android操作系统的手机14。6.3 Android系统架构简介从软件分层的角度来看,Android平台由应用程序,应用程序框架,Android运行时,库以与Linux核共5部分构成15。如图6.1所示。图6.1 整体结构6.3.1 应用程序(APPLICATIONS)Android平台默认包含了一系列核心应用程序,包括电子、短信、日历、地图、浏览器、联系人管理程序等,这些程序都以java 程序语言编

55、写,你也可以用自己便携的应用程序来替换Android提供的应用程序,这个替换的机制实际是由应用程序框架来保证的16。如图6.2所示。图6.2 应用层6.3.2 应用程序框架(APPLICATION FRAMEWORK)应用程序框架是我们进行Android开发的基础应用程序框架层包含了视图系统,容提供器,窗口管理器,活动管理器,通知管理器,位置管理器,资源管理器,管理器和包管理器9大部分17。如图6.3所示。图6.3 中间件层6.3.3 Android 运行时(RUNTIME)Android 虽然采取Java程序语言来编写应用程序,但不使用J2ME执行Java程序,而是用Android自有的An

56、droid运行时(RunTime).Android 运行时包括核心库和Dalvik虚拟机两部分18。如图6.4所示。图6.4 核心库,虚拟机6.3.4 系统库(LIBRARIES)应用程序框架是贴近于应用程序的软件组件服务,而更底层则是Android的函数库,这一部分是应用程序框架的支撑,其架构如图6.5所示。19图6.5系统库6.3.5 LinuxAndroid平台是开放,采用Linux核则是Android平台开放性的基础。Android平台中的操作系统采用了Linux2.6版的核,它包括了显示驱动、摄像头驱动、Flash存驱动、Binder(IPC)驱动、键盘驱动、wifi驱动、Audio

57、驱动以与电源管理部分。Linux核层为我们在软件层和硬件层建立了一个抽象层,使得应用程序开发人员无需关心硬件细节。对于手机的开发商而言,如果想要Android平台运行到自己的硬件平台上就必须通过对Linux层进行修改,通常要做的工作就是为自己的硬件便携驱动程序。206.4 实现客户端数据库6.4.1 SQL语言结构化查询语言(Structured Query Language)简称SQL(发音:/es kju el/ S-Q-L),是一种特殊目的的编程语言,是一种用于程序设计和数据库查询的语言,用于存取数据以与管理、更新、查询关系数据库系统;同时它还是数据库脚本文件的扩展名。结构化查询语言是允

58、许用户在高层数据结构上工作的高级的非过程化编程语言。它不需要用户了解具体的数据存放方式,也不要求用户指定对数据的存放方法,所以它可以使用相同的结构化查询语言作为数据输入与管理的接口,即使它具有完全不同底层结构的不同数据库系统。结构化查询语言语句可以使用嵌套编写,这使得它具有极大的灵活性和强大的功能。6.4.2 创建数据库在Android平台上,不能像Mysql一样通过启动mysqld来进入数据库进行操作,Android平台上的数据库操作只有通过执行Java代码,将有效的SQL语句传入后台,来进行有效操作。这种访问数据库的方式,是目前唯一在Android平台上访问数据库的途径。数据库创建代码如下

59、:public SQLiteDatabase DatabaseonCreate() SQLiteDatabase db = null;try /数据库名arashmen,文件格式.dbdb = this.openOrCreateDatabase(arashmen.db, MODE_WORLD_WRITEABLE,null); catch (Exception e) e.printStackTrace();return db;6.4.3 客户端数据库操作1.DBHelper类,是数据库操作类:public MyDataBase(Context context)this.context = con

60、text;dbHelper = new DatabaseHelper(context);db = dbHelper.getWritableDatabase();2.createSettingTable()方法是创建表:publicvoidcreateSettingTable()/创建表String sql = CREATE TABLE IF NOT EXISTS setting (_id INTEGER PRIMARY KEY AUTOINCREMENT, +city TEXT NOT NULL);trydb.execSQL(sql);/需要异常捕获catch(Exception e)Log.

温馨提示

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

评论

0/150

提交评论