基于Android的火车时刻表查询系统设计与实现
作者:弋改珍 解争龙 张琨
来源:《现代电子技术》2012年第04期
作者:弋改珍 解争龙 张琨
来源:《现代电子技术》2012年第04期
摘要:为方便手机用户即时查询火车时刻信息,在Eclipse平台上,采用Java语言,设计实现基于Android平台的火车时刻表查询系统。设计包括三大部分:界面设计、Web Service请求和SQlite数据库访问。各界面使用Activity作为容器,部署Button等控件,并为控件设置,使用Intent对象在各Activity之间传递信息;采用ute()方法提出Web Service请求,对返回的XML通过Dom4j进行解析并显示在界面;最后将感兴趣的信息保存在本地数据库。该系统的功能包括按发车站 到达站查询,按车次查询,按本地查询。系统的特是将从Internet上获得的信息进行本地化,即对查询得到信息进行重复利用。
关键词:Android; 火车时刻表; Web Service; SQlite
中图分类号:TN911 34; TP315文献标识码:A文章编号:1004 373X(2012)04 0041 04
Design and implementation of Android based query system for train timetable
YI Gai zhen, XIE Zheng long, ZHANG Kun
(School of Information and Engineering, Xianyang Normal University, Xianyang 712000, China)
Abstract: To conveniently query the information of train time table, the Android based query system of the train timetable was designed and implemented with Java language on Eclipse platform. The design includes three parts: interface design, WebService requests and SQLite access. Activity is adopted as a container for all the interfaces to arrange ActiveXs, set a monitoring apparatus for ActiveXs, and use Intent objects pass messages between Activities. ute() method is adopted to request the WebService, resolve the response XML with Dom4j, and display the result on the interfaces. Finally, the interested information is storeed in the local database. The system's functions include the query according to startstation arrivestation and traincode, and native query. The system's characteristic is to localize the information from Internet, that is to say that the information can be reused.
Keywords: Android; train timetable; WebService; SQlite
收稿日期:2011 09 10
基金项目:陕西省科技厅自然科学基础研究计划项目(SJ08ZT14);陕西省教育厅资助项目(08JK481)0引言
Andriod是基于Linux内核的操作系统,是Google公司在2007年11月公布的手机操作系统。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。《视界》特别报道:2010webservice实现年第四季度全球采用Android系统的智能手机发货量占到当季总发货量的33%,问世仅3年时间的Android一举超越Symbian坐上了智能手机操作系统的头把交椅。因此,基于Android平台的软件开发具有广阔的应用前景。
随着3G网络的使用,基于Android平台软件开发的研究正在如火如荼地进行,文献[1]介绍了Android的系统架构,分析了该平台的特点;文献[2]介绍了基于Android进行软件开发时平台的搭建过程;文献[3]在模拟器Dalvik上实现了不同平台终端设备间即时通
信的功能;文献[4 5]通过视图和布局,给出基于Android技术的界面设计实现方法。本文在前期工作的基础上,设计实现了手机在线火车时刻表查询系统,该程序可下载到手机上,实现随时随地查询火车时刻表信息。软件功能包括按照发车站和到达站进行查询,按照车次进行查询,可将查询到的且经常使用的火车时刻信息保存在本地,以便在无网络信号时进行本地查询。
1火车时刻表查询系统的设计
1.1系统功能设计
依据WebXml[2]火车时刻表Web服务提供的信息,本文主要实现以下功能:
(1) 站站查询:通过发车站和到达站查询火车时刻表。
(2) 车次查询:通过火车车次查询火车时刻表。
(3) 本地查询:将已经查询到的信息保存在本地数据库,以便在没有网络时进行本地查询。
系统功能模块图如图1所示。
图1系统功能模块图1.2系统框架结构
利用手机上网功能,从Internet的Web Service[6 7]获取火车时刻表信息,得到的结果一方面可以在线浏览;另一方面将经常使用的一些信息保存在本地数据库,以便在没有手机信号或无网络时进行本地查询,系统结构如图2所示。
图2系统结构1.3数据流图
根据需求,系统启动以后,首先看到的是主界面,主界面有3种选择,分别是按发车站 到达站查询,按车次查询和按本地查询,并实现相应的功能。当用户选择按发车站 到达站查询,并按车次查询输入相应的参数后,系统会从Web获取信息,然后显示给用户,单击某条信息可以进行保存操作。当用户选择本地查询时,系统会调用本地数据库,将本地已保存的车次信息,显示给用户,数据流图如图3所示。
图3数据流图2关键技术
2.1Web Services
Web Services[8]是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件都能够通过Internet来访问并使用这项在线服务。它是一个应用组件,逻辑性地为其他应用程序提供数据与服务,各应用程序通过网络协议和规定标准数据格式(HTTP,XML,SOAP)来访问Web Service,通过Web Service内部执行得到所需结果。Web Service可以执行从简单的请求到复杂商务处理的任何功能。WebXml火车时刻表Web服务提供站站查询;车次查询;车站所有车次查询。
2.2Dom4j
Java解析XML主要有4种方式[9]:Dom,Sax,Jdom,Dom4j,这四种方式各有优缺点。其中,Dom4j是一个Java的XML API,具有性能优异,功能强大和极端易用的特点,同时也是一个开放源代码的软件。
2.3SQLite
SQLite是一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外,它还是开源的,Android 运行时环境包含了完整的 SQLite。该系统在设计过程中使用SQLite管理保存在本地的查询信息。
3核心功能设计与实现
3.1按发车站 到达站查询界面
系统涉及的界面较多,以“按发车站 到达站”查询界面为例,介绍界面设计过程。
Android提供了几种布局管理方式[10],其中常用的布局为LinearLayout和TableLayout两种。LinearLayout是线性布局,是最常用的一种,也是最简单的一种,它也可以嵌套LinearLayout。该系统设计过程中主要采用LinearLayout方式。
界面设计步骤如下:
(1) 按照Android项目目录设计规则,设计查询界面的布局,并将其存放在res目录下的一个xml文件中。
(2) 在Activity文件中使用setContentView([布局文件名])读取界面的布局。
(3) 在Activity中,为按钮设计,在中使用Intent在多个Activity之间传递参数和信息。
(4) 在Activity中将按钮与绑定。
3.4查询信息本地化
为了使在Internet上查询得到的信息能在本地重复使用,在查询结果中选择感兴趣的信息保存在SQLite数据库中。使用SQliteOpenHelper类访问数据库,调用该类的getReadableDatabase()方法可获得一个SQLiteDatabase对象,然后调用onCreate(),onOpen(),onUpgrade()等方法对数据库进行操作。关于数据库的查询,SQlite对标准的SQLSelect语句进行了格式化,使用Cursor android.database.sqlite.SQliteDatabase.query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)语句。该系统在数据库中定义货车信息表(车次代号,车次始 末站,乘坐发车站,发车时间,乘坐到达站,到达时间,里程,花费时间)。
利用Android的调试工具adb可以通过命令行查看所建立的数据库database。在database目录下,使用命令Sqlite3打开数据库Train.db,在SQLite的二级提示符下,利用其子命令可以对其进行查询操作,如图5所示。
图5数据库的命令行调试3.5运行实例
如图6所示,以按车次查询为例,当按车次进行查询时,输入车次D32(不是一个具体的车次),系统会查出所有以D32开头的车次信息,如图6(a)所示。选择需要的一项,如图6(a)中的第二项,会弹出如图6(b)所示的界面,若需要保存此项,则单击“保存”按钮,以备下次在本地查询。
图6按车次的前几个字符查询4结语
根据移动用户的需求,本文基于Android平台开发了火车时刻信息查询系统。该系统已经过测试,能够在手机上正常运行。该系统能够为移动用户提供方便、快捷的火车信息查询服务,具有重要的应用价值。在此基础上还可对系统功能进行扩充,也可以以该系统为例,设计和实现其他基于Android平台的Internet服务,如航班查询、某地区的地图查询等。
参考文献
[1]刘卫国,姚昱禹.Android的架构与应用开发研究[J].计算机系统应用,2008(11):110 112.
[2]宋小倩,周东升.基于Andriod平台的应用开发研究[J].软件导刊,2011,10(2):104 106.
[3]赵亮,张维.基于Android技术的界面设计与研究[J].电脑知识与技术,2009,29(5):8183 8185.
[4]姚昱禹,刘卫国.Android与J2ME平台间即时通信的研究与实现[J].计算机系统应用,2008(12):118 120.
[5]张诚洁.Andriod在线图书阅读器设计与实现[J].微计算机应用,2010,31(10):76 80.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论