基于Android系统开发天气预报APP的实现
2016-11-29严卫鹏湖南工业大学计算与通信学院网络工程湖南株洲412000
严卫鹏(湖南工业大学 计算与通信学院 网络工程,湖南 株洲 412000)
基于Android系统开发天气预报APP的实现
严卫鹏
(湖南工业大学 计算与通信学院 网络工程,湖南 株洲412000)
摘要:随着智能手机的迅速普及,人们在生活中获取信息的一个主要来源就是智能手机应用。本项目主要是对天气查询管理的设计与实现,此项目采用了Android 开源系统技术,它主要是通过文字与图片的形式,来比较直观地显示出城市当天和未来几天的天气信息,在数据交换上使用了JSON格式,降低了流量使用量并且提升了速度,方便人们的生活,有一定的实用性。
关键词:Android;天气预报;软件开发;APP
一、引言
目前,利用手机app 获取天气预报信息正在成为主流的天气信息获取方式。所以越来越多的开发人员致力于开发简单、美观且实用的手机天气预报app[1]。
JSON是一种轻量级的数据交换格式。JSON 数据格式比较简单,易于读写,占用带宽小,服务器端和客户端的解析较为方便,大大简化了服务器端和客户端的代码开发量, 使得系统易于维护[2-4]。
该应用程序设计目的是实现基于Android系统开发天气预报APP,实现将各种天气查询服务功能集成起来的信息系统,既可以节省时间,又可以实现个性化的服务,帮助用户可以随时随地查询天气信息及天气变化情况,让生活更加舒适和方便。
二、天气预报系统主要功能模块介绍
1.启动程序后可以通过自动定位或手动定位城市,或者根据上一次选择的城市来进行城市天气信息的查询;2.天气信息通过Service从聚合数据网进行获取相关的JSON数据得到,还可以按一定的时间间隔来自动刷新获取最新的天气信息;3.切换城市可以进入城市选择界面快捷选择相关的城市或者搜索城市;4.应用可以后台按一定时间间隔来自动刷新天气信息;5.使用AppWidget实现在手机桌面上显示指定城市的当前天气信息;6.使用Notification实现天气预警通知;7.可以对城市进行本地管理,可以手动添加常用的城市名称,或者删除它;8.可以将当前城市的天气信息以界面图片的形式进行分享。
三、天气预报系统主要功能模块的设计与实现
基于Android系统的天气预报系统的主要是从网络获取JSON数据并通过JSON解析信息文本获取城市名称,以及城市的天气信息并显示在界面上,并对关注的城市进行管理。
(一)用户界面UI的实现。用户界面上的设计主要分为两大块:
首先是主界面,主界面用来显示城市名以及该城市的天气信息,分为当前城市名及天气信息区域,还有定位当前城市模块、分享当前界面模块以及使用Android 5.0之后自带的SwipeRefreshLayout(下拉刷新)模块和DrawerLayout侧滑模块。
然后是城市列表界面,城市列表界面主要分为热门城市模块、城市列表模块、以及输入名字查询城市模块。
(二)定位当前位置所在的城市。根据我们这个应用程序的需求在这里我们选择network进行定位,因为我们只需要定位当前所在的城市即可。network定位快,只要数据连接成功,一般都可以成功定位,所以此刻使用network进行定位是最好的选择。
(三)在UI上显示当前城市的天气信息。当我们获取到城市名称后,就可以直接利用聚合数据SDK提供的API方法通过service进行网络访问来获取JSON格式的天气信息数据,对获取的数据进行JSON解析并在主界面显示相关的天气信息。
(四)在获取城市列表数据及解析。有热门城市模块和城市列表模块。热门城市是xml文件中已经写好的。但城市列表模块是通过网络请求得到支持查询的城市列表JSON数据并对其进行JSON解析,将所有城市名称返回到List中,最后对GridView添加适配器显示城市列表。也可以手动输入城市名称或者城市名称所包含的字符进行城市搜索。
(五)天气界面的分享。在主界面可以以图片的形式将当前城市的天气信息进行分享。这里使用的是一个第三方集成的ShareSDK,使用它极大的增加了我们开发的效率。注意,使用ShareSDK需要在官网上申请一个开发者使用的APPKey,并且要按照官网给的使用文档进行一些相关的配置才可以正确使用。
(六)桌面小工具AppWidget。AppWidget是一个可以在手机桌面上显示的小工具界面。实现使用AppWidget在手机桌面上显示相关的天气信息的步骤如下:
1.配置AppWidget的属性。
2.创建AppWidget的xml布局文件。
3.实现AppWidgetProvider。
4.处理AppWidget的后台任务。在AndroidManifest文件中注册AppWidget与相关的服务。
(七)天气的预警通知。实现发送天气通知的步骤是这样的,首先要使用getSystemService()这个方法可以获取系统的NotificationManager服务;其次创建一个Notification对象,设置其相关的属性,并为它设置事件信息;最后再通过NotificationManager类的norify()方法来发送相应的通知即可完成。
四、总结
Android由于其开放性与市场占有率,受到开发者的十分喜欢。本系统综合现在有的天气预报APP的优缺点,将一些资源文件内置于应用之中,并且在数据交换上采用JSON格式进行数据的交换,减少了流量的使用,提高了响应速度。在分享功能上使用当前很受欢迎的ShareSDK极大地减少了代码量,优化了应用程序的处理速度。
本文提供的基于Android系统开发天气预报APP方案具有高效,实用性,并已在多台真机上进行调试和运行,为读者在 Android平台下作应用程序开发提供一种参考。
参考文献:
[1]熊传玉,徐尤华. Android系统下基于JSON的天气预报应用的实现[J].微型电脑应用,2016,01.
[2]雷映喜.XML与JSON在WEB中对数据封装解析的对 比[J].价值工程,2013,9:210.
[3]龚成莹.基于 JSON 的 Android 移动终端与 PHP 及 MySQL 数据通信[J].工业仪表与自动化装置,2013,1: 63.
[4]权重民.利用 JSON 实现 Android 高效、安全访问远程 数据库的一种方式[J].韶关学院学报.2011,12:16.同.
中图分类号:G31
文献标识码:A
文章编号:1671-864X(2016)06-0292-01
作者简介:严卫鹏,男(1994-09)。民族:汉族。籍贯:湖南娄底。学历:本科。研究方向:软件开发。