文档库 最新最全的文档下载
当前位置:文档库 › 基于Android平台气象软件的设计与实现毕业论文

基于Android平台气象软件的设计与实现毕业论文

毕业设计论文

基于Android平台气象软件的设计与实

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:

指导教师签名:日期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日

导师签名:日期:年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

教研室(或答辩小组)及教学系意见

摘要

在当今这个高速发展的信息时代,传统互联网已经日趋成熟,而移动互联网却处于井喷式的爆发阶段。随着基于Android和iOS系统等智能手机操作系统的普及,智能手机为用户提供着越来越便捷和人性化的互联网服务。通过手机终端即可处理各种业务,远可远程物联关灯,近可查阅地图天气。因此,应用软件极其服务在智能手机上具有广阔的开发空间。

而当今主流的两家智能手机系统平台分别是由Android和iOS系统所占据。它们凭借其高智能化、交互性强、扩展性强、创新度高一举将占据智能手机市场十几年的塞班踢出历史舞台。也造就了移动互联网的高速发展。因为苹果和谷歌科技巨头具有强大的技术实力背景,人性化的交互设计,高水平的设计规范,完善的服务终端。所以系统用户激活数一直很高。而其中的Android所具有的开源开放特性使它具有良好的拓展性。深受各大手机产商的欢迎,因此Android占据着最多的市场份额。并且它具有方便的开发调试工具,开放的体系架构,成熟的多媒体和各大组件,较低的开发成本。这都深深地吸引着开发者们。

本文设计就是在基于Android平台,使用相关的开发工具,结合实际工作内容,对气象软件应用进行设计与实现。

关键词: API;Android;SQLite;气象软件;Java

Design and implementation of weather software Based on Android

Abstract

Today’s rapid development of the information age,Traditional Internet has becoming mature.And mobile Internet is in the stage of the outbreak of the blowout. A s based on Android and iOS system and so on the proliferation of smart phones, smart phones to provide users with more convenient and humanized Internet services. Can deal with all kinds of business, through a mobile operator far a remote object to turn off the lights, almost can consult weather map. Therefore, the application software is service on a smartphone has a broad development space. And today's mainstream two smartphone system platform are dominated by Android and iOS. Them with its high intelligent, interactive strong, strong expansibility, high innovation degree of every will dominate the smartphone market more than ten years of symbian kicked out history stage, also contributed to the rapid development of mobile Internet.Because Apple and Google Company technology giant has strong technical strength background, humanized interaction design, high level of design specifications, the consummation service terminal. So the users of the system has been very high activation number. And with the assistance of the Android open source and open features make it has good expansibility. He is popular with the major mobile phone makers, so the Android occupying most of the market. And it has a convenient development and debugging tools, an open architecture, mature multimedia and major components, lower development costs. This is deeply attract developers.

Design is based on the Android platform, this paper use the relevant development tools, to design and implementation of meteorological software application.

Key words:API;Android;SQLite Database;Weather software;Java

1 绪论

1.1 研究背景与意义

在现今信息化、智能化的时代,移动互联网的地位日趋重要,3G、4G通信技术高速发展,不管是国内的TD制式还是欧美的FDD制式,3G、4G通信技术在移动互联网的发展历程中具有重要的意义,是一块不可替代的基石。现在只需轻轻一点,便可通过小小的手机终端享受到高效且方便的网络服务。在2014年的台湾资策会FIND的“台湾最受欢迎的20大应用“调查报告中,在社交类和娱乐类之后就是天气类,而这排名并不仅仅是台湾,相信在国内和国外的应用排行中,天气类的应用软件都会有一席之地,因为现在的气象信息可以十分精准的预测出当天的气候状态,这种提前预警的好处,可以把气象灾害造成的损失降到最低。而这些服务只需通过手机轻轻一点即可实现。所以天气类的应用软件无论是在哪个手机系统平台上,渗透率都是非常之高的。

随着各类应用软件的百花齐放,在当前巨大的移动互联网背景下,应用软件的格局和开发者的盈利模式逐渐有清晰的轮廓。就目前手机应用程序的盈利手段来说,移动广告是十分重要的盈利手段。在渗透率高的应用上嵌入广告SDK的话,可以赚取到一定的点击量和展示量,因此,一些分发平台为了帮助自己的广告业务跑量,也会选择开发一些实用的应用嵌入自己的SDK。而气象软件是相对比较新颖且实用的一款应用软件。因此选择了基于Android平台气象软件的设计与实现。

1.2 研究现状和发展趋势

基于Android平台开发气象软件应用,首先Android具有基于自己不同于别人的优势与特点。第一,他具有强大的开放性。众说周知,Android是一个开源的操作系统,因为Android平台基于BSD协议。而BSD协议鼓励软件开发作者公开后续其开发的源代码,但它并不具有强迫性,因此使用者修改代码之后,可以自行决定是否按照BSD协议进行公开。这样使得Android一边具有其开放性而另一边又可适用于商业开发。第二点优势是硬件跨平台,因为Android具有的开放性,各大厂商选择Android作为自己手机的原生操作系统,因此同一种系统软件背后是多个厂商的多种硬件所支撑。通过将系统深度定制,来达到个性化的极致,以此吸引广大消费者,抢占市场份额。第三点是并行运行模式。Android是一个支持多任务操作系统的平台,后台可通过服务挂起,应用之间彼此不会互相影响,

只要后台挂着,你可以一边下载,一边听歌,一边玩游戏,相信在不久的将来,Android手机会发展到和PC操作系统一样,可以分为多窗口工作模式,一个窗口看视频,另外一个窗口玩游戏。最后一点就是非垄断性。与苹果公司的iOS 系统和微软公司的Windows Phone相比,在Android平台上,可以定制自己所独有的东西,这对开发者具有极大的吸引力。而手机的应用软件就是手机操作系统的灵魂,可以说各式各样的App造就了操作系统的丰富多彩,某些App软件具有强大的用户基数和稳定的盈利模式,因此在现今移动互联网格局战略发展下,基于Android平台开发的应用软件是移动互联网攻城掠地的第一城。

1.3 SQLite数据库简介

数据库是程序进行数据管理的重要技术,现今信息资源的管理与存储是愈加复杂、同时也愈加重要,而数据库却在对信息资源的管理和存储中充当着至关重要的角色。而对于Android手机这种智能终端来说,自然也需要数据库对其信息资源进行管理和存储,Android搭载着一款轻型的SQLite数据库,它是遵守ACID 的嵌入式关系型数据库管理系统。它是以嵌入式为设计目标的,而且目前已经在很多嵌入式产品中使用了它,它的特点是高度便携、使用方便、结构紧凑、高效、可靠。它能够支持Windows/Linux/Unix等主流的操作系统的同时也能够跟很多程序语言相结合。

1.4开发环境简介

Android的系统架构可以大致可以分为四层架构,五块区域。最底层也是最基础的一层是Linux内核层:Android系统是基于开源的Linux2.6内核开发的,这一层是为Android设备的各种硬件提供了底层支持驱动,比如用于屏幕显示的显示驱动、用于多媒体播放的音频驱动、用于拍照摄影的照相机驱动,以及蓝牙、Wi-Fi驱动等。接着是系统运行库层:Android系统所需要的特性支持都是由这一层的一些C/C++语言编写的库所提供的。比如数据库是由SQLite所提供支持的, 3D绘图是由OpenGL|ES库提供了支持,浏览器内核是由WebKit库提供了支持等。还有就是Dalvik虚拟机包含在了Android运行时库中。Dalvik 虚拟机使得每一个Android应用都能够运行在独立的进程中并且拥有一个自己的Dalvik实例。不同于Java虚拟机,Dalvik是为移动设备专门量身定制的,它可以在手机内存、CPU性能有限等情况下。进行专门的优化处理。接着是应用框架层:这一层是为开发者和Android自带的一些核心应用提供了构建程序时需要用到的各种API。然后是最顶层的应用层:所有安装在手机上的应用程序都是属于这一层,比如微信,系统自带的短信还有游戏都是属于这层,这层是用Java

语言编写的。

由于Android应用层的应用程序都是Java语言编写的,所以开发环境需要Java SDK以及Google提供的Android SDK,而开发工具就有Eclipse搭载ADT 插件和刚兴起不久的Android studio。此程序是用Eclipse开发的,因此只介绍Eclipse。准备好以上提到的SDK和程序,再配置环境变量,便可进行开发了。

1.4.1 Java概述

Java是目前全世界最流行的面向对象编程语言。与它类似的程序设计语言有C#、python和Ruby,它们在某些领域都有自己的特点和优势,所以彼此都是处于竞争者的状态。Java语言是一种较为特殊的高级语言,因为Java程序要经历先编译、后解释两个步骤。所以Java既有解释性语言的特征,也有编译性语言的特征。

Java有三个分支,分别为Java SE、Java ME、Java EE。其中Java EE企业级主要是用于Web的开发,比如JSP、Servlet、EJB等都属于Java EE的范畴。由于Java的安全、稳定,这使得Java EE不仅在大型网站的架构上十分适用,在银行和基金证券等金融行业也是备受青睐。还有就是Java ME移动设备,它是专门为机顶盒、移动电话和PDA之类的嵌入式消费电子设备提供的Java语言平台。最后是Java SE标准版,它是Java EE和Java ME的基础,核心语言都在Java SE中体现,最先开始学习就是学Java SE,它主要用于桌面应用开发。

1.4.2 Eclipse+ADT概述

是Java开发中最好用、最流行的IDE工具之一。而且它还是开源的,这使得MyEclipse和Aptana这些基于Eclipse制作出来的优秀IDE得以成功问世。但它吸引众多开发者的地方还不止于此,Eclipse它具有超强大的插件功能。因为它可以支持非常多的插件工具,使得它不仅可以用来开发Java,还可以非常轻松地支持几乎所有主流语言的开发,当然也非常适合Android开发。

ADT全称是Android Development Tools,是谷歌提供的一个Eclipse插件,用户在Eclipse中提供一个强大的、高度集成的Android开发环境。安装ADT插件,就可以实现联机调试,而且还能够模拟各种手机事件、分析你的程序性能等众多便捷的功能。

2 需求分析

2.1 研究目的

主要是为了学习Android应用程序的设计与开发,往安卓工程师的职位发展,配合公司跑量业务进行研究与学习。利用组件对气象软件进行开发,通过项目实践,将书本中学习到的知识运用起来,对知识点进行更加深刻的总结归纳。

2.2 系统需求

基于Android平台的气象软件,主要强调的就是便捷性,一般人们在准备出门的时候会提前看一下天气预报,根据气温提示考虑如何着装以及是否带伞等问题。此时便有以下几点要求,第一、需要有便捷的查询功能,最简洁的提供资讯,直观的收到我所需要了解的天气信息即可。第二、需要准确的天气信息,因此需要着重考虑天气API接口。第三、信息要实时更新,所以后台服务要按照一定的时间间隔,从服务器上获取信息。并且提供手动更新,获取实时天气信息。

2.3 需求分析

根据系统分析,Android气象软件要求如下:

1.软件可罗列出全国所有省、市、县。

2.软件可查看全国的任意所选城市天气信息。

3.软件可定位出你当前所在地理信息位置。

4.软件可自由切换全国各大城市以及查看它的天气信息。

5.软件可提供手动更新功能以及后台自动更新天气信息的功能。

6.程序响应速度快,获取后台信息快速无延误,安全性高。

2.4 功能分析图

下图是气象软件的功能分析图

图2-1 系统功能分析图

3 总体设计

3.1 用户界面设计

根据需求分析可知道,首先用户点击进入应用程序时,系统会获取服务器上返回的文本信息,用程序处理完之后再进行适配ListView便可获得初始界面,用初始界面进行初始化就可以到主界面了。设计初衷就是为了简洁明了,一目了然。设计出来的界面草图如下所示。

图3-1 初始化界面设计草图图3-2 主界面设计草图

3.2 总体功能设计

3.2.1 模块设计

功能模块设计总体分为4部分,分别是活动启动,后台Service服务,用户界面以及数据库,模块包名如下图所示:

活动启动:活动是Android程序的门面,在应用中所看到的东西,都是活动,它与用户交互最直接的组件。它有四种启动模式,分别是Standard、singleTop、

singleTask还有SingleInstance。本程序是默认的Standard启动模式。

后台Service:负责执行那些不需要去和用户交互而且还要求在系统中长期运行的任务。它并不依赖用户界面,所以当程序切换到后台,或者用户直接打开另外一个应用程序时,服务仍然能够保持正常运行。适用于一些下载任务和自动后台更新服务,例如一定时间内自动与服务器交互获得气象数据并且更新。

用户界面:由XML语言编写的布局文件,布局文件中可以用许多系统自带控件进行装饰,也可以设置自定义控件,为了让每个控件都有条不紊地摆放在界面上,我们需要设置相应的布局来使控件按照布局的规则放置,常见的四种基本布局是LinearLayout、RelativeLayout、TableLayout、FrameLayout。本文初始化界面是用ListView,而主界面是用多重布局嵌套。

图3-3 模块包名图

Activity包主要用于存放所有与活动相关的代码,包内有ChooseAreaActivity类和WeatherActivity类,它们分别代表选择天气活动界面和显示天气主活动界面。db 包则是用于存放数据库相关的代码,包内有WeatherDB类,它负责省市县三级联动的数据存储,还有一个建库工具类OpenHelper。而model包主要用于存放所有数据模型相关的代码,例如省模块的Province类、市模块的County类、县模块City类。Receiver包用于存放所有广播接收器相关的代码,service包用于存放和服务有关的代码,包内的AutoUpdateService主要用于服务后台自动更新,使天气信息可以在一定时间自动从服务器上获取数据并且刷新。util包是工具包,用于存放工具类相关的代码,主要有网络连接服务的HttpUtil工具类还有HttpCallbackListener监听类。

3.3 数据库设计

3.3.1 系统数据分析

通过分析气象API接口,知道气象信息并不需要利用数据库进行存储,只需进行缓存就好。而真正我们需要处理的数据项就是建立Province、City、County 三张表,分别存放省、市、县的各种数据信息。

3.4 API接口分析

当我们将手机上获得的省市县数据处理成城市代号并访问相应的地址时,中国气象网会返回相应的天气代号,以下为部分城市天气代号表的一部分:

图3-4 城市天气代号表

当我们把经过处理的天气代号发送到查询天气接口时,服务器会把该城市的当前的天气信息以JSON格式返回给我们,如下所示:

{“weatherinfo”:

{“city”:”浦东”, “cityid”:”101021300”, “temp1”:”21℃”, “temp2”:”9℃”, “weather”:”多云转小雨”, “img1”:”d1.gif”, “img2”:”n7.gif”, “ptime”:”11:00”}

}

一下是可供参照的气象编码表和风力编码表:

图3-5 天气现象编码表

图3-6 风力方向编码表

3.5 数据字典

3.5.1 省级信息表

描述:对省级基本信息的存储,省级表的基本信息包括: 自增长主键id,province_name、province_code。

表3-1 省级信息表

3.5.2 市级信息表

描述:对市级基本信息的存储,省级表的基本信息包括: 自增长主键id,city_name,city_code,province_id。

表3-2 市级信息表

3.5.3县级信息表

描述:对县级基本信息的存储,省级表的基本信息包括: 自增长主键id,

county_name,county_code,city_id。

表3-3 县级信息表

4 设计思想与实现

整个气象软件是我自己独立设计完成的虽然简单功能点并不多,技术要求也不高,但想实现却需要用到UI、网络、定位、数据存储、服务等技术,算是比较考验综合应用能力。也算是重温了基础知识点和四大组件。

4.1 省市县三级联动模块

省界面如图4.1:

图4-1 省界面

市界面如图4.2:

图4-2 市界面

县区界面如图4.3:

图4-3 省界面

全国的省市县数据都是从服务器端获取到的,由于服务器返回的省市县数据都是“代号|城市,代号|城市”这种格式,所以要需要进行解析处理。处理完后,就可以编写界面,主要是通过ListView将省市县数据显示在其中。接着是配合适配器查询省市县,优先从数据库中查询,没有再从服务器端获取,一般第一次初始化都是要从服务器端获取。最后通过返回主线程进行UI控件处理就可以完成以上效果。

4.2 主界面模块

主界面如图4-4:

图4-2 主界面

主界面的设计使用TextView来显示数据信息,然后嵌套多层LinearLayout

相关文档
相关文档 最新文档