计算机机毕业设计基于安卓系统的交通事故信息处理与查询系统.docx
《计算机机毕业设计基于安卓系统的交通事故信息处理与查询系统.docx》由会员分享,可在线阅读,更多相关《计算机机毕业设计基于安卓系统的交通事故信息处理与查询系统.docx(102页珍藏版)》请在冰豆网上搜索。
计算机机毕业设计基于安卓系统的交通事故信息处理与查询系统
基于Android平台的交通事故处理与查询系统
------“快速报案”、“违章查询”的设计与实现
摘要
Android是一种以Linux为基础的开源代码操作系统,主要应用于手机,因为其良好的人机交互能力和能够安装使用众多功能各异的应用软件而深受人们喜爱,本文就介绍其基于Android2.3.3版本开发的一个“交通事故快速处理与查询系统”。
根据当下人们的使用习惯和实际需求,本文对事故处理提出了新的构想和设计,并在这样的基础上,构建实现了该交通事故处理平台.
本文首先给出了交通事故快速处理系统的研究背景,进而简要的分析了android的特征、架构,然后详细的分析了该系统是如何一步步设计和实现的。
本系统主要用于对手机上网用户,用户可以在紧急情况快速处理他所发生的交通事故,用户管理员可以对用户提交的交通事故信息进行审核和处理,事后用户可以登录客户端对事故处理结果进行查询。
【关键词】Android;手机;交通事故快速处理;服务器;
Rapidprocessingofaccidents
SoftwarebasedontheAndroidoperatingsystem
Author:
DuKunTutor:
WangLifang
Abstract
AndroidisasortofopensourcecodeoperatingsystemthatbaseontheLinux,andmainlyusedbymobilephone.Itissopopularbecauseofthegoodhuman-machineinteractioncapability,andalsothereareallkindsoffunctionalapplicationssoftwarecanbeinstalledthatthroughbythisoperatingsystem,thisarticlewillintroducesakindofcontactsthatbasesontheAndroid2.3.3version.,thisarticlepointedoutannewideaanddesignfordealingaccidentsduetothepeople’soperatinghabitsandparticulardemands,andonsuchabasistoconstructandachievethiscontacts.functiontoensurethesecurityandstabilityofthesystemeffectively.
ThefirstisthestudybackgroundtotheRapidprocessingoftrafficaccidentssystem,thenabriefintroductionaboutmobileoperatingsystemdevelopmentismade.Nextitgivesabriefanalyseonthecharacteristics,aschemaabouttheandroid.Thissystemismainlyusedfortheinternetusersofmobilephones,userscan,whentheyareinneed,dealwithtrafficaccidentsquickly,whiletheadministratorcanlookforaccidentsinformationuserssubmittodealwith.Afterthat,userscanlogintheandroidclienttoinquirethedealingresultsofthetrafficaccident.
【Keywords】Android;Mobile;Rapidprocessingoftrafficaccidents;Server
第一章系统概述
1.1系统开发背景和意义
1.1.1Android系统概述
目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。
在今年手机市场上,Android的占有率从去年的68.8%上升到78.9%。
而iOS则从去年的19.4%下降到15.5%,WP系统从原来的2.7%,小幅上升3.6%。
从数据上看,Android平台占据了市场的主导地位,继续称当老大的角色。
目前国内最常见的移动开发平台有iPhone,WindowsPhone以及当下占市场主导地位的Android[2]。
下面首先介绍一下Android系统。
Android是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。
它采用了软件堆层(Softwarestack,又名以软件叠层)的架构,主要分为三部分。
底层以Linux核心工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发。
Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。
Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。
因此,它具有很大的市场发展潜力[1]。
因为兴趣和挑战,我开始学习Android编程,通过公司领导和同事,以及指导老师的帮助完成了日照市事故快速处理手机客户端。
希望通过这篇论文的研究,展示我在公司学习与实践的成果,希望给在太原科技大学四年的本科学习交上一份圆满的答卷。
1.1.2国内外手机系统现状
目前国外各软硬件厂商已经推出过多款手机操作系统。
下面简单介绍一下现主流手机操作系统[14]。
iOS是由苹果公司为iPhone开发的操作系统。
它主要是给iPhone、iPodtouch以及iPad使用。
就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。
iOS的系统架构分为四个层次:
核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)[4]。
WindowsMobile系列操作系统是从微软计算机的Windows操作系统演化而来的。
WindowsMobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。
Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML以及3G技术,由于目前该手机系统随着诺基亚公司的衰落已走向末路。
相对国外手机系统百花齐放的局面,国内手机操作系统也不甘示弱。
OPhone是指采用了OMS(开放移动系统)智能操作系统的手机。
为了突破TD终端瓶颈,以及促进手机终端与中国移动的网络及应用服务进行无缝对接,中国移动和播思通讯自去年开始在谷歌Android操作系统基础上,主导开发了OMS系统,该系统直接内置了中国移动的服务菜单、音乐随身听、手机导航、号簿管家、139邮箱、飞信、快讯和移动梦网等特色业务。
1.1.3发展趋势
随着3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。
根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展[12][13]。
首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲友生日等。
其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。
接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。
另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。
如进行端到端的多人游戏、照片分享、书籍分享、音乐分享等。
然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息,帮助用户从事的经济活动的收益率。
最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。
在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。
1.1.3交通事故处理现状
发生交通事故是我们日常生活中很常见的情况,对于常规的交通事故的处理程序则比较繁琐。
当一起交通事故发生以后,当事人向事故发生地的县级交管部门报案,交通管理部门赶赴交通事故现场进行处理。
交警赶赴现场后,首先要对现场进行处理,尽快恢复正常的交通秩序,同时对于适用一般程序处理的交通事故案件,还要进行现场勘查。
交通管理部门在充分了解事故情况时,并结合收集到的各种证据,客观、公正的制作出交通事故认定书,分清事故当事人各方的事故责任。
这样的话,等待交警到达现场再对事故进行判定、处理事故以及进行纸质的登记,一起小的交通事故将造成长时间的交通秩序混乱或者长时间的交通堵塞,这样所浪费的时间以及所耗费的人力、物力是不值得的。
1.1.4本系统的特点
由于以上所说原因,我设计出了这个基于Android平台的事故快速处理与查询的系统,这个系统的特点便是它事故处理时的快速和事故查询时的便捷。
它面向于所有的驾驶人员,只要你有一部可联网的Android手机,便可随时随地使用这些功能。
用户可以手持移动设备,对事故现场和车辆碰撞情况进行拍照,然后上传服务中心,服务中心管理员接到报案后可迅速对事故进行相应的处理,并对事故责任人发送反馈信息,事故责任人收到反馈信息便可撤离现场,无需等待交警赶到现场再对事故进行处理。
这就实现的事故的迅速处理。
事后,事故责任人还可以登录客户端查询事故的判定结果,然后便可去理赔中心进行理赔。
这边实现了事故用户随时随地查询自己的事故违法情况和事故处理情况。
1.1.5系统设计的意义
通过开发这个系统,单靠我一人的力量肯定不会把我的想法表现的尽善尽美,所以本次开发主要起到一个抛砖引玉的作用。
通过设计这个系统,让我从开发的角度对Android有了比较深刻的认识,不管是对于Android开发平台的搭建,或是Android界面布局的搭建,或是实现Android通信等等,都是一步一步亲手操作。
对于Android中的各个模块也有了比较清晰的认识,对于一个实际运行的Android软件,看到的不仅仅是它这个程序表面了。
通过设计这个系统,让我逐渐熟悉了公司对于交警方面的业务流程,让我对于交警处理事故这方面有了相对全面的了解。
而且,设计期间加深了我和同事之间的交流能力和合作能力。
更重要的是,这个系统让我有机会能把课本中学到的理论知识向实践转化,并用于实践,发现理论确实可以指导实践。
1.2系统功能介绍以及承担的开发任务
1.2.1系统功能介绍
本客户端的核心功能就是要实现Android平台调用后台服务器提供的WebService接口,来使用服务器端提供的各项服务。
服务器端主要提供了对于数据库增加和查询等服务。
除此以外,基于Android平台的程序设计需要考虑界面的设计,以及不同界面之间的切换。
界面布局是Android开发过程中的一项重要任务,可以说Android是由界面搭起来的。
以及在Android上实现一些必要的功能,比如调用照相机等等。
1.2.2所承担的开发任务
在这次事故快速处理和查询系统的开发过程中,我的主要任务是对于前台Android客户端的设计,实现“快速报案”和“违章查询”两个功能模块,以及其所涉及的所有界面布局和相关的功能。
重头戏便是通过服务器提供的WebService接口,来实现Android客户端与后台服务器的数据传输或者说是信息交流,其过程包括XMl数据流的封装和解析。
1.3论文的主要结构
本论文的主要章节设计如下:
第一章为系统概述,对系统研究的背景、目的和意义进行了概述,并介绍了本次设计的主要任务,以及本人在此次任务中主要承担的责任。
第二章为环境搭建,主要介绍进行本次毕业设计需要的所有的编程环境,以及如何在个人的计算机上进行这些环境的搭建,环境变量的配置,此外还使用了一个测试程序对环境搭建的正确性进行了测试;
第三章为需求分析,主要对系统进行可行性的分析以及根据用户的需要以及实际的需要来分析系统的主要功能。
第四章为总体设计,主要是根据需求分析的结果对系统进行总体的设计,主要包括总体结构图的设计和各模块的流程图。
第五章为系统实现与编码,主要是在需求分析以及总体设计的基础上对系统的各个模块进行详细的流程描述以及编码实现。
第六章为测试,主要是在需求分析的基础上对系统进行白盒测试,主要验证系统是否实现了在需求分析中分析出的主要功能模块。
最后是结束语和致谢。
第二章系统搭建
2.1Android系统架构分析
Android是一个移动设备的软件平台,Android的架构是由Linux内核、C/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。
它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。
Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[1]。
图2.1Android架构的五个部分
图2.1显示的是Android架构的五个主要部分[1][2][8][9]。
(1)关键应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是使用JAVA语言编写的。
(2)应用程序框架
在AndroidSDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。
但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。
目前所有的应用程序是由服务及系统来组成,包含有:
l)一套强大和可扩展的视图系统:
用来建构一个应用程序的基本组件,包括在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。
2)内容提供者:
使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。
3)资源管理器:
提供各种非程序代码的资源让应用程序去使用。
例如:
本字符串、图形文件或排版相关的布局文件。
4)通知管理器:
提供应用程序在状态栏中显示应用程序自定义的提示信息。
5)活动管理器:
管理所有应用程序的生命周期及提供常用的导航回退功能。
例如:
启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。
6)视窗管理器:
用来管理所有启动程序的视窗。
7)位置管理器:
用来管理地图服务的相关功能。
8)电话管理器:
用来管理用户拨打与接听电话的相关功能。
9)包管理器:
管理所有安装在Android系统内的包。
(3)类库
在Android中包含一些C/C++的类库,这些类库能被Android系统中不同的组件来使用。
开发者可以通过应用程序框架使用这些功能。
部分核心类库列表如下:
1)surfaceManager:
主要的功能是让开发者可以去存取/显示系统及管理的功能,在[显示]与[存取操作]间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。
例如:
在2D、2D显示上的合成、叠合动作。
2)3Dlibraries:
主要是依openGLES1.0规范所定义的3D绘图引擎。
该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最佳化的处理显示。
3)SGL:
主要是处理有关显示2D方面的绘图引擎。
4)MediaFramework:
主要是以packetVideo公司的OpenCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。
例如:
MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式
5)FreeType:
主要是用来显示点阵图和处理向量字形的。
6)SSL:
(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为3.0。
SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。
它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议可分为两层:
SSL记录协议(SSLRecordProtocol):
它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSLHandshakeprotocol):
它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务主要有:
①认证用户和服务器,确保数据发送到正确的客户机和服务器;②加密数据以防止数据中途被窃取;③维护数据的完整性,确保数据在传输过程中不被改变。
7)SQLite:
SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。
8)webKit:
是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的web视图,也可以让开发者利用这个引擎来做不同的应用。
9)libc:
就是一个BSD标准C类库。
但是,针对Linux嵌入式装置进行过最佳化的调整。
(4)Android运行时组件
虽然Android是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。
Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。
Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。
Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。
同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
(5)Linux内核
Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议和驱动模型。
Linux内核也同时作为硬件和软件栈之间的抽象层。
2.2Android平台的搭建
基于Android的程序设计不仅需要Java的基础更重要的是有Android有其独特的编程环境,也就是在Java集成编程环境Eclipse中加入ADT插件。
表2-1就是平台搭建表。
需要说明的是,我此次编程的操作系统是WindowsXP。
表2-1平台搭建表
操作系统
WindowsXP
JDK
SUNJDK7.0
Eclipse
EclipseJavaDevelopmentTools4.3.2
AndroidSDK
Android-sdk-windows
2.2.1JavaJDK的安装以及环境变量的配置
首先需要安装Java,所有的Android开发工具都需要它,编写Android程序也需要使用Java语言[2][5][6]。
首先从SUN下载网站下载最新的SunJDK7.0。
下载完成后,需要安装成功,可以随意选择安装文件夹,也可使用默认的文件夹。
然后依次按下一步进行安装。
最后一步就是要配置环境变量。
步骤如下:
第一步,我的电脑-->属性-->高级-->环境变量;
第二步,配置用户变量:
(1)新建JAVA_HOME:
C:
\ProgramFiles\Java\jdk1.7.0_45(JDK的安装路径);
(2)添加PATH:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(3)新建CLASSPATH:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。
第三步,测试环境变量配置是否成功:
开始-->运行--〉CMD,键盘敲入:
JAVAC、JAVA若出现相应的命令,而不是出错信息,即表示配置成功。
配置图如图2.2—图2.4所示。
图2.2配置环境变量
图2.3配置环境变量
图2.4配置环境变量
2.2.2Eclipse的安装
下一步就是要安装Android开发工具Eclipse了,可从官方网站http:
//www.eclipse.org/downloads/进行下载。
如图2.5所示,下载结束即可安装使用。
图2.5Eclipse下载界面
2.2.3AndroidSDK的安装
AndroidSDK(softwaredevelopmentkit)指的是Android专属的软件开发工具包。
其提供了用于不同操作系统的软件包,在这我需要下载Windows版本的。
下载完成后解压即可使用,如图2.6所示。
图2.6AndroidSDK解压后
然后运行AVDManager.exe即可,下面就可以下载任何我想开发的Android版本platform(平台),我主要是针对于2.3.3版本进行开发的,所以我首先下载了Android2.3.3(API10),如图2.7所示。
图2.7用SDK下载Android开发平台
2.2.4Eclipse插件ADT的配置
ADT(AndroidDevelopmentToolkit)是Google开发的Eclipse插件,作用是关联AndroidSDK,使Eclipse能够新建Android工程,安装此插件的步骤如下:
(1)首先下载ADT压缩包(http: