logo资料库

Android\基于Android平台的智能交通开发.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
0. 系统总体概述
1. Android操作系统
2. 终端硬件设计
3. 终端应用程序设计
3.1 界面显示模块设计
3.2 Socket通信模块设计
3.3 数据存储模块设计
4. 总结
基于 Android 平台的桥梁监测终端的开发 孙弋 a,刘俊贤 a,刘涵君 b (a 西安科技大学 通信学院,陕西 西安 710054) (b 西安电子科技大学 微电子学院,陕西 西安 710071) 摘要:随着 Android 技术的迅猛发展和日趋成熟,Android 操作系统在手持终端中所占比例 正逐步上升,其开放性、便携性、良好的兼容性、无缝结合网络通信等特点将使 Android 操作系统在未来工业领域中也有着广泛的应用。本文提出一种基于 Android 平台的桥梁监测 终端的开发设计方案,该方案的终端设计基于 S3C6410 处理器的硬件平台和 Android 1.5 版 本的软件平台,通过 Socket 编程使终端利用 Wi-Fi 无线通信技术接收桥梁数据,通过分析 数据并将其保存到终端 SQLite 数据库中。终端应用程序的界面显示能够读出数据获取信息, 通过调用数据库中的历史数据与当前数据进行比较而达到对桥梁监测的目的。该方案重点研 究接收终端的平台结构,系统架构和应用程序的设计与实现。 关键字:Android;Wi-Fi;ARM;Socket Design of Bridge Monitoring System’s Terminal Based on Android Sun Yia, Liu Junxiana,Liu Hanjunb (Xi'an University of Science and Technology Communication and Information Engineering College, Xi'an 710054) (School of Microelectonics,XIDIAN University , Xi'an 710071) Abstract: With the rapid development and increasingly sophisticated of Android technology, Android operating system’s share is gradually increased. Its openness, portability, good compatibility, integration of network communication and so on will make Android operating system have a wide range of industrial applications in the future. This paper presents a design of bridge monitoring system’s terminal based on Android platform. This terminal design is based on S3C6410 processor and Android 1.5 software platform. The terminal receives bridge data by Wi-Fi wireless technology via Socket programming, then analyses data and saves it to the SQLite database. Terminal’s application program can display data on UI, and compare historical data and current data to monitor the bridge. The method focuses on platform of terminal, system architecture and design of application program. Keywords: Android;Wi-Fi;ARM;Socket 引言(INTRODUCTION) 建国以来,我国桥梁建设发展迅速,但随着时间的推移,越来越多的桥梁因地质灾害 发生结构性损伤将提前达到设计基准期。由于桥梁是重要的基础设施,且投资巨大,所以对 桥梁状况的监测意义重大。 目前桥梁监测存在的主要问题有:监测仪器设备落后,工作量大,费用高,监测复杂 且耗时长。监测过程中主观人为因素较大,不能客观准确地反映桥梁的实际情况。监测技术 落后,没有充分利用现代科学技术发展最新成果和理论。 为全面监测桥梁状态,确保桥梁的安全,本文提出基于 Android 平台的桥梁监测系统 的终端设计方案,以提高监测和评估的可靠性。该系统使用 Wi-Fi 无线通信技术来获取前端 数据,通过手持终端来控制和处理数据信息,并在此基础上进一步完善人工监控、数据库系 统,建立与智能技术相结合的桥梁运行状态的分析及评估专家系统,最终实现桥梁的现代化
管理。 0. 系统总体概述 基于 Android 平台的桥梁监测系统的开发包括:前段采集模块、中继模块和手持终端三 部分。前端采集模块包括:处理器、传感器、调理电路、ZigBee 无线模块及外围电路;中 继模块包括:处理器、Wi-Fi 无线模块、ZigBee 无线模块、存储单元及外围电路;手持终端 包括:中央处理器、Wi-Fi 无线模块、显示单元、存储单元及外围电路等部分。 监测系统运行时,置于桥梁截面的前端采集模块启动,采集装置在一定时间里采集一次 桥梁的状态数据:温度、湿度、降水量、支座位移、桥梁截面振幅等。采集数据经处理器换 算成相应的参数,通过 ZigBee 传输给中继模块进行本地储存。开启手持终端设备上相应的 应用程序,选择主菜单的监测系统,点击测试按钮,终端向中继器发送指令启动其 Wi-Fi 模块并与终端的 Wi-Fi 模块建立连接,中继器将其保存的数据通过 Wi-Fi 发送给手持终端, 终端在接收数据后进行解析并在程序界面上显示出来,同时将数据保存到本地数据库。数据 接收完毕,终端应用程序的查询系统可以调用 SQLite 数据库查询桥梁的前期数据,预警系 统将数据和门限值比较得出相应结论,评估系统利用专家系统及数据统计分析对桥梁进行科 学的评估。 桥梁监测系统框架如图 1 所示: 在桥梁监测系统中,前端采集设备和中继器将收集到的桥梁数据传送给终端设备,而手 持终端的主要任务是:接收数据、处理数据、保存数据、显示数据等,预警系统和专家评估 系统也需要通过终端来完成。终端的设计在整个桥梁检测系统中占有着举足轻重的位置。 图 1 系统框图 1. Android 操作系统 Android 是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名 称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的 真正开放和完整的移动软件。 Android 操作系统基于开放的 Linux 内核,是真正开放的平台,其应用程序可以调用该 平台中任何的核心功能。Android 的应用程序可以通过标准 API 访问核心移动设备功能, 并通过 HTML、JavaScript 和 WebView 嵌入网络。Android 提供了完整的多任务运行环境, 多个应用程序可以在 Android 系统中并行运行。 SQLite 是 Android 所带的标准数据库,支持 SQL 语句,是轻量级的嵌入式数据库,可 以对数据进行增、删、查、改的操作。作为嵌入式 SQL 数据库引擎,SQLite 没有独立的服 务进程,直接读写原始磁盘文件。拥有多个表、索引、触发器和视图的完整 SQL 数据库包 含在独立的磁盘文件中,Android 数据库中的数据储存在目录/data/data/<程序包名>/databases 中。
Android 作为终端操作系统,其软件层次自下而上分为:基于 Linux 内核的操作系统层, 各种库和 Android 运行环境,应用程序框架,应用程序,如图 2 所示: 图 2:Android 软件平台结构 Android 应用程序由以下四个部分组成:Activity、Broadcast Intent Receiver、Service、 Content Provider。并不是所有的程序都会涉及这四部分,只使用 Activity 类也可完成对特定 程序的设计开发。Android 应用程序需要在项目中的 AndroidManifest.xml 描述文件里申明上 述四个部分,并为各部分的功能和需求进行描述。 Android 系统的 UI 设计可以通过 xml 配置、用户界面接口或直接用代码生成。Activity 类是 Android 应用程序中最基本的功能单元,该类借助于 View 和 Viewgroup 两个最基本的 用户界面表达单元显示在界面屏幕上。 2. 终端硬件设计 Android 要求系统 CPU 至少为 ARM9 200MHz 才能运行 Dalvik Java 虚拟机,该方案的 终 端 设 计 选 择 Samsung 公 司 的 ARM11 S3C6410 嵌 入 式 处 理 器 为 核 心 , 其 主 频 为 533MHz/667MHz,最高达 800MHz。S3C6410 是基于 16/32-bit RISC 内核的低成本、低功耗、 高性能微处理器解决方案,采用 64/32-bit 内部总线架构,内部集成多个功能强大的硬件加 速器。S3C6410 的外部存储器接口能力极佳,能够满足 Andriod 应用程序的开发需求。 桥梁监测系统中,终端要完成接收数据、处理数据、保存数据、显示数据等功能。其硬 件设计以 S3C6410 嵌入式处理器为核心,结合 Wi-Fi 短距离无线通信模块,再辅以显示应 用程序界面的 LCD 显示屏,以及 USB 接口用以实现其他功能需求。存储单元为 SDRAM 和 FLASH。其硬件结构如图 3 所示: 图 3:Android 硬件结构
3. 终端应用程序设计 该方案的终端应用程序设计基于Google研发的Android 1.5操作系统来实现桥梁监测功 能。Android的系统构架分为应用层、应用框架层、系统运行库层和Linux内核层,Android 应用程序的开发通过应用框架与Android底层进行交互。该终端应用程序的设计采用模块化 程序设计方案,根据终端需要完成的任务、任务性质及实时性等要求结合数据流程详细划分 出各功能模块。根据桥梁监测系统功能的需求,该终端要实现的功能模块有:界面显示模块, Socket通信模块,SQLite数据存储模块。 该终端应用程序的设计采用简单易懂且逻辑性更强的MVC模式把应用程序的视图层和控 制层相分离。应用程序设计中,视图层在layout目录里用XML语言来编写,控制层在src目录 里用Java语言来编写。整个应用程序流程如图4所示: 图4:应用程序设计流程 3.1 界面显示模块设计 桥梁监测系统终端的设计中,为保证操作简单且能够方便直观地读取数据,良好人机界 面的设计是必不可少的。该终端的应用程序界面设计中采用对功能菜单的分类来分别设计相 应的界面。该监测系统中,终端应用程序要实现的主要界面有:登陆主界面,主功能选择菜 单,下属子菜单,数据显示界面四大部分,其设置如图5所示: 图 5:界面显示模块 系统界面是用户对设备操作的人机界面,系统界面的良好设计有助于用户对设备的操 作,方便进行设备控制和数据存储。软件界面采用分级结构,界面的设计由xml文件生成, java文件用来定义Activity类,并与对应的xml文件相关联,通过对不同Activity类的调用,
来实现对不同界面的切换,这样设计的应用程序更具模块化管理。 具体步骤为:打开Android项目里的res\layout目录,用xml语言来编辑设计程序界面。首 先确定界面的布局,嵌套ViewGroup的LinearLayout和RelativeLayout进行布局,调整 android:layout_width、android:layout_height、android:background、android:padding、 android:orientation、android:gravity等参数值,以达到满意的整体布局效果。然后在ViewGroup 布局中添加View控件:textview、button,根据实际需要调整各控件的android:id、 android:layout_height、android:layout_width、android:text、android:textSize等参数值。 通过调整布局排列,控件位置,字体大小,最终完成对Android应用程序UI的布局。 3.2 Socket 通信模块设计 桥梁监测系统运行时,手持终端要接收中继器发送来的数据则必须采用socket通信技 术。socket通信使手持终端和中继器建立连接进行数据交互,最终将桥梁的状态数据通过中 继器传送给接收终端。打开Android项目里的src文件夹,为Activity创建一个相关联的Java文 件,不同Activity对应各自的xml界面文件。打开测试子菜单对应的Java文件,给对应的Button 控件添加java程序,使其完成socket通信的建立,连接与关闭功能。 Socket工作过程如图7所示:中继服务器首先启动,通过调用Socket()建立一个Socket, 然后调用bind()将该Socket和本地网络地址绑定在一起,再调用listen()使Socket做好监听准 备,并规定它的请求队列的长度,之后调用accept()来接收连接。终端在建立Socket后就可调 用connect()和服务器建立连接。连接一旦建立,手持终端和中继器之间就可以通过调用 sendto()和recvfrom()来发送和接收数据。最后,待数据传送结束后,双方分别调用closesocket() 关闭服务。 图7:手持终端和中继器socket连接流程
3.3 数据存储模块设计 手持终端接收到桥梁状态数据后需要在本地对数据进行分析归类并保存在SQLite数据 库中,以便后期的调用查询。在该终端的应用程序设计中采用Android系统内置的SQLite数 据库,该数据库提供了添加(insert)、删除(delete)、查询(query)、修改(update)等基本操作。 应用程序通过SQLite创建私有的数据库以存储复杂的结构化数据,在Android设备中数据库 位于/data/data/databases文件夹。 该应用程序设计中,通过调用辅助类SQLiteOpenHelper来创建、打开、更新和升级数据 库。SQLiteOpenHelper类的实现由调用其子类:onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int)来完成,其中SQLiteDatabase提供create, delete, execute SQL commands等方法来管理和操作SQLite数据库。 在桥梁监测系统中,为使前端采集设备、中继器和手持终端之间的数据传输更为便捷和 高效,并满足数据存储和显示的要求,特规定监测系统中传输数据所使用的数据格式如下: 包头 0x5a 包长 度 66 指令 编号 0x01 ~ 0x12 采集设 备号 0x01 ~ 0x06 数据 长度 60 数据正文 数据 1 数据 2 数据 3 数据 4 数据 5 数据 6 10 10 10 5 5 20 包尾 0xa5 说明: 包头: 0xa5 一字节(1B); 0x5a 一字节(1B); 包尾: 包长度: 所传输数据包的总长度,包括包头包尾,以字节为单位。1 字节(1B); 指令编号:一字节(1B); 数据长度:数据正文的长度,以字节为单位。一字节(1B); 数据正文:包括六路数据,每路数据占用 10 个字节,共 60 字节(60B),为字符串。 数据存储过程如图8所示:当终端和中继器建立socket连接后,中继器将保存在本地的前 端采集数据包通过Wi-Fi传递给终端。终端接收数据包后,在本地按照规定数据格式进行解 析,将提取的相关数据在本地SQLite数据库中保存,并更新数据表。需要调用当前或历史数 据时,从本地数据库中提取数据,然后进行二次处理,并将提取出来的数据和相应的界面控 件Textview关联,最终将数据显示在终端界面上。 图8:SQLite存储读取数据 桥梁监测系统终端应用程序设计完成后,运行如下:
4. 总结 本桥梁监测系统基于Android系统平台,其开放性、便携性、丰富的硬件选择性、良好 的兼容性、无缝结合网络通信等特点使基于Android平台的手持终端在工业领域具有更加广 阔的发展前景。基于Android平台的桥梁监测系统终端的设计,通过前端采集模块获得桥梁 温度、湿度、降水量、支座位移、桥梁截面振幅等重要状态参数,利用低功耗Zigbee技术实 现前端采集模块与Android操作系统终端之间的通信,通过对桥梁结构应变等基础数据的监 测为桥梁的长期安全维护提供方便可靠的系统方法。 参考文献: [1] 孙弋. ARM-Linux嵌入式系统开发基础[M]. 西安:西安电子科技大学出版社,2008. [2] 余志龙. Android SDK 开发范例大全[M]. 人民邮电出版社, 2009 . [3] E2Ecloud工作室.深入浅出Google Android[M]. 人民邮电出版社, 2009 . [4] 靳岩,姚尚明.Google Android开发入门与实践[M]. 人民邮电出版社, 2009 . [5] 杨文志.Google Android程序设计指南[M]. 电子工业出版社, 2009 . [6] 《Google API大全》编委会. Google API 大全[M].电子工业出版社, 2009 .
[7] 张岩.基于Java手机平台移动多媒体系统的设计与实现[D]. 哈尔滨工业大学,2006. [8] 韦艳玲,黄力. 基于J2ME技术在嵌入式领域的应用研究[J]. 电脑知识与技术, 2005 . [9] 韦于莉. 手机应用软件开发中J2ME技术的应用研究[D]. 武汉大学, 2004 . [10] 赵博. 基于J2ME的移动终端系统的研究与实现[D]. 华北电力大学(河北), 2009. [11] 于少山,卡米力.毛依丁. 基于XML的即时通信系统的研究与实现[J]. 重庆邮电大学学报(自然科学 版), 2007, (S1). [12] 张辉宜,赵海军,张岚. 嵌入式Linux2.6内核实时化技术[J]. 工业仪表与自动化装置, 2007, (05). [13] 陈粤,李志蜀,罗奕. 基于J2ME平台的手机通讯程序分析与实现[J]. 计算机应用, 2003, (05) . [14] 帅小应,廉东本. 基于J2ME的移动位置服务3G手机应用平台的设计[J]. 计算机应用, 2004, (11) . [15] 李勇刚,周晓菲,徐明. 基于J2ME和XML技术的移动商务安全设计[J]. 计算机应用研究, 2006, (11). [16] 臧海峰,张力军. 通讯软件发展现状的分析与研究[J]. 计算机与数字工程, 2008, (02) . [17] 赵亮,张维. 基于Android技术的界面设计与研究[J]. 电脑知识与技术, 2009, (29) . [18] 李观华,范辉. J2ME在移动通信程序中的应用[J]. 计算机应用, 2003, (03) . [19] 陈昱,江兰帆. 基于Google Android平台的移动开发研究[J]. 福建电脑, 2008, (11) . [20] 武海峰. 移动应用在Android平台上的部署[J]. 程序员, 2009, (05). [21] 公磊,周聪. 基于Android的移动终端应用程序开发与研究[J]. 计算机与现代化, 2008, (08) . [22] 李亮. Android系统开发问题杂谈[J]. 程序员, 2009, (07) . [23] 马越. Android的架构与应用[D]. 中国地质大学(北京), 2008 [24] 罗伟. 基于Android平台的即时通讯系统的研究与实现[D]. 湖南师范大学, 2009 . [25] 舒贤华. 基于Android平台的手机Web地图服务设计[D]. 大连海事大学, 2009 . [26] 王巍. 基于Android平台蓝牙设备音频应用的设计与实现[D]. 北京邮电大学, 2009 . [27] 姚昱旻. 基于Android的移动学习终端平台的开发与研究[D]. 中南大学, 2008 . [28] 公磊. 基于Android的GPS测量系统开发[D]. 南昌大学, 2008 . [29] 孙晓宇. Android手机界面管理系统的设计与实现[D]. 北京邮电大学, 2009 .
分享到:
收藏