基于Android的天气预报客户端设计与研究
2019-09-25
(河南省气象服务中心, 郑州 450003)
0 引言
随着移动网络技术的迅速的发展,通过移动智能终端获取天气预报信息已经成为很多用户掌握气象的方式,尤其是对气象信息较为敏感的行业工作者,如农业、电力、水利等。用户使用智能终端的操作系统以Android为主流应用对象,为此设计基于Android的天气预报系统具有很好的应用价值[1]。在天气预报系统的开发中分为客户端和服务端,其中客户端是指面向广大用户移动终端设备应用的APP。因为移动智能终端主要以手机为主,其可视化界面小,这就要求客户端设计具有较强的UI带入感,并能够简化和引导用户快速掌握天气预报客户端的使用方法和流程[2],这对于设计师提出了更高的要求,所以针对天气预报客户端设计的研究就非常有现实意义。
1 Android系统架构及原理
1.1 Android系统架构
Android是基于Linux平台建立的具有源代码开放特征的移动设备应用操作系统,它由Google公司提供的Dalvik操作运行[3],Android系统架构分为四层结构。Android系统主要包含Applications、Applications Framework、Libraries、Linux Kernel层。Applications是安卓系统的应用程序端,基于Android SDK开发,用于四大组件和网络应用;Libraries为函数库,以中间件的嵌入系统中;Applications Framework基于AOSP(Android Open Source Project)环境开发,用于系统的应用开发;Android runtime为运行时,是Android运行环境ART虚拟机;Linux Kernel为内核,采用Linux平台编写的底层环境。Android系统架构如图1所示[4]。
图1 Android系统架构
Android系统架构由上到下分别应用程序层、应用程序框架层、系统运行库层和Linux内核层[5],其中应用程序层包含了移动设备所具有所有功能的应用程序,如电话拨号程序、短信编辑程序、Web浏览程序、卫星定位程序等,这使得Android应用程序的开发更加的灵活、个性化。应用程序框架层以一种简化组件的方式为用户提供应用程序快速开发的方案,用户在程序开发中只需调用组件便可以实现组件功能,提高程序开发的效率。系统运行库层包括系统库和Android运行时,系统库通过Surface Manager、Media Framework支撑起应用程序的框架,可以让框架层与内核层之间进行互动;Android运行时通过核心库进行API应用和Dalvik虚拟机进行实例应用。Linux内核层进行内存、进程、网络协议等方面的管理[6]。
1.2 Android原理
Android应用程序采用Java语言编写,使用Android SDK工具将设计的程序连同数据和资源包一并打包成一个以.apk为后缀名的文件安装在Android操作系统设备上。所安装的Android应用程序在Android系统中都有一个属于程序本身的“安全沙盒”,程序在运行时只能够访问到所需要的设备组件,进而保护系统的安全。
Android系统包含了Activities、Services、Content Provider、Broadcast receivers四大组件。Activities应用组件是一个人机交互的组件,它能够将每一个Activity都赋予一个窗口,用来执行通话、拍照、程序应用等操作,窗口可调整悬浮状态,用户根据需要选择放大某一Activity进行应用,新启动的程序会被赋予一个main Activity,此时原来的Activity被暂停保留在back stack中。Services组件是用来实现程序后台运行的组件,在用户操作某一Activity时,需要在后台运行其他的一些程序,但又无需跟运行程序进行交互,这时便通过Service隐藏在后台为用户提供服务。Content Provider组件为用户提供了程序间的数据共享服务,通过Content Provider组件可以存储并检索数据,向应用程序提供数据接口。Broadcast receivers组件是一个接收事件声明信息的组件,可以将应用程序发起的事件广播通知给用户。
2 天气预报客户端设计
2.1 总体设计
天气预报系统既有日常常用的天气服务项目,也有针对于专业人士提供的气象服务项目。为此在天气预报客户端的功能划分方面,既要兼顾日常天气服务功能也要兼顾专业气象服务功能。
天气预报客户端可以通过气象服务数据库中获取各个城市7天内的天气预报、实况信息、预警信息和生活提示等[7],根据天气预报的信息类型和系统操作的应用内容进行天气预报客户端功能的划分,客户端功能包括常规的天气预报服务功能、天气预警服务功能、专业气象服务功能和辅助服务功能。每一个功能模块下都按照用户需要获取天气预报的应用而划分出子功能模块,便于用户能够快速将服务端的气象数据转化为简单易懂的天气预报信息。天气预报客户端总体功能结构如图2所示。
图2 天气预报客户端总体功能结构
2.2 功能模块设计
2.2.1 天气预报功能设计
天气预报功能下设3个子功能,城市天气实况、一周天气预报及旅游景点预报。城市天气实况通过用户移动客户端所在位置定位直接定位到移动客户端所在城市的天气实况信息,若移动端未开启卫星定位功能则通过用户注册时注册的手机号码归属地确定移动客户端所在位置。显示的信息包括当天的气温、湿度、风向风速、最高温度、最低温度等信息,信息内容从气象服务数据库直接获取。用户也可以指定城市查看该城市当天的天气情况。一周天气预报功能为用户提供了一周内每一天的天气预报信息,包括最高温、最低温及天气现象等。旅游景点预报为用户提供全国各个城市的旅游景点天气预报信息,用户可根据城市的景点查看天气信息。
2.2.2 天气预警功能设计
天气预警功能下设天气预警信息、预警查询及防灾提醒功能。天气预警信息显示极端天气情况,用户可以自定义预警接收时段和预警提示音,天气预警查询功能为用户供了全国各地区极端天气情况的查询服务。防灾提醒功能针对极端天气的情况为用户提供防灾相关知识。
天气预警功能是针对用户进行差异化服务的功能,不同类型的用户对天气预警的侧重方向不同,为此在系统后端会划分出例如农业用户、电力用户、水利用户等不同用户的类型,当用户注册系统应用时会根据用户的选择自动归档用户所需的预警服务范围,定向的为用户提供可靠的、实用的极端天气信息,帮助用户解决实际问题。
2.2.3 专业气象功能设计
专业气象功能是为气象管理专业人员提供的应用功能,专业气象功能下设卫星云图、雷达图、雨量图,可以为专业人士提供气象动态服务。其中卫星云图是通过气象卫星获得的地球云层覆盖和地表特征的气象图,通过卫星云图专业人员可以分析气象活动中的变化位置、强度发展趋势等。本文所设计的气象系统其专业气象功能会通过气象卫星数据库自动获取6张卫星云图,让用户了解卫星云图的变化情况。雷达图是通过气象雷达发射器发射的天气探测信息所获得的回波图像,雷达回波图可以通过颜色回波的颜色变化判断降雨范围、降雨量和降雨发展趋势。雷达图的设计是采用自动下载各用于所在城市的天气雷达图为用户提供雷达图的变化情况。雨量图为用户提供1、3、6、12、24、48和72小时的雨量图,让用户了解城市雨量的变化情况。
2.2.4 辅助服务功能设计
辅助服务功能为用户出行、穿衣提供服务信息和信息反馈通道,为此设计服务辅助功能包含交通气象服务功能、穿衣指数功能、信息反馈功能。其中交通气象服务功能为用户提供各个高速公路的气象情况;穿衣指数为用户提供城市温度变化对应的穿衣厚度,穿衣指数由薄到厚分为8个等级,指导用户外出穿衣;信息反馈功能为用户与服务商进行信息沟通开辟通道,用户可以将系统使用反馈提交给运营商。
2.3 通信接口设计
基于Android的天气预报客户端通信接口分为数据源接口和用户访问接口两个部分[8]。数据源接口是客户端获取天气信息的接口,它通过连接气象服务数据库获得气象数据显示在客户端。用户访问接口是用户访问客户端时通过用户注册自动生成用户关联关系的通信接口。例如:客户端向气象服务数据库获取天气数据,基于Android的天气预报客户端以XML消息格式向气象服务数据库发送请求包获取请求信息:
//实时天气信息(0为实时天气信息,1为一周内天气信息)
得到的应答显示在客户端信息表现为:
若需要获得一周内的天气信息则
3 实验结果与分析3.1 实验结果
天气预报客户端设计完成需要对功能的衔接关系,布局的规范性和界面可视化效果进行实验,检查客户端每一项功能的完整性、流畅性和规范性。
用户使用天气预报客户端时需要先下载并安装客户端APP,首次使用用户需要填写手机号码进行验证,注册成功后用户进入系统会显示用户所在城市的天气实时信息,在操作界面的下方显示系统的应用功能。选择不同的应用功能会对应显示功能对应的内容。客户端主要功能界面如图3所示。
图3 客户端主要功能界面
3.1.1 天气预报功能实验
用户选择天气预报功能可以选择城市天气实况、一周天气预报和旅游景点预报3个子分类,进入城市天气实况功能显示客户所在城市当天的天气信息,用户可以根据需求选择城市,跳转到各个城市天气实况信息;客户点击一周天气预报显示客户所在城市一周内的信息,用户可以通过滑动界面选择显示日期;用户点击旅游景点预报会让用户选择旅游景区,选择景区后对应显示景区所在地区的天气实况信息。
3.1.2 天气预警功能实验
客户选择天气预警功能显示当前天气预警信息,若无预警则预警信息内容为空;用户如果查询天气预警信息可选择天气预警查询功能,通过选择城市、选择时间来查看预警信息;若客户端显示天气预警信息,则在防灾提醒功能中对极端天气提出防范措施。
3.1.3 专业气象功能实验
用户点击进入专业气象功能可以选择卫星云图、雷达图和雨量图来对应查看当前天气的情况,信息以图表的形式呈现给用户可以帮助用户分析天气情况的变化。
3.1.4 辅助服务功能实验
用户点击进入辅助服务功能可以查看各个高速公路的交通气象信息,还可以查看当前城市穿衣情况,便于为用户出行提供参考。用户可以通过信息反馈功能将建议发送给运营商,以便于运营商能够更好的为用户服务。
3.2 应用分析
天气预报客户端的应用与后台服务系统功能一一对应,分别对天气预报系统的功能进行应用,分析系统的实用性。
3.2.1 天气预报功能应用分析
操作天气预报系统的天气预报功能,调用所在城市天气实况,此时显示城市当前的天气情况。选择上一周的天气预报功能分别显示上周星期一至星期日每天的天气情况。选择旅游景点预报,列出省、市所包含的所有景点,分别选择一个省市的区域,选择该省市景点,此时显示该景点的天气情况。通过应用可以看出,天气预报客户端能够按照既定的要求调取服务器的天气信息显示在客户端。
3.2.2 天气预警功能应用分析
操作天气预报系统的天气预警功能,发现当前没有预警信息,查看以往天气的预警信息,按照时间距当前时间的近远列出了所有预警信息。选择省市进行城市天气预警信息定位,显示所选择的城市天气预警信息,选择天气预警信息所对应的防灾提醒功能,显示了防灾提示。通过该功能的应用可以看出,天气预警功能可以及时的提供用户极端天气,并指导用户做出应对措施。
3.2.3 专业气象功能应用分析
操作天气预报系统的专业气象功能,分别查看卫星云图、雷达图和雨量图,调用服务器端图像数据显示出了专业的图像。通过专业气象功能可以查看到专业的气象信息,可以通过该图像分析出天气的发展趋势,为未来的天气分析做出预测。
3.2.4 辅助服务功能应用分析
操作天气预报系统的辅助服务功能,点击交通气象服务功能显示当前城市各条高速公路的天气情况信息,选择不同省市对应显示连接的高速公路天气情况。点击穿衣指数显示当前城市适合穿戴的衣物,选择不同省市对应显示该城市适合穿戴的衣物。点击信息反馈功能弹出留言框,输入留言后点击发送提示信息发送成功。
4 结论
1) 基于Android的天气预报系统是一个非常实用的日常生活工具,在天气预报客户端的设计方面充分考虑应用设备的适用性和用户使用的流畅性进行规划,保证客户端的应用可以满足用户的使用习惯。
2) 在客户端功能上充分考虑用户的需求划分出功能模块,包括天气预报、天气预警、专业气象和辅助服务功能,让客户可以快速准确的获得所需的天气信息。
3) 天气预报客户端的通信既包括与气象服务数据库进行通信获取气象服务信息,也包括与用户进行信息交互的信息,为此通信接口的设计可以保证信息通信的完整性和交互的准确性。
4) 通过系统的应用分析,本文所设计的天气预报客户端基本可以满足大多数用户对天气预报服务的需求,在功能的使用方面具有较好的流畅性。