基于安卓的天气查询软件

 2022-01-17 11:01

论文总字数:15205字

目 录

3.基于安卓的天气查询软件系统设计

3.1研究目标

(1) 了解如何开发和设计一个基于安卓的天气查询软件;

(2) 基于Android 平台对手机天气查询软件的开发,熟悉安卓主要组件的使用。

我所做的这款天气查询软件是基于Eclipse的开发环境,凭借网络服务获取气象数据为我们的软件提供气象信息,最终完成我们的天气查询软件。

3.2需求分析

目前随着人们对天气质量要求的不断提高,传统意义上的只提供气温和降雨情况的简单天气预报已经不能满足大多数人的需求了。现在人们会对pm2.5,空气质量等一系列数据更加敏感。通过天气查询软件,方便简洁的得出用户想要的天气数据,还可以添加其他城市的信息。因此,我们开发的的功能有三大模块:

本地天气模块:根据用户选择的城市,准确的显示出当地的天气情况,包括温度、湿度、紫外线强度。

未来天气模块:根据用户选择的城市,显示出当地连续五天的天气情况;

搜索城市模块:用户可以自由选择想要的城市,但只提供县级以上城市;

用户可以根据软件所查询到数据合理的安排自己得行程和户外活动,使我们的生活质量进一步提高;另外,软件提供更新功能,在联网情况下,天气每两个小时对天气进行跟新。[4]

3.3性能分析

Android系统比较ios系统最大的一个优点就是Android是一个多任务操作系统,我们最近使用过的程序都可以常驻后台,并且在内存管理上根据内存大小和系统进程选择性的自动kill近期占用内存非活跃进程或是占用内存很大的进程,kill并不是关闭程序,而是将程序进程转入高速缓存区,当程序再次运行时打开速度更快,消耗资源更小。软件采用LinearLayout实现多个页面的滑动切换,我们将四个视图页面封装在一个view中,不显示的页面由LinearLayout封装的资源收缩方法保留最基本的数据,用来节约内存,滑动时只需要还原子view即可,与直接用Activity的切换相比既节约资源,又加快了界面切换的速度。因为通过Activity的切换还要涉及到Activity的创建与销毁。

4.程序设计

4.1 整体设计

根据我们使用天气查询软件用户的需求分析,我们得到设计系统的流程大致如图4.1所示:图4.1:系统流程图

4.2 界面设计

我们所设计的天气查询软件主要四个个界面,下面我主要展示几个见面的效果图和设计布局图。首先是介绍欢迎注册界面:显示应用程序欢迎信息和让用户对使用该软件进行注册。在打开此界面的同时,软件后台的数据库和获取数据也同时进行。界面如图4.2:

图4.2:欢迎注册图

实时天气页面:实时天气界面一共有九个信息栏和两个选择按钮。信息栏里测主要信息包括城市名,对天气的描述,高低温蒂、风速、温馨提示和未来天气等信息。同时在界面的底部,我们可以选择城市和退出软件的操作按钮;第一次选择的城市在软件第二次运行时会记录为默认城市。如图4.3:

未来天气

温馨提示:

图4.3:实时天气界面草图

未来天气页面:一共有七个信息栏,主要显示是所在城市名和包括今天的一共五天的天气状况;如图4.4:

图4.4:未来天气界面草图

选择城市页面:选择输入框输入选择的城市名字,然后点击搜索按钮;会在搜索结果看写实出正确的天气信息,如果输入城市不存在,即信息错误的话,则会在提示出提示我们信息错误;如图4.5:

搜索结果

搜索

图4.5:搜索界面草图

在每个页面的最下方显示提供信息的网站,我们要尊重版权信息,尊重其他人的劳动成果。

4.3 城市数据库设计

一个软件数据信息搜索的效率最重要的决定因素就是我们所设计的数据库。我们一共创建两张表,一张表名叫cities,一张叫做city风别存放城市的编码和城市名,每个表都有对应的主键,他是必不可少的。在cities表中记录所有城市的信息,而在city表中只存放一条数据信息,表的设计情况如下:

表4.1:cities

表4.2:city

4.4程序模块设计

图4-2 软件基础模块的设计

5.软件开发

5.1文件结构与用途

我们开发的查询是基于安卓的天气查询软件,所以我们以此作为我们开发软件的工程名,我们开发一个软件要先把软件的架构所确定,如图5-1所示。

图5-1 项目框架结构图

在用eclipse开发软件的时候,我们创建Src文件用来存放我们所编程的大部分代码;R.java由系统文件自动生成,我们软件所用到的每一个资源文件都图片,字符串文件和其他一些文件都会分配一个唯一的资源号,我们称之为id,就像我们每一个学生在学校里有一个唯一的学号,为每个资源的Java系统分配一个相应唯一的资源号,R.java将自动生成一个ID,唯一的ID号可以准确地在别处调用,减少资源消耗。 Bin文件夹保存项目后可执行文件的apk文件; Android依赖关系和Android 2.2是项目需求的jar包;为了解决屏幕自适应的问题,在R.java中的Android系统只生成一个资源id。 res在动态文件夹下的自定义界面切换样式,系统在R.java中只存在一个资源号,不同的资源号对应了不同屏幕尺寸的大小,通过调用它是系统自动选择图片大小以适应屏幕大小;布局定义接口布局xml文件。

5.2Android的UI界面的实现

在Android中用户界面的搭建都是通过XML文件来布局的。UI界面值得就是我们打开软件所能看到的图形化界面。他们存放在工程/res/layout目录下面。LinearLayout个在UI界面中线性布局,方向为垂直方向,控件的方向从上到下。对于熟悉以前java所见即所得即可视化编程的程序员来说会有些不太适应。我们用XML文档设置负责用户UI界面,用过xml文档的定义,以此来实现view,java主要负责用户的实现,可以达到而降低程序耦合的效果,便于程序的后期的维护和扩展。程序首先要有一个加载页面,他是以.java文件的形式存放的,我们的界面需要我们对此进行布局,还需要xml文件进行布局的设置 ,代码为:

setContentView(R.layout.load);

但是根据我们之前对软件的需求分析可以知道你,我们在进行页面加载的同时需要启动数据库对其初始化,对已经选择的天气从数据进行下载,所以同时需要操作,数据库的初始化:

初始化后的数据库里面是空的,我们无法的到数据,所以同时要下载我们已经选择的城市的信息,方便用户使用。

图 4.1 布局文件图

其中custom里用来显示用户注册的信息示,activity_weather_main用来显示选择的主要城市的天气信息activity_cook_bookcity_environment用来显示根据当前天气气温是适合的菜谱,activity_change用来显示天气即将变化的情况,logopition_usr用来显示软件用户使用者的信息,logopition_admin用来显示登录用户注册和欢迎界面,item_list用来存放一共选择城市的列表,widget_activity用来显示主界面布局

5.3天气查询软件欢迎注册界面的实现

为了是软件看起来高端一点,并为以后积累用户量做准备,当我们第一次安装完天气查询软件好后,在进入显示天气状况的界面之前设置了一个Activity,用来跳转到用户注册话登入界面,命名为LoginActivity。在LoginActivity中显示login布局

程序显示画面一秒后会进入主程序天气界面,如图4.2所示程序欢迎界面

图 4.2 欢迎注册界面图

5.4 用户注册界面的实现

当我们安装好软件第一次安装好进入程序界面时,系统会跳出一个窗口用户登入界面,因为我们是第一次实用软件,没有装好,所以我们选择立即注册,跳转至用户注册界面。通过输入手机号,用户名和密码来注册账号,进入主界面。注册完成登入,跳转出主界面

用户注册界面

5.5用户主界面的实现

当我们通过用户注册界面成功登入软件,那么恭喜你,我们已基本可以来使用天气查询软件了,如图5-5所示,我们以选择城市泉州为例,主界面显示了日期,高低温度,风向,具有特色的是,软件还提供生活指南,当然这项信息也是通过网站所提供的信息,但是能够显得我们的软件根据有人性化。另外我们左右上角分别提供按钮可以选择假期后天气的具体情况。

图5-1 天气软件主界面图

当然,手机屏幕界面的显示内容毕竟是有限的,我们的生活指南里有很多信息屏幕上是显示不全的,我们通过上下滑动来显示更多信息。智力用来控制华东我们需要用到的组件是ViewFlippe,

图 5-2界面滑动布局

主界面的三个分界面有风向、天气、生活指南组成。我们使用程序进行通信是监听是必不可少的,我们在触摸屏幕时,我们把手机屏幕想象成一个坐标系,我们手触碰的位置就是坐标,通过程序坚挺坐标的变化,来实现界面的滑动主界面。部分代码如下

5.5获取天气信息并显示

我们所做的软件是天气查询软件,所以软件所提供的气象数据的准确性和及时性就至关重要。我们软件本本身并没有计算天气预报的能力,我们软件所提供的天气数据都是对专业的天气网站进行解析,例如中国气象网,解析的过程其实就是数据筛选的过程,我们通过解析过滤出网站所提供的气象数据,然后将这些气象数据显示在我们多设计的软件的主界面上。通过我的不断努力,和学校气象专业的同学的支持,找到了一个提共webservice服务并且气象数据较为权威的气象网站,它的网址为:http://www.webxml.com.cn/webservices/weatherwebservice.asmx 。我们通过该往至提供的稳本service服务,访问它的网页服务从而的获取我们想要的数据。高网站上每个不同的城市对用不同的参数,我们想访问哪一个城市的信息只需要获取对应的参数即可。因为天气的情况是不断变化的,可能前一个小时所测得的天气是下雨,但是一个小时后天气就会变为晴朗,如果这样,对于我们而言是非常浪费时间和不方便的,所以该网站的天气信息每两小时更新一次,就有很好的及时性。

Webservice平台,他提供的一项技术又被称之为web service技术,这项技术极大地方便了我们开发软件过程中所需要的数据交换,不需要我们通过其他特定的硬件或者其他协议。主要涉及到的技术是SOAP,WSDL

剩余内容已隐藏,请支付后下载全文,论文总字数:15205字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;