1 引言
随着生活水平的提高,人们越来越关注影响身体健康的天气状况,如何实时地掌握居住地或出行地的天气预报和天气状况呢?据工信部近日公布的2014年7月份通信业经济运行数据显示,我国移动互联网总数已达到8.72亿户。在2013年中国移动互联网统计报告中数据显示,中国移动互联网网民中乡镇人口占比为14%,城市人口占比84%。因此移动互联网网民,尤其城镇居民可以通过移动互联设备轻松地掌握居住地或出行地的天气情况。
据统计,2014年2月至4月中国移动网民智能手机系统分布中,安卓系统占比78.5%,iOS占14.1%,Windows占6.9%,BlackBerry占0.2%,其他为0.3%。由此统计数据可以看出安卓系统的天气预报系统的应用市场很广泛。系统不仅能提供城市的天气情况,还能快捷地知道如今人们都非常关注的空气污染程度。空气污染指标为参考美国环保署及其他机构所研议决定的指标,以0至500的数值来表示空气污染程度。这个指标值和健康的影响关系分为以下五个等级。0~50健康影响:优;51~100(Good)良;101~199(Moderate):轻微、轻度污染,不良;200~299(Unhealthy):中度污染,极不良;300~350(Very Unhealthy):中度污染,有害350~500(Hazardous):重污染,危险。
2 Web Service技术
Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。Web Service是自描述、自包含的可用网络模块,可以执行具体的业务功能,为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。目前这些协议有:XML和XSD。Web Service平台是用XSD来作为数据类型系统的。为了符合Web Service标准,所使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用SOAP(Simple Object Access Protocol)协议,即简单对象访问协议,用于交换XML编码信息的轻量级协议。Web Service希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
“天气达人”系统采用Web Service技术访问国家气象网站,获取天气预报信息。
3 系统的设计与开发
3.1 功能性需求
天气状态已经不仅仅是当前用户关注的问题了,由于环境的恶化,出行的人们更多的关注的是现在的空气质量,PM2.5,PM10等指数,系统提供了对于当前主要空气质量参数的查询,气温参数的查询,并提供实时的数据更新。
3.2 系统框架设计
“天气达人”系统功能结构图如图1所示。系统由多个功能模块组成,主要包含以下几个方面:(1)空气质量数据获取模块;(2)天气数据获取模块;(3)微博分享模块;(4)语音输出模块;(5)主题切换模块;(6)滑屏模块。
3.3 系统的模块实现
以上六个模块的实现主要使用了如下几种Android组件:1)网络数据的异步请求(AsyncTask)。2)异步更新主界面数据(Handler)。3)界面水平划动(ViewGroup)。4)定时更新(ScheduledExecutorService)。5)微博分享,使用腾讯提供的接口。6)语音输出(TTS)。7)动画加载(Animation)。8)地理位置分享(GPS+WIFI)。“天气达人”系统开发语言采用Java,开发环境 Android + eclipse。
由于Android的界面是显示在主线程中的,因此为了防止阻塞主线程,界面的重绘更新使用的是Handler消息处理的方式。在天气数据,和空气质量数据请求成功返回之后均会发送一个各自独有的消息,当两个不同的消息在主线程内捕获后,均会将各自携带的数据传递到主线程内的局部变量中,这样只有当两个消息所携带的数据均被获得后,主界面才会被刷新。系统主线程和外部线程之间的顺序图,如图2所示。
系统的界面流程:包括初始的界面加载、微博分享、详细界面、城市列表、城市切换、界面刷新加主题切换、语音朗读。如图3所示。详细界面包含天气、温度、风力、舒适度等数据,并且包括空气质量、PM2.5、PM10以及详细等级的显示。右下角提供了语音功能,点击可朗读建议数据,使用户体验更加的人性化。Android提供了访问Google Map的接口,可以通过Android平台开发与地图相关的应用。由于天气和空气质量需要获得本地的位置,因此还添加了对当前用户所在地理位置的查询,通过使用Google提供的Location Manager和Google Map可以准确定位当前用户所在位置。
4 Web Service技术在系统中的应用
Web Service是建立在HTTP、SOAP、WSDL等通用协议的基础上的。其中,WSDL(Web Services Description Language)是一种用来描述Web服务的XML语言,它描述了Web服务的功能、接口、参数、返回值等,便于用户绑定和调用服务,与具体语言无关的方式定义了给定Web服务调用和应答的相关操作和消息。本系统中使用的WSDL是:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL。这是中国天气网提供的Webservice。获得城市天气预报Web Services支持的国内省份和城市信息的主要代码:
5 结束语
天气状态已经不仅仅是当前用户关注的问题了,由于环境的恶化,出行的人们更多的关注的是现在的空气质量,PM2.5,PM10等指数,“天气达人”安卓系统提供了对于当前主要空气质量参数的查询,气温参数的查询,并提供实时的数据更新。此系统的功能实现是基于Web Service技术的,主要使用了HTTP、SOAP、WSDL等通用协议。
章芳.我国移动互联网用户总数达8.72亿户.http://www.cctime.com/html/2014-8-22/201482859338614.htm.
易观智库.2013年中国移动互联网统计报告.http://www.eguan.cn/download/zt.php?tid=1979&rid=1988.
2014年2月至4月全球智能手机系统市场统计..http://mobile.cnw.com.cn/news/other/htm2014/20140603_301614.shtml.
王整风,闫洪亮.Web Service相关概念实例解析.科技广场. 2006,5:39~41.
郭昊辰.基于Android平台的掌上运维系统的设计与实现.北京邮电大学.2013,3:7~10.
申建忠.Android下Google Map地图类应用程序的开发.黑龙江科技信息.2013,8:159~160.