基于Android的天气预报查询系统的实现毕业设计.docx

上传人:b****7 文档编号:16125084 上传时间:2023-07-10 格式:DOCX 页数:41 大小:2.79MB
下载 相关 举报
基于Android的天气预报查询系统的实现毕业设计.docx_第1页
第1页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第2页
第2页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第3页
第3页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第4页
第4页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第5页
第5页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第6页
第6页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第7页
第7页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第8页
第8页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第9页
第9页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第10页
第10页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第11页
第11页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第12页
第12页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第13页
第13页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第14页
第14页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第15页
第15页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第16页
第16页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第17页
第17页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第18页
第18页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第19页
第19页 / 共41页
基于Android的天气预报查询系统的实现毕业设计.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android的天气预报查询系统的实现毕业设计.docx

《基于Android的天气预报查询系统的实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android的天气预报查询系统的实现毕业设计.docx(41页珍藏版)》请在冰点文库上搜索。

基于Android的天气预报查询系统的实现毕业设计.docx

基于Android的天气预报查询系统的实现毕业设计

基于Android的天气预报查询系统的实现

摘要:

随着智能手机一步步走进人们的生活,它将成为人们获取信息的主要设备,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。

因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。

Android作为当前最流行的操作平台,自然也存在着大量的应用服务需求。

Android是基于Linux平台完全开源的手机操作系统,同时开发语言为Java,因此我选择了以Android为平台的手机天气预报系统来作为我的毕业设计,目的是帮助用户随时随地查询天气信息及天气变化情况,让生活更加舒适方便。

本文详细讲述了Android平台下天气软件的界面设计及界面的实现、控件的使用、界面的布局等内容,结合中国气象网的天气数据,将准确的天气情况以友好的方式呈现给用户,使用户可以更加赏心悦目地体验本软件的服务。

关键词:

Android天气软件手机天气预报软件系统

 

SystemimplementationofweatherquerybasedonAndroid

Abstract

Withthedevelopmentofintelligentmobilephonestepbystepintopeople'slives,itwillbecomethemaindevicetoobtaininformation,relatedtomorewidely,andplaysamoreandmoreimportantroleinpeople'sdailylife.Therefore,thedevelopmentofcriticalapplicationshasbecomeanimportantfactoraffectingthepopularizationofmobileintelligentterminal,applicationdesignanddevelopmentofpractical,convenienthasimportantsignificanceandgoodmarketprospects.Androidasthemostpopularoperatingplatform,naturalalsoexistinapplicationserviceneedsofalargenumberof.

AndroidisamobilephoneoperatingsystemLinuxplatformbasedonopensource,atthesametime,thedevelopmentoflanguageJava,soIchosetheplatformofmobilephoneweathersystemwithAndroidasmygraduationdesign,thepurposeistohelptheuserwheneverandwhereverpossiblequeryweatherinformationandweathercondition,makelifemorecomfortableandconvenient.Thispaperdescribesthelayoutofcontent,interfacedesignandinterfacecontrolweathersoftwareundertheAndroidplatformuse,interface,combinedwiththeweatherdataofChinaMeteorologicalNetwork,willbeaccurateweatherconditionsinafriendlywayispresentedtotheuser,theusercanbemorepleasantexperienceofthesoftwareservice.

Keyword:

Androidweathersoftwarethesoftwaresystemofmobilephoneweather

第一章绪论……………………………………………………………………………………...….1

1.1研究内容………………………………………………………………………..................…1

1.2课题背景和意义………………………………………………………………………….......1

1.3发展现状及趋势…………………………………………………………………………........1

第二章系统分析……………………………………………………………………………….…....2

2.1需求分析………………………………………………………………………………………2

2.2Android系统的特点…………………………………………………………………………...2

2.3系统规划……………………………………………………………………………………….3

2.4系统构架图…………………………………………………………………………………….4

第三章Android开发环境及相关技术………………………………………………………..….....4

3.1Android开发环境介绍…………………………………………………………...…………….4

3.2Android开发平台搭建…………………………………………………………………………5

3.3相关技术介绍…………………………………………………………………………………..5

第四章程序设计…………………………………………………………………………….............10

4.1界面设计………………………………………………………………………………………10

4.2项目框架………………………………………………………………………………………13

4.3主要功能实现………………………………………………………………………….……...14

4.31获取城市码db_weather.db数据库文件………………………………………………...14

4.32实现可伸缩性列表的构建与过滤………………………………………….....................18

4.33GPS定位功能的实现…………………………………………..........................................21

4.34Widget窗体小部件的更新…………………………………………..................................25

第五章功能测试………………………………………………………………………….................27

第六章结论…………………………………………………………………………………………31

致谢…………………………………………………………………………………………………..31

参考文献………………………………………………………………………………………..........32

第一章绪论

1.1研究内容

Android平台手机气象软件是基于Android手机平台,运用Java语言,从Google上获取天气预报信息,开发出针对使用Android平台的手机天气预报系统。

本文详细介绍了加载界面、实时天气界面、未来天气界面和搜索界面进行界面设计及实现,目的是使用户能够更加赏心悦目地体验此软件带来的服务。

通过对界面的布局及控件的应用等相关内容的学习,使我们对Android平台下界面开发工作有一个初步的了解,并且经过这次开发过程,能够基本掌握这些内容。

软件开发后能够帮助用户随时随地搜索由中国气象局提供的全国2564个县级以上城市的天气信息,并且把数据显示在一个界面美观、布局合理窗口内,使用户能够舒适的享受软件带来的服务。

1.2课题背景和意义

近几年来随着智能手机的不断普及,应用的需求与日俱增,应用的开发成为当下最热门的技术之一。

Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。

为顺应潮流,本设计旨在搭载Android的移动设备上运行,实现天气状况的实时更新与显示,方便人们的出行与生活。

Android平台手机气象软件的开发可以进一步扩大气象信息的覆盖面,让广大公众能够在第一时间方便且快捷地获取最新的气象预报(预警)信息,以便提前预防,把气象灾害造成的损失降到最低。

同时也可以强化气象公共服务的职能,完善公共服务体系、改善公共服务手段、增加公共服务产品、提高公共服务质量,更好地发挥了气象事业对经济社会发展的现实性作用。

1.3发展现状及趋势

Android系统自推出以来,就以明显的优势逐渐扩大自大的市场份额。

据美国某市场调研机构2012年发布的一份最新报告显示。

2012年一季度在美国,基于Android系统的智能手机的销售量已占据全美手机销售量的28%份额,而大名顶顶的IPhone手机其市场份额紧追其后,占到21%的市场份额,已经确定了Android系统的市场占有比。

据业内人士分析,随着Android系统相应软件的不断开发应用,选择Android系统手机或者无线终端设备的人会越来越多,其市场霸主的地位在更新更好的系统出现之前是不可动摇地。

  Google官方数据显示,Android电子市场(AndroidMarket)上的应用程序数量已经突破45万个,一年内增加30万个。

相信在不久的将来会有更多的用户选择Android系统的手机。

Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。

第二章系统分析

2.1需求分析

本软件是一个AppWidget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务可以按照一定时间间隔,从Google上获取天气预报信息,并将天气信息保存在数据库中。

从上面的描述中可以基本了解软件的功能需求:

(1)启动AppWidget应用程序;

(2)设置界面:

对要显示天气预报的城市及更新频率进行设置;

(3)显示界面:

通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。

(4)详细界面:

通过文字图片动画显示当前的天气情况,包括城市当前天气、温度、风向、风速;同时显示今后三天的天气情况。

2.2Android系统的特点

1、开放性。

Google与开放性手机联盟合作开发了android,Google通过与动行商,通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。

2、应用程序无界限。

Android上的应用可以通过标准API访问核心移动设备功能。

通过互联网,应用程序可以声明它们的功能可提供其它应用程序使用。

3、应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号或主屏幕这样的核心组件。

4、应用程序可以轻松地嵌入网络。

应用程序可以轻松地嵌入HTML,javascript和样式表,还可以通过Webview显示内容。

5、应用程序可以并行运行。

Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知引起注意。

2.3系统规划

由上述的需求,现将系统分为三大模块:

天气显示界面模块、预报城市设置模块与Widget桌面小部件模块。

各系统模块功能如下:

1).天气显示界面模块

显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。

2).预报城市设置模块

由自动设置预报城市与手动设置二部分组成,自动设置实现GPS定位功能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。

当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况;第一次运行时自动跳到该界面。

3).Widget桌面小部件模块

为了方便用户实时了解天气状况,特别添加在Android系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。

 

2.4系统构架图

图2-4系统构架图

第三章Android开发环境及相关技术

3.1Android开发环境介绍

Android平台使用Java编程语言来开发应用程序,而Android提供了对Java的核心支持。

考虑到Java虚拟机的执行效率和占用资源情况,Google重新设计了Java的编译器,命名为Dalvik。

Dalvik是经过优化的Java编译器,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行,独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

项目的开发在Eclipse环境中进行,由于进行的是Android应用程序的开发,需要在Eclipse安装ADT插件,即Android开发工具,这样Eclipse就可以和AndroidSDK建立连接,在Eclipse中启动Android模拟器、调试程序等工作。

简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。

JavaSDK

Eclipse

AndroidSDK

ADT

3.2Android开发平台搭建

Android开发平台搭建步骤:

①首先到http:

//www.eclipse.org/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。

接着再去站点下载后安装下载SDK1.5后解压。

第一步下载工序就结束了。

②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入http:

//dl-with”下拉菜单中选择刚才输入的网址。

过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。

③重启后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。

④在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。

3.3相关技术介绍

3.3.1Activity

在Android应用程序中,一个活动Activity通常就是一个单独的界面。

每一个界面都被实现为一个独立的类,并且从Activity基类中继承而来,Activity将会显示由空间组成的用户接口,并对事件做出响应。

大多数的应用都是由多个Activity显示组成,例如,第一个界面用来显示加载界面,第二界面用来显示实时天气界面,第三个界面用来显示未来一周的天气界面。

这里的每一个界面就是一个Activity,很容易是从一个界面到一个新的界面,并且完成新的Activity。

当一个新的界面打开后,前一个界面将会暂停,并保留在历史栈中。

用户可以返回到历史栈中的前一个界面,当界面不再使用时,从历史栈中删除。

简单理解,Activity代表一个用户所能看到的界面,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触摸屏事件等),为用户显示指定的View,启动其他Activity等。

所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法实现各种功能,这种设计在其他领域也较为常见。

3.3.2Intent

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其他的应用程序间传递Intent来执行动作和产生时间。

使用Intent可以激活Android应用的三个核心组件:

活动、服务和广播接收器。

Intent可以划分为显示意图和隐式意图。

显示意图调用Intent。

SetClass方法明确制定了组件名的Intent为显示意图,显示意图明确制定了Intent应该传递给那个组件,在同一个应用内部使用的。

隐式意图没有明确指定组件名的Intent为隐式意图。

Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。

Intent负责对应用中一次操作的动作、动作涉及数据和附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。

因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的结构。

3.3.3Service

如果把Activity比喻为前台程序,那么Service就是后台程序,Service的整个生命周期都只会在后台执行。

Service跟Activity一样也由Intent调用。

由于Service在后台运行,所以没有界面,用来处理耗时比较长,而且Service不是一个单独的进程,也不是一个单独的线程。

Service有两种类型:

本地服务(LocalService):

用于应用程序内部;

远程服务(RemoteSercie):

用于android系统内部的应用程序之间;

前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。

后者可被其他应用程序复用,例如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。

Service的生命周期,Service有startService和bindService两种启动Service方法,每种方法Service的生命周期是不一样的。

通过startService()——Service会经历onCreate-->onStartCommand(),stopService的时候直接onDestroy,如果是调用者直接退出而没有调用stopService的话,Service会一直在后台运行,下次调用者再起来仍然可以stopService;

通过bindService()——Service只会运行onCreate()-->onBind()这个时候调用者和Service绑定在一起unbindService的时候onUnbind()-->onDestroyed(),调用者退出了,Srevice就会调用onUnbind()-->onDestroyed()。

在这里需要注意的是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。

如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。

如果你先bind上了,就stop不掉了,只能先UnbindService,再StopService,所以是先start还是先bind行为是有区别的。

3.3.4Layout布局

布局方式有很多种,比如线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、网格视图(GridView)、标签布局(TabLayout)、列表视图(ListView)和绝对布局(AbsoluteLayout)。

本文设计主要采用线性布局(LinearLayout),所以就线性布局我们来做简单地介绍。

线性布局LinearLayout:

线性布局是所用布局中最常用的方式之一,RadioGroup,TabWidget,TableLayout,TableRow,ZoomControls类的父类。

LinearLayout可以让它的子元素垂直或水平的方式排成一行(不设置方向的时候默认按照垂直方向排列)。

LinearLayout以你为它设置的垂直或水平的属性值,来排列所有的子元素。

所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子元素的高度加上边框高度)。

LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素的右对齐、中间对齐或者左对齐)。

LinearLayout还支持为单独的子元素指定weight。

好处就是允许子元素可以填充屏幕上的剩余空间。

这也避免了在一个大屏幕中,一串小对象挤成一堆的情况,而是允许他们放大填充空白。

子元素指定一个weight值,剩余的空间就会按这些子元素指定的weight比例分配给这些子元素。

默认的weight值为0。

例如,如果有三个文本框,其中两个指定了weight值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大。

3.3.5控件介绍

1.TextView——文本控件,可以用它来显示文字,就像一个标签一样,或者你可以认为是html中的span。

对于TextView是怎么设置显示的文本,怎样设置字体的大小,字体的颜色,字体的样式。

TextView包含以下子类:

Button,CheckedTextView,Chronometer,DigitalClock,EditText。

以下简单介绍TextView的属性:

•android:

id

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2