• / 4
  • 下载费用:5 金币  

基于Android的火车时刻表查询系统设计与实现.pdf

关 键 词:
基于 ANDROID 火车时刻表 查询 系统 设计 实现
资源描述:
2012年 2月 15日第 35卷第 4期现代电子技术Modern Electronics TechniqueFeb.2012Vol.35No.4基于Android的火车时刻表查询系统设计与实现弋改珍 ,解争龙 ,张琨(咸阳师范学院 信息工程学院 ,陕西 咸阳712000)摘要 :为方便手机用户即时查询火车时刻信息 ,在 Eclipse平台上 ,采用 Java语言 ,设计实现基于 Android平台的火车时刻表查询系统 。设计包括三大部分 :界面设计 、WebService请求和 SQlite数据库访问 。各界面使用 Activity作为容器 ,部署 Button等控件 ,并为控件设置监听器 ,使用 Intent对象在各 Activity之间传递信息 ;采用 httpClient.execute()方法提出Web Service请求,对返回的XML通过 Dom4j进行解析并显示在界面;最后将感兴趣的信息保存在本地数据库 。该系统的功能包括按发车站-到达站查询 ,按车次查询 ,按本地查询 。系统的特色是将从 Internet上获得的信息进行本地化 ,即对查询得到信息进行重复利用 。关键词 :Android;火车时刻表 ;WebService;SQlite中图分类号 :TN911-34;TP315 文献标识码:A 文章编号:1004-373X(2012)04-0041-04Design and implementation of Android-based querysystem for train timetableYI 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 timeta-ble 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 al the interfaces to arrange ActiveXs,set a mo-nitoring apparatus for ActiveXs,and use Intent objects pass messages between Activities.httpClient.execute()method is a-dopted to request the WebService,resolve the response XML with Dom4j,and display the result on the interfaces.Finaly,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 tosay that the information can be reused.Keywords:Android;train timetable;WebService;SQlite收稿日期 :2011-09-10基金项 目 :陕西省科技厅自然科学基础研究计划项目(SJ08ZT14);陕西省教育厅资助项目 (08JK481)0 引言Andriod是基于Linux内核的操作系统 ,是Google公司在2007年11月公布的手机操作系统 。该平台由操作系统 、中间件 、用户界面和应用软件组成 ,号称是首个为移动终端打造的真正开放和完整的移动软件 。《视界 》特别报道 :2010年第四季度全球采用Android系统的智能手机发货量占到当季总发货量的33%,问世仅3年时间的Android一举超越Symbian坐上了智能手机操作系统的头把交椅 。因此 ,基于Android平台的软件开发具有广阔的应用前景 。随着3G网络的使用 ,基于Android平台软件开发的研究正在如火如荼地进行 ,文献 [1]介绍了Android的系统架构 ,分析了该平台的特点 ;文献 [2]介绍了基于Android进行软件开发时平台的搭建过程 ;文献 [3]在模拟器Dalvik上实现了不同平台终端设备间即时通信的功能 ;文献 [4-5]通过视图和布局 ,给出基于Android技术的界面设计实现方法 。本文在前期工作的基础上 ,设计实现了手机在线火车时刻表查询系统 ,该程序可下载到手机上 ,实现随时随地查询火车时刻表信息 。软件功能包括按照发车站和到达站进行查询 ,按照车次进行查询 ,可将查询到的且经常使用的火车时刻信息保存在本地 ,以便在无网络信号时进行本地查询 。1 火车时刻表查询系统的设计1.1 系统功能设计依据WebXml.com.cn[2]火车时刻表Web服务提供的信息 ,本文主要实现以下功能 :(1)站站查询 :通过发车站和到达站查询火车时刻表 。(2)车次查询 :通过火车车次查询火车时刻表 。(3)本地查询 :将已经查询到的信息保存在本地数据库 ,以便在没有网络时进行本地查询 。系统功能模块图如图1所示 。图 1系统功能模块图1.2 系统框架结构利用手机上网功能 ,从Internet的Web Service[6-7]获取火车时刻表信息 ,得到的结果一方面可以在线浏览 ;另一方面将经常使用的一些信息保存在本地数据库 ,以便在没有手机信号或无网络时进行本地查询 ,系统结构如图2所示 。图 2系统结构1.3 数据流图根据需求 ,系统启动以后 ,首先看到的是主界面 ,主界面有3种选择 ,分别是按发车站-到达站查询 ,按车次查询和按本地查询 ,并实现相应的功能 。当用户选择按发车站-到达站查询 ,并按车次查询输入相应的参数后 ,系统会从Web获取信息 ,然后显示给用户 ,单击某条信息可以进行保存操作 。当用户选择本地查询时 ,系统会调用本地数据库 ,将本地已保存的车次信息 ,显示给用户 ,数据流图如图3所示 。图 3数据流图2 关键技术2.1 Web ServicesWeb Services[8]是由企业发布的完成其特定商务需求的在线应用服务 ,其他公司或应用软件都能够通过Internet来访问并使用这项在线服务 。它是一个应用组件 ,逻辑性地为其他应用程序提供数据与服务 ,各应用程序通过网络协议和规定标准数据格式 (HTTP,XML,SOAP)来访问Web Service,通过Web Service内部执行得到所需结果 。Web Service可以执行从简单的请求到复杂商务处理的任何功能 。WebXml.com.cn火车时刻表Web服务提供站站查询 ;车次查询 ;车站所有车次查询 。2.2 Dom4jJava解 析XML主 要 有4种 方 式[9]:Dom,Sax,Jdom,Dom4j,这四种方式各有优缺点 。其中 ,Dom4j是一个Java的XML API,具有性能优异 ,功能强大和极端易用的特点 ,同时也是一个开放源代码的软件 。2.3 SQLiteSQLite是一个非常流行的嵌入式数据库 ,它支持SQL语言 ,并且只利用很少的内存就有很好的性能 。此外 ,它还是开源的 ,Android运行时环境包含了完整的SQLite。该系统在设计过程中使用SQLite管理保存在本地的查询信息 。3 核心功能设计与实现3.1 按发车站-到达站查询界面系统涉及的界面较多 ,以 “按发车站-到达站 ”查询界面为例 ,介绍界面设计过程 。Android提供了几种布局管理方式[10],其中常用的布局为LinearLayout和TableLayout两种 。Linear-Layout是线性布局 ,是最常用的一种 ,也是最简单的一种 ,它也可以嵌套LinearLayout。该系统设计过程中主要采用LinearLayout方式 。界面设计步骤如下 :(1)按照Android项目目录设计规则 ,设计查询界面的布 局 ,并 将 其 存 放 在res目 录 下 的 一 个xml文件中 。(2)在Activity文件中使用setContentView([布局文件名 ])读取界面的布局 。(3)在Activity中 ,为按钮设计监听器 ,在监听器中使用Intent在多个Activity之间传递参数和信息 。(4)在Activity中将按钮与监听器绑定 。该系统设计默认的发车站为 “深圳 ”,到达站为 “西安 ”,界面如图4所示 。单击 “查询 ”按钮启动Train-TimeActivity,查询相应的火车信息 。public class QueryAsFirstEndActivity extends Activity{Button stationQueryButton; //站站查询按钮public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.asf_e); //读取布局文件stationQueryButton=(Button)findViewById(R.id.But-ton01);24现代电子技术2012年第 35卷stationQueryButton.setOnClickListener(queryListener);//绑定监听器}//query按钮监听器OnClickListener queryListener=new OnClickListener(){public void onClick(View v){Intent intent=new Intent(QueryAsFirstEndActivity.this,TrainTimeActivity.class); //设置需要激活的ActivityString temp=nul;CharSequence firstStationValue=((EditText)findView-ById(R.id.EditText01)).getText();CharSequence lastStationValue=((EditText)findViewBy-Id(R.id.EditText02)).getText();temp=firstStationValue.toString()+“ ,“+lastStation-Value.toString();intent.setData(Uri.parse(temp));startActivity(intent);//以传递参数的方式跳转到下一个Activity}};图 4按发车站 -到达站查询图3.2 获取火车时刻表信息为了获取Web服务信息 ,需要定义网络地址 、访问的主机 、构造参数 ,建立一个发起请求服务的客户端 ,返回的数据为一个字符串 。(1)在从Web获取信息之前 ,需要定义Url,host,param等 。String url=“ /WebServices/TrainTimeWebService.asmx/getStationAndTimeByStationName“ ;String host=“webservice.webxml.com.cn“ ;String param=nul;…(2)创建一个从Web上获取内容的客户端Client,即HttpClient。HttpClient httpclient=new DefaultHttpClient();httpclient.getParams().setParameter(HttpProtocolParams.HTTP_CONTENT_CHARSET,“UTF-8“ );(3)获 取 含 有 火 车 时 刻 表 信 息 存 放 在 字 符 串String中 。通过HttpClient客户端发起HttpGet请求 ,返回一个字符串 。HttpGet httpget=new HttpGet(“http://“+host+url+“ ?“+param);ResponseHandler<String>responseHandler=new Basi-cResponseHandler();String b=nul;try{b=httpclient.execute(httpget,responseHandler);}catch(ClientProtocolException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}3.3 解析XML文档从Web返回的信息包含在一个字符串中 ,使用DocumentHelper的parseText方法将其 转 换 为 一 个Document,然后获取节点信息 ,并把信息用Map保存起来 。Document document=nul;try{document=DocumentHelper.parseText(responseBody);}catch(DocumentException e){e.printStackTrace();}Element root=document.getRootElement();Iterator it=root.element(“diffgram“ ).element(“getStatio-nAndTime“ )elementIterator(“TimeTable“ );while(it.hasNext()){Element info=(Element)it.next();item=new HashMap<String,Object>();//TrainCodeitem.put(“TrainCode“ ,info.elementText(“TrainCode“ )+“ “ );data.add(item);3.4 查询信息本地化为了使在Internet上查询得到的信息能在本地重复 使 用 ,在查询结果中选择感兴趣的信息保存在SQLite数据库中 。使用SQliteOpenHelper类访问数据库 ,调用该类的getReadableDatabase()方法可获得一个SQLiteDatabase对象 ,然后调用onCreate(),on-Open(),onUpgrade()等方法对数据库进行操作 。关于数据库的查询 ,SQlite对标准的SQLSelect语句进行了格式化 ,使用Cursor android.database.sqlite.SQlite-Database.query(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy)语句 。该系统在数据库中定义货车信息表 (车次代号 ,车次始-末站 ,乘坐发车站 ,发车时间 ,乘坐到达站 ,到达时间 ,里程 ,花费时间 )。利用Android的调试工具adb可以通过命令行查看所建立的数据库database。在database目录下 ,使用命令Sqlite3打开数据库Train.db,在SQLite的二级提示符下 ,利用其子命令可以对其进行查询操作 ,如图5所示 。34第 4期 弋改珍 , 等 : 基于 Android的火车时刻表查询系统设计与实现图 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.[6]MONTANARI U.Web services and models of computation[J].Electronic Nots in Theoretical Computer Science,2004,105:5-9.[7]Anon.Web services[J].Electronic Notes in TheoreticalComputer Science,2004,105:95-108.[8]Anon.TraintimeWeb service[EB/OL].[2011-06-03].ht-tp://webservice.webxml.com.cn.[9]郭宏志.Android应用程序开发详解[M].北京:电子工业出版社 ,2010.[10]陈璟 ,陈平华 ,李文亮.Android内核分析[J].现代计算机,2009(11):112-115.作者简介 :弋改珍女 ,1969年出生 ,陕西三原人 ,硕士 ,副教授 。研究方向为无线网络 、网络仿真檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶檶。(上接第40页)[4]廖浩德.ERP定制开发平台研究[J].西南民族大学学报,2008,34(4):804-807.[5]吴士亮 ,薛恒新 ,韦东方.面向行业定制的 ERP系统的构建体系与策略 [J].计算机集成计算系统 ,2005(2):220-227.[6]吴昌秀.ERP实施流程:企业如何实施ERP[M].北京:清华大学出版社 ,2005.[7]VINOSKI S.Integration with Web Services[J].IEEE In-ternet Computing,2003,7(6):10-14.[8]陈兆良 ,王千祥 ,梅宏 ,等.面向对象领域设计中的变化性处理 [J].电子学报 ,2001(11):1486-1490.[9]吴士亮.面向行业的商品化管理信息系统框架构建与方法研究 [D].南京 :南京理工大学 ,2005.[10]马国钧.从 ERP、MES到 APS:寻找提高企业效率和效益的利器 [J].装备制造 ,2008(9):38-40.作者简介 :周世忠男 ,1970年出生 ,福建厦门人 ,硕士 ,讲师 。主要研究方向为计算机软件 。44现代电子技术2012年第 35卷
展开阅读全文
1
  金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:基于Android的火车时刻表查询系统设计与实现.pdf
链接地址:http://www.gold-doc.com/p-255592.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
[email protected] 2014-2018 金牌文库网站版权所有
经营许可证编号:浙ICP备15046084号-3
收起
展开