android平台的实时天气预报系统的设计与实现(源码)
目 录
第一章 绪论 1
1.1研究背景与意义 1
1.2本文主要研究内容 1
第二章 相关技术介绍 2
2.1安卓四大组件 2
2.2开发环境和工具 3
2.3天气预报API 7
2.3.1Weather API的申请 7
2.3.2Weather API的安装 9
2.4系统屏幕的适配 10
第三章 系统设计与实现 11
3.1系统设计 11
3.1.1实时天气的设计 14
3.1.2天气预测的设计 14
3.2实时天气的实现 14
3.3天气预测的实现 16
3.4运行效果展示 19
第四章 系统程序测试 21
4.1测试目的 21
4.2测试流程 21
4.3测试结果 21
结束语 23
致 谢 .24
参考文献 25
第一章 绪论
1.1研究背景与意义
Android系统是一款基于移动手机终端的智能系统。随着无线网络的迅猛的发展,安卓终端已经成为除苹果外又一大热门的移动系统终端。安卓系统通过Java语言的跨平台性以及开源性,为各大厂商定免费制系统版本。
在操作方式以及用
*景先生毕设|www.jxszl.com +Q: #351916072#
户体验上来讲,安卓系统摒弃传统移动终端的数字按钮键,通过用户与屏幕的触摸式交互,从而完成用户的各种操作,简便快捷。该系统不仅支持各种扩展功能,还拥有强大的运行处理器,图形处理器等。目前安卓设备的总数量已经达到了15亿台。
在系统操作终端上来讲,在Android开发系统是基于Linux系统的,一种开放源码供开发人员免费试用的开源系统。正是基于Android系统的这种开源特性,导致了众多的开发厂商可以在原生系统上进行Android系统的第二次定制开发,以满足厂商的商业化需求。因此,各大厂商可以在自己定制的Android系统上,迅速推出满足系统需求的商业化软件,从而推动系统发展。
无论是节奏迅速的白领一族,还是出门在外,选择通过旅游放松生活的游客。无时无刻都会关注着当天的天气状况。因此一款能够查询全国各地天气预报的社交手机应用软件将会有很大的市场。所以,一款可以详尽实时反馈当地天气状况的app是十分必要的,这样无论是出门上班,或者是出门游玩,都可以直接在app中查看天气状况,而不需要在网页上查询,从而避免了因天气状况而发生的损失。
1.2本文主要研究内容
天气预报系统是基于Android系统的软件设计与开发,是一个Android应用软件,主要功能是让用户随时随地、方便快捷的查询城市天气状况。用户可以根据当前所在地或者需求自主的选择需要查询的城市,从天气预报API接口中下载对应城市的天气数据,通过系统对数据进行转换和处理之后,从而实现了城市天气查询,PM2.5查询,未来数小时天气预测和未来数天内的天气预测。
本文共分四个章节。第一章是绪论,说明主要内容和题目背景;第二章是祥光技术介绍;第三章是功能设计与实现,介绍开发时所要用到技术支持;第四章是程序测试,检验软件的完成进度状况。
相关技术介绍
2.1安卓四大组件
在安卓程序开发中,密切联系的四大组件为:活动(Activity),服务(Service),广播接收器(BroadcastReceiver),内容提供商(ContentProvider)。他们各自分工不同,协同运作系统功能。
Activity通俗的来讲即是指应用程序中用户能够操控的各种活动页面。如同JavaWeb项目中的Jsp页面一般,属于最基本的页面单元。每一个Activity都是由若干个View控件组成。Activity主要用于与用户的沟通交流。运营app界面的页面渲染,用户输入的数据也通过页面传送给后台服务端,彼此之间通过Intent交换通信数据。
Activity的生命周期一般为:当用户启动应用时,系统调用onCreate()方法完成系统初始化,这个时候Activity被创建,然后系统会根据用户操作进行Activity的页面跳转,而此前的Activity则会转入后台运行或者结束生命周期。当用户点击退出按钮时,那么Activity中系统页面会自动退出,流程如图21所示。
图21 运行流程图
服务不能像Activity界面一样给用户来操作,服务运行在应用程序后台,在一般的应用程序中,我们通常使用Activity来启动后台的服务。或者当要进行数据交互处理的时候,会通过Intent来启动相应的服务,Intent会将前端用户输入的参数传值给Service,Service完成相应的数据处理后,再返回给主界面。
服务的生命周期会根据系统的调度进程来进行。当第一次打开服务时候,首先会建立服务onCreate(),然后调用onStart()方法进行开始服务,最后当服务使用结束或者异常退出时,服务的onDestory()方法就会运行。
Broadcast Receiver,可以翻译为广播接收者。顾名思义,广播接收者是用来接收应用或者系统中传递的消息,然后通过广播内容再通知系统启动或者进行相应的服务,数据库的操作等。例如当用户手机的手机电量低于20%的时候,系统就会发送一条电量低的广播通知,服务接收广播之后即会显示电量低等提示,它非常类似于Java项目中的listener亦或是是struts2中的 interceptor。起到全局监听的作用。当某项应用程序或者服务发出广播时,记挂在该类监听下的应用或者服务则会按照优先序列集先后接收到广播,然后“更新”自己。
内容提供者,在特定的应用程序中,运行时需要在程序间传递数据,Content Provider就提供了这一技术支持。无论是系统文件数据,或者程序运行时生成的数据参数,或者是SQLite数据库中存放的的客户内容等。当应用程序或者服务想要调用这些数据的时,一般情况下他们不会与数据直接交互,而是通过广播通知给Content Provider方法。Content Provider接收到应用程序发来的通知后,依据请求服务的目的开启服务方法,数据处理完成之后,会将数据返回给应用程序。内容提供者之间也可以进行数据的联合管理,这样就可以实现不同服务程序之间,进行数据的互发。
原文链接:http://www.jxszl.com/jsj/wljs/49294.html