毕业设计(论文)-山洪灾害监测预警系统平台--PDA系统模块设计.doc_第1页
毕业设计(论文)-山洪灾害监测预警系统平台--PDA系统模块设计.doc_第2页
毕业设计(论文)-山洪灾害监测预警系统平台--PDA系统模块设计.doc_第3页
毕业设计(论文)-山洪灾害监测预警系统平台--PDA系统模块设计.doc_第4页
毕业设计(论文)-山洪灾害监测预警系统平台--PDA系统模块设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文XX学院毕 业 设 计 (论 文)专 业 网络工程 班 级 07网络工程1班 姓 名 XX 学 号 课 题 山洪灾害监测预警系统平台 PDA系统模块设计指导教师 吴 强 2011年 6 月 5 日摘 要基于3G 的山洪灾害监测预警系统,系统能及时掌握雨情、水情、工情的状况,在县级防办建立山洪灾害预警系统平台后,省、市、县、乡(镇)、村等各方面的山洪灾害防治相关信息汇集于此平台,县级防汛部门根据山洪灾害信息和预测情况,及时发布预报、警报。同时县、乡(镇)、村、组建立群测群防的组织体系,开展监测、预警工作。做到山洪灾害的及时监测与预警。本系统由实时监控、雨水情服务、预警发布、群测群防、气象国土、基础信息、应急响应、信息管理、PDA系统、系统后台10个子模块组成,意在建立全面、规范、合理、通用的山洪灾害信息基础资料数据库及山洪灾害信息监测及发布的应用软件,防御降雨在山丘区引发的山洪、滑坡和泥石流灾害的监测预警和群测群防等非工程措施建设,最大限度地减少人员伤亡和财产损失。关键词 :水资源管理系统 山洪灾害监测预警系统;C#,Java,telerik控件,.NET,Android, SQLSERVER 2005 Google APIAbstractMountain torrent disaster monitoring based on 3G early warning system, the system can keep abreast of the regime, YuQing, work in the county of affection condition, established FangBan mountain torrent disaster warning system platform, provincial, municipal and county and township (town) or village of each respect such as mountain torrent disaster prevention related information are collected to the platform, the county flood control departments according to the mountain flood disasters, timely information and forecast issued forecast and warning. Meanwhile county and township (town) or village, group establish group of measurement in beginning organization system, monitoring and warning work. Do the timely mountain torrent disaster monitoring and warning.The system is composed of real-time monitoring, rain sentiment service, warning issued, the group of measuring control, meteorological homeland, basic information, emergency response, information management, PDA systems, systems backstage 10 statures modules to establish comprehensive and standard, reasonable and general mountain torrent disaster information basic material database and flash flood disaster information monitoring and release applications, defense ShanQiuOu rainfall in landslides triggered, landslide and debris flow disaster monitoring and warning and group of measuring control etc non-structural measures construction, minimize casualties and property losses. Key Word: Mountain torrent disaster monitoring and warning system; C#, Java .NET,telerik , Android,SQL Server 2005 Google API目录1 概述61.1系统设计背景61.2系统目标71.3 本人完成的主要工作72 开发工具与关键技术82.1 Eclipse简介82.2 SQL Server 2005 Database82.3 Android概述92.4 Java概述112.5 Android SDK简述123Android系统平台配置和程序开发的基本组件133.1 Android系统构架133.1.1 Android的构架综述133.1.2内核层143.1.3 Android的进程管理机制143.1.4应用程序框架层163.2搭建Eclipse开发环境163.2.1 JDK的安装163.2.2 Android SDK的下载及配置163.3 Android应用程序组件的使用174 概要设计194.1 系统总体架构194.2 功能需求分析194.3 系统的设计方案205 系统的设计及其实现205.1系统结构概述205.2各系统模块的实现225.2.1软件界面的实现225.2.2雨情信息模块的实现255.2.3水情信息模块的实现335.2.4气象信息模块的实现355.2.5预警信息模块的实现355.2.6防汛预案模块的实现366 系 统 测 试376.1 测试376.2 单体测试386.3 集成测试387 总结与展望38致 谢39参考文献40山洪灾害监测预警系统平台 PDA系统模块的设计与实现电子信息与工程学院 网络工程专业 07网络(1)班 范东指导教师: 吴强1 概述1.1系统设计背景安徽黟县地貌形态以山地为主,其境内主要河流漳河流域面积30平方公里,距城区仅4千米,均为山峦,且山高坡陡,河床比降大,加之雨量集中,暴雨径流系数逐年增加,洪峰流量逐年加大,汇流历时短,极易造成山洪暴发,发生洪涝灾害。同时由于林业生产上采用全垦造林和全垦抚育,形成人工林较原来天然林涵养水源,保水保土能力降低,造成严重水土流失,使下游河床淤积,抬高了洪水位;同时交通道路的开辟,城乡基本建设的进行,废弃渣土倾倒入河,大量的生活和基本建设废弃垃圾直接或间接地倒入或流入河道中,加剧河道淤积,河床逐年增高;加之群众防洪意识淡薄,在河道行洪区内搞建设,占用河道河床,缩窄了过水断面,造成阻水,雍高了洪水位;因此本县区受山洪灾害威胁极大。山洪灾害不仅对基础设施造成毁灭性破坏,而且对人民群众的生命安全构成极大的威胁,已经成为当前防灾减灾中的突出问题,是黟县社会经济可持续发展的重要制约因素之一。山洪灾害防治监测预警系统是山洪灾害防治工作的重要组成部分,其目的是在于通过相关信息系统技术手段,达到对山洪灾害进行实时监测、并及时发布预警的功能,其主要内容包括雨水情监测、信息汇集与预警平台、预警等子系统建设等。主要针对防御降雨在山丘区引发的山洪、滑坡和泥石流灾害的监测预警和群测群防等非工程措施建设,最大限度地减少人员伤亡和财产损失。1.2系统目标山洪灾害监测预警系统(以下简称系统)主要包括雨水情监测、信息汇集与预警平台、预警等子系统建设等,能够实现山洪灾害信息的实时监测、灾害预警、应急指挥会商、预警发布以及山洪灾害相关信息的查询、编辑处理等功能。该系统集自动采集、传输、查询和决策为一体,实现了水情测报、防洪调度的自动化和现代化,提高了防汛抗旱调度指挥手段的先进性,防汛部门可根据山洪灾害信息和监测情况,及时发布山洪预报、警报,有效增强地区抗御自然灾害的能力。1.3 本人完成的主要工作在这次毕业设计中,本人做得主要是设计出一个基于3G网络的手机PDA子系统,将主系统上面的各种信息数据在Android手机上得到显示,可以通过PDA查询当前系统数据里所用关于山洪信息,并在Google地图上标记出来,而且也可以收到山洪预警的信息,将系统全方面的展现在手机客户端,让防汛部门人员可以随时随地的接受到山洪灾害信息和监测情况,及时发布山洪预报。在设计者部分模块时,本人是在Java环境下,采用Eclipse开发环境,利用Android SDK插件模拟手机平台,使用Google Map API开发,手机地图功能更强劲,并且不需要针对实施地点制作地图。而且该系统将提供专有的后台数据维护工具,可以让实施人员技术瓶颈降低,不必要和软件代码和数据库内部结构交涉。以上的就是这次毕业设计本人完成的主要的工作。2 开发工具与关键技术2.1 Eclipse简介 Eclipse是一个开放源代码的、基于 Java 的可扩展软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始.Eclipse 包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。2.2 SQL Server 2005 Database本系统采用SQL Server 2005作为后台数据库。其特性包括:可伸缩性和可用性:同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows 98 的便携式电脑,到运行 Microsoft Windows 2005 数据中心版的大型多处理器服务器。SQL Server 2005 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。企业级数据库功能: SQL Server 20005关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2005 分布式查询使您得以引用来自不同数据源的数据,就好像这些数据是 SQL Server 2005 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的用户,使这些用户自主地工作,然后将他们所做的修改合并会发布服务器。易于安装、部署和使用:SQL Server 2005 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2005 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。SQL Server 2005 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。2.3 Android概述Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android从诞生到现在也不过3年的时间,但是也就是在这短短的3年内 Android创造了一个迅速被人们知晓 并追 捧的奇迹。2007 年11月5日,Google 与其他33家手机制造商(包含 摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬体供应商、电信业者所联合组成的开放手持装置联盟(Open Handset Alliance),发布了名为Android 的开放手机软硬体平台。该联盟的成员宣布日后都会在Android平台上开发他们的新的业务。不久之后的 2008年9月24日,T-Mobile公司首度公布第一台Android手机(G1)的细节,同日Google也放出了Android SDK 1.0 rc1。这样Android进入了人们的视线。 Android以其特有的开放性优势越来越受到人们和智能手机厂商的关注。对于第三放软件开发商来说,Android是一个真正意义上的开放性移动设备综合平台,Android系统 是免费向开发人员提供的,这样就避免了开发中专利权的障碍。因此,就能够为第三方软件开发商省下大笔资金。 对于设备制造商来说,Android是一个免费的平台。当设备制造商每制造一台手机时,那些支付给手机系统制造商的费用也省去了,这样也降低了每台手机的生产费用,同时就降低了手机的价格,这样在市场上也提高了竞争力。 对硬体开发厂商来说,Android 也是个开放的平台。使用 Android 平台的厂商可以更具自己的需求以及能力为 And roid 开发具有该厂商特色的功能,但是 这样的增加完全不用考虑版权的问题。同时 Android 平 台支持各种先进的网络、绘图、3D 处理能力 ,可以用来提供更好的使用者体验。 Google Android系统作为一个完全开源的操作系统,是由操作系统(Linux)、中间件以及核心应用程序组成的软件栈(software stack)。通过android SDK提供的API以及相应的开发工具,程序员可以很方便的开发android平台上的应用程序。其整个系统由应 用程序(Application),应用程序框架(Appl ication Framework),应用程序库(Libraries),Android 运行库(Android Runtim e),Linux 内核(Linux Kernel)五个部分组成。Android操作系统内置了一部分应用程序,包括电子邮件客户端、SMS 程序、日历、地图、浏览器、通讯录以及其他的程序,值得一提的是这些所有的程序都是用 java 编写的。 因为应用程序框架使得组件更易于重用,所以开发者的应用程 序可以很容易的调用 API函数实现我们想要的功能。在遵守应用程序框架的安全机制约束的前提下,开发者开发的一个应用程序可以使用其他程序所开发的功能。虽然Android的应用程序是用Java语言开发的,但是Android给应用程序开发者提供了一系列的C/C+ 程序库,通过Android的一些特殊的设计,我们开发者可以使用这些库,这在后面的叙述中将看到。 现今Android 操作系统已成为许多手机制造商的宠儿,其中包括HTC、索尼爱立信、Samsung、摩托 罗拉以及国内的联想、华为、海尔、华禹等。其中值得 一提的是摩托罗拉公司,就在 2009 年 11 月凭借其一款搭载 Android 平台的 Droid 手机,两个月内就突破百万台, 击败 了苹果的 iPhone 3GS,被时代杂志评选 为“ 年度最佳科技产品”。因此告别了两 年多 的低迷态势,走出了泥潭。 2.4 Java概述Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下子变成了白天鹅。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。2.5 Android SDK简述SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口 API 的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。 为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构件SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。 SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的SDK可能与自由软件开发抵触。GPL能使SDK与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。Android sdk可以理解为是一个android开发的工具,实际上它是作为eclipse的一个插件,有了它,就可以在eclipse里开发android程序了。3Android系统平台配置和程序开发的基本组件3.1 Android系统构架3.1.1 Android的构架综述Android 是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定有一个层次的系统构架,下图为 Android 的构架图: 图3-1 Android 系统构架从图3-1中明显的可以看出该系统从下到上包括 Linux 内核层、Libraries和运行时环境层、应用程序框架层、应用程序层四层结构。在Android的最下层的操作系统基于Linux2.6内核,往上的中间件包括Libraries和运行时环境层和应用程序框架层两个层次,最上层则是应用程序层。在Android构架中,可以很明显的看到,底层的 Linux 内核则采用的是C语言libraries采用C或者C +,但是应用程序层、应用程序框架层和运行时环境中的Android 核心库采用Java语言编写,也就是说Android虽然底层用的是C或者 C+,但是应用程序的开发则用的是Java。Google采用这样的模式可能是因为相对 C或者 C+,Java 的开发周期更短的缘故,这样的话就能在短时间内为Android提供大量的应用软件。我们知道,作为一个智能手机平台,只有拥有了大量的源源不断的应用程序作为支持,才能受人们的欢迎,从而才能占领市场。之前Nokia的s60第三版就是一个很好的例子,因此Nokia S60v3的系统才被世人所熟知,并且曾经在智能手机行业占有很大的市场。而另一个例子就是Linux系统,在所有操作系统中,稳定性和性能上能够和Linux抗衡的系统不多吧,但是在智能手机市场上为什么Linux却可以说是一败涂地,其原因也和其第三方应用少是脱不了关系的。3.1.2内核层Google Android 作为一个开源的操作系统其内核采用了同样开源的被业界认为是相当稳定的Linux作为其内核,其中Linux内核包括以下功能模块:安全(Security)、存储器管理(Memory Management)、进程管理(Process Management)、网络堆栈(Network Stack)、驱动程序模型(Driver Model)等,另外也在给其上层的软件和下层硬件间建立起一个抽象层(Abstraction Layer)。同时Android在Linux 2.6的内核上进行了一些增加和删改,使Linux更加适应ARM平台。增加了一个基于ARM构架的GoldFish平台作为虚拟机的虚拟CPU。增加了YAFFS2 FLASH系统文件,因此增加了对NANDFLASH支持。增加了Android相关的驱动。例如Android的IPC(进程间通信机制)binder,使用这个能使运行的进程为其他进程提供服务;Android的日志系统(Logger)和内存控制台(Ram_console);同时Google还重写了电源管理(Power)增加了新的共享方式Ashmem(匿名共享内存),多个应用程序可以这种方式共享内存获取信息,为进程间提供大量共享内存,同时为内核提供回收和管理这个内存的机制。3.1.3 Android的进程管理机制Android虽然是基于Linux,但是它却采用了一种有别于Linux的一种管理机制。Linux在一个进程活动停止后就立刻结束该进程,而Android在一个进程活动停止后不会立刻结束该进程,并使该进程常驻内存中。直到系统资源不够需要更多内存或者当某个结束进程的事件发生时才将该进程结束。在 Android 中进程被分成了前台进程(foreground)、可见进程(visible)、次要服务(secondary server)、后台进程(hidden)、内容供应节点(content provider)、空进程(empty)六种。前台进程是指一些系统进程和当前屏幕上正在显示的进程。比如说你打开Google地图查找路线,此时Google地图就是一个前台进程。可见进程则是那些虽然不在前台,但是用户依然可见的进程,如输入法,时钟等,这些进程虽然不是在前台运行的,但是其存在和我们的使用却是密切相关的,如果关闭了这些应用程序将给我们的使用带来非常大的不便次要服务是一些与系统功能息息相关的服务,如Google 企业套件等。后台进程,可以这么说后台进程就是一个前台进程被另一个前台进程替换后,进程没有结束,但是已经不再是前台进程的一个状态。在实际应用中就是当一个前台进程运行时按HOME键后的进程状态内容供应节点是没有程序实体,而是仅仅提供内容给别的程序使用的比如说日历节点空进程是没有任何东西在运行的进程,在一个程序退出后会有一个没有任何数据和代码在运行但是依然驻留在进程空间中的进程,该进程仅仅是作为一个能够提高该程序下次启动速度和记录程序历史记录的进程。Android 在调度以上几种进程时使用了一个系统值作为系统对进程的一个评估,当要结束一个进程时该值的数值越大的进程被系统选中并结束的概率越大。一般的,前台进程的值为0,这表明前台进程不可能被系统选中并结束。当进程进入后台以后,系统将会分配一个更高的值给该进程。相对于Linux的最近最早未使用的调度策略,Android在其基础上提供了一套独特的进程管理模块,他能让程序员使用脚本来对内存管理进行定制。比如当内存小于某个值时可以结束这个系统值大于另外一个值的进程,还可以当内存小某个值时结束上面六类进程中的一类(但顺序必须是空进程,内容供应节点,后台进程,次要服务,可见进程,最后才是前台进程)。根据这种特性该系统值至少由两部分组成,一个是基值,另一个根据LRU(最近最久未使用)调度算法产生的一个值。对于以上说的六种进程应该分别有一系统给其赋予的值,其大小顺序应该是空进程大于内容供应节点大于后台进程大于次要服务大于可见进程大于前台进程,而这个系统赋予的值则是基值。这样就能保证一些这六种进程总是当一种进程被结束完了以后另外一种进程才会被结束,同时只需要根据这个系统值就能轻易做到对内存管理的定制。3.1.4应用程序框架层在Android系统构架图中可以看到,应用程序框架层是处于Android Runtime和库函数层于应用程序层之间,之前的叙述中知道,该层使用开发语言的是Java语言。应用程序框架是能够让开发者完全访问核心应用程序所使用的 API(ApplicationProgramming Interface,应用程序编程接口),该框架能够让组件软件重用的工做简单化。同时该框架中的任何一个功能模块都是等价的,任何一个应用程序都可以发布其功能模块,该功能模块可以替代当前的任意一个功能模块,但前提是必须遵循框架的安全限制,另外,其他的任意应用程序能够使用这个发布的功能模块。这样的设计就使Android的构件重用率提高了。在每一个应用程序背后,应用程序框架为其提供了一系列的服务。这些服务包括:一个丰富并且可扩展的视图,通过这个视图我们可以使用它提供的一些包括按钮、文本框、列表、网格等甚至可嵌入的web浏览器的应用程序来构造我们的应用程序。内容提供器(content providers),有了内容提供器,一个应用程序可以共享它自己的数据或者访问另外一个应用程序中共享的数据。资源管理器(resourcemanager),使用资源管理器,我们在应用程序中能够访问到一些如图形、布局文件等一些非代码资源。通知管理器(notification manager),给程序员提供了一个可以在程序状态栏中显示自定义提示信息的管理器。活动管理器(activitymanager),提供常用导航功能用来管理应用程序生命周期的服务。通过这些应用程序框架层提供的服务程序员能够方便的开发一个界面优秀功能强大易于共享的的应用程序。3.2搭建Eclipse开发环境3.2.1 JDK的安装Eclipse的运行建立在JRE之上,因此必须先安装JRE。可以从Http:/下载JDK6,然后按提示进行JDK的安装;安装完成后,再配置环境变量。使得电脑具有java运行环境。具体见附录13.2.2 Android SDK的下载及配置有了Java运行环境,就可以下载Eclipse ZIP包,解压后就能直接运行Eclipse.exe。在Eclipse中安装一个名为ADT的Android开发工具插件,就可以使用SDK进行Android的应用开发。ADT安装完毕后,还要配置Eclipse参数,使其指向SDK跟目录。这样就能在Eclipse环境下进行Android应用的研发了。具体见附录1 图3-2 Android运行效果图3.3 Android应用程序组件的使用Android应用程序以各种组件(API)为基础,API是Android软件平台的主要组成部分,也是开发Android应用的关键所在。下面介绍几种主要的Android API。(1) 当前活动程序Activity:作为最常用的应用程序逐渐,几乎所用Activity都会通过创建UI串口与用户进行交流。Activity具有生命周期,它包含运行,暂停,停止等几个状态,状态间的转换可通过调用onCreate()onStart()onResume()onFreeze()onPause()onStop()onDestory()等方法来实现。要开启新的Activity,可以调用startActivity(Intent)等方法来实现,或调用stratSubActivity(Intnet,int),后者通常和onActivityResult(int,int,String,Bundle)联合使用,以从一个Activity获取某结果并返回给打开它的Activity。(2) 图像显示View:View是最基本得UI构件,它在屏幕中占据一个矩形区域可用来显示文本、图像等内容,还可完成图像事件处理。常用的View方法有:inflate( )(由XML文件生成View)、onDraw(Canvas)(对View进行填充)、onMeasure(int,int)(测量View的高度和宽度)、onLayout( )(完成View的布局)、onKeyDown(int,KeyEvent)(View中有按键操作时被调用)、onFocueChanged(bollean,int)(当View得到或失去关注时被调用)。View也包含一些子类,如:Text-View(布局文件中的文本显示)、Button(按钮)、ListView(显示列表)。(3) 数据存储与共享机制Content Provider提供给你的应用程序与其他应用程序共享数据的一个功能。我们的应用程序可以通过Content Provider提供的一些方法来处理或者保存其他应用程序Content Provider中的数据,这样来达到数据的共享。(4) 后台服务Service:Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以适合Contexr.StartService()开启一项后台服务,还可以通过Context.bindService()与后台服务通信。4 概要设计4.1 系统总体架构 本系统主要分为实时监控、雨水情服务、预警发布、群测群防、气象国土、基础信息、应急响应、信息管理、PDA系统、系统后台10个子模块。系统的总体框架如图4-1。 图4-1山洪灾害监测预警系统平台 在Android系统平台上实现上述功能,需将PDA系统连接到系统后台的网站上,才能将信息在手机端得以充分的表现出来。4.2 功能需求分析根据山洪灾害监测预警系统的需求,系统主要分为实时监控、雨水情服务、预警发布、群测群防、气象国土、基础信息、应急响应、信息管理、PDA系统、系统后台10个子模块。主要功能结构图如下:PDA系统下包括了前面几个模块的功能,在手机上实现就需采用连接外部网站的方法。雨情水情部分需要在google地图上将每个城市的情况设置链接,点击进入可以查询具体的雨水情数据,单个城市的界面则需要访问系统后台网站所设计的插件来实现。天气信息则是连接中国天气网,将天气信息同步到手机端。预警信息将在google地图上实现,不能的预警信息采用不同的颜色表现出来。视频监控方面则是将视频信息呈现在PDA系统上。后面几部分也是采用连接到系统后台的数据库上,并在手机端反应出来。4.3 系统的设计方案PDA系统涉及了整个系统的功能,需要通过3G网络连接系统后台数据库,主要完成水情雨情模块的设计。所以本系统的设计方案是:先模拟界面,再通过API控件将外面数据库导入,最后把各模块联系到一起。5 系统的设计及其实现5.1系统结构概述根据PDA系统模块所包括的功能,PDA系统界面需将所有的功能部件涉及进去,下图为设计的界面: 图5.1 系统界面雨情信息模块:该模块主要是对雨情点的实时报、日报、月报、以及预警伐值的查询和浏览。该模块结合了google地图模块功能,进入后,将直接在范围地图上显示所有雨情点,并且在界面下方显示雨情信息一览表,包括:站名、当日雨量、当月雨量和实时雨量的一览信息。水情信息模块:该模块主要是对水情点的实时报、日报、水位库容、以及预警伐值的查询和浏览。该模块结合了google地图模块功能,进入后,将直接在范围地图上显示所有水情点,并且在界面下方显示水情信息一览表,包括:站名、当日水位和实时水位的一览信息。气象信息模块:该模块主要用于自动采集并显示当地气象台提供的天气预报信息和一周的天气变化情况,供终端用户分析使用。主功能菜单点击气象信息按钮后, 进入本功能,界面初始显示的是歙县24*5小时的气象信息,也可以根据搜索条件进行全国任何地点的气象查询。该气象信息来自中国气象局公共气象服务中心。预警信息模块:该模块在重大灾情将要发生的情况下,将雨情警报、水情警报、气象警报等信息内容通过短信方式,自动将预警信息发送到定制的用户手机中。可以再google地图上直接查询相关的预警位置。视频监控模块:该模块主要集成视屏监控功能。可以更加直观、便捷的对全县重点防洪工程运行情况进行实时监控,遇到险情时,防汛人员还可以通过系统对发生地进行全方位、多角度的监控。更利于相关部门准确的对人员和物资进行调度和管理。群测群防模块:该模块系统基于专用电话或短信机架设,通过当地群众对本地灾情的实时发现或提前预警,通过群测群防服务器(AI或专人录入)接收预警;另一方面,通过专有的山洪灾害预警设备(水位、雨量等数据)进行分析,比较,对于具有存在可能性较高的事件,及时通知相关责任人。兼容了google地球的遥感定位功能,能够高效的对群测信息进行定位及预警。防汛通讯模块:该模块提供日常的防汛通讯录信息,可以查找通讯录中的某个具体联系人,也可以根据相应的分类查看县级联系人、市级联系人以及无线广播防汛预案模块:该模块根据预警结果及发布的情况,各相关部门要启动相应的响应预案。在PDA系统中,只能查看响应预案的详细情况。5.2各系统模块的实现5.2.1软件界面的实现如图5.1,部分代码为:public class MainForm extends Activity Dialog dialog; String m; private final Handler mHandler; LinearLayout mlayout; ScrollView scrollview; WebView wv;public MainForm() String arrayOfString = new String9; arrayOfString0 = 雨情信息; arrayOfString1 = 水情信息; arrayOfString2 = 气象信息; arrayOfString3 = 预警信息; arrayOfString4 = 视频监控; arrayOfString5 = 群测群防; arrayOfString6 = 防汛通讯; arrayOfString7 = 防汛预案; arrayOfString8 = 帮助; this.m = arrayOfString; Handler localHandler = new Handler(); this.mHandler = localHandler; public void process(int paramInt) WebMain localWebMain = WebMain.class; googlemap localgooglemap = googlemap.class; if (paramInt = 0) Const.querytype = yq; Intent localIntent1 = new Intent(); localIntent1.setClass(this, localgooglemap); startActivity(localIntent1); while (true) return; if (paramInt = 1) Const.querytype = sw; Intent localIntent2 = new Intent(); localIn

温馨提示

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

评论

0/150

提交评论