龙源期刊网 http://www.qikan.com.cn
浅析基于Android的天气预报系统设计与实现
作者:吴亚林
来源:《山东工业技术》2015年第24期
摘 要:时代在变,人们生活的质量也发生了改变,方便快捷的生活的方式让人们享受生活的乐趣,对于出行的人来说拥有一个完美的外出计划之外,一个好的天的情况也是不可少的因素。手机天气预报能够方便了解到当天的天气状况,对出行的人们来说相当的方便,而大多数用户在使用安卓手机,因此,设计一款基于安卓的手机天气预报系统来迎合大多数人的需求。本设计采用了Android开源系统技术,它可以通过图片和文字显示当天和未来几天的天气情况。能够实现从Baidu上获得天气预报信息,并将天气信息保存在后台服务中。系统还提供短信的天气数据服务,用户发送关键字可获取天气状况的短信回复,并且可以查看或者删除这些信息。
关键词:Android;手机天气预报;SMS DOI:10.16640/j.cnki.37-1222/t.2015.24.112 1 基于Android的天气预报系统开发的背景
以前的电视媒体播放的天气给许多不经常注意或者没时间在意天气状况人们带来不便,这时候一个手机天气预报可以很方便的查询和了解只要很短的时间就能了解未来几天天气情况,于是各种手机天气预报也随之的就发展起来,如今的安卓已占据手机市场的主导地位,这个天气预报系统,能够通过图文来显示当天和未来几天的天气状况,显示的内容有温度、PM2.5和风速等情况。这些天气数据是通过访问百度提供的天气预报接口获取的,可以按照用户设置的时间间隔,周期性的从Baidu上获取天气预报信息,并把天气状况的信息保存在后台服务里面。这个项目还提供短信服务功能,其他用户可以向安装本应用的手机上发送关键字,然后可以把保存在后台数据库的天气情况通过短信的方式自动发送给用户。每一个发送出去的短信都会被保存下来,在系统数据的界面中,用户能查看或者删除这些回复的内容。 2 系统的需求分析 2.1 系统功能需求分析
这个软件需要展示即时的天气预报信息。主要展示的功能有: (1)可以对城市进行选择以及对频率更新进行设置。
龙源期刊网 http://www.qikan.com.cn
(2)从百度获取图片和信息显示当天的天气和未来的天气信息,包括温度、PM2.5、风向情况等。
(3)所有的天气预报信息数据都是是通过service去向服务器获取的,service可以设置固定的时间段,通过百度提供的天气预报获取天气预报信息,从而将天气信息保存在本地数据库中。
2.2 系统界面需求
这个程序用户界面设计,采用TabHost控件。TabHost控件的每一个标签页与Activity相关联,Activity又能对应多个功能布局,这样就可以将不同标签页的代码放在不同的文件中,方便用户的操作使用。
WeatherForecast类共设置3个标签页,是继承了TabActivity的Tab标签页。 三个标签页分别为:“天气预报”、“历史数据”、“系统设置”。他们相关联的代码是:WheatherActivity、HistoryActivity和SetUpActivity。
WeatherForecast.java里面的代码搭建了用户界面的框架,设置了标签页的图片、文字和他们所对应的Activity,在对应的Activity里面设置他们的功能和界面。 3 基于Android的天气预报的设计与实现 3.1 天气预报功能模块的实现
天气预报:天气预报的主页面在启动时不会显示出当前的天气信息,想要获取当前的天气信息,这需要让用户自己到设置选项里边查找到“启动服务”的按钮,通过点击该按钮才能把获取天气信息的service启动。选项菜单里还有“停止服务”和“退出”选项 。“天气预报”这个选项卡里面相关联的布局名称是tab_weather.xml,这是个较为繁琐的界面布局,多次嵌套了线性布局,交叉使用了横向和纵向的属性。 3.2 历史数据功能模块的实现
历史数据:历史数据页面主要显示SQLite数据库中的短信服务信息,显示的信息包括发送的时间、发送人的手机号码和数据库回复短信内容 。显示列表数据一般用传统的listview来展示数据,通过把获取到的信息加到一个定义好的list里,再通过adapter加载list,用它来把数据匹配到对应的组件上。这样做的好处是实现更复杂的界面,例如在列表添加提示信息“SQLite数据库的短信服务信息”,而不是去写baseadapter适配。关于历史数据选项卡里面关键代码1.setContentView(R.layout.tab_history)设置布局2. setListAdapter(dataAdapter)加载适配。
龙源期刊网 http://www.qikan.com.cn
3.3 系统设置功能模块的实现
系统设置:系统设置页面主要用于保存和恢复用户的设置,第一次启动或恢复默认设置(在选项菜单中)后,界面中的编辑框会显示系统的默认设置,有城市的名字,更新频率,是否提供短消息服务,是否记录了短消息业务的数据信息和短消息服务等编辑。
SetupActivity.java文件中,主要代码在RestoreDefaultSetup()、UpdateUI()和SaveConfig()这三个函数中。RestoreDefaultSetup()用来加载系统的缺省配置;系统设置的UI界面是获取是Config类里面数据来更新的,SaveConfig()根据界面设置的数据更改Config类,然后再去调用数据库的DBAdapter.SaveConfig()函数,将Config类中的数据更新到数据库。 4 后台服务
后台服务是本项目的关键模块,一开始进入系统时并没有执行,当用户启动后,它便一直运行在后台,只有等到用户在去操作“停止服务”按钮时,才能执行停止服务。后台服务主要用来执行向百度天气API获取天气预报信息、读取天气信息的SMS短信,短信发送等操作。 5 总结
开发Android天气预报,一定要抓住重要内容。天气预报主要由天气预报、历史数据、系统设置三个界面组成,能正常获取各个城市的天气情况的信息,其他功能是在这个功能的基础上补充添加的,但是基本的功能是必不可少的。 参考文献:
[1]李刚.疯狂Android讲义[M].电子工业出版社,2011(06). [2]张孝祥.java就业培训教程[S].清华大学出版社,2003(09). [3] 知乎周刊http://zhuanlan.zhihu.com/Weekly[OL].
[4]柯元旦.Android内核剖析[M].电子工业出版社,2011(09).