完整版基于Android平台气象软件的设计与实现毕业设计.docx
- 文档编号:14951172
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:18
- 大小:90.47KB
完整版基于Android平台气象软件的设计与实现毕业设计.docx
《完整版基于Android平台气象软件的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于Android平台气象软件的设计与实现毕业设计.docx(18页珍藏版)》请在冰点文库上搜索。
完整版基于Android平台气象软件的设计与实现毕业设计
基于Android平台气象软件的设计与实现
摘要
在当今这个高速发展的信息时代,传统互联网已经日趋成熟,而移动互联网却处于井喷式的爆发阶段。
随着基于Android和iOS系统等智能手机操作系统的普及,智能手机为用户提供着越来越便捷和人性化的互联网服务。
通过手机终端即可处理各种业务,远可远程物联关灯,近可查阅地图天气。
因此,应用软件极其服务在智能手机上具有广阔的开发空间。
而当今主流的两家智能手机系统平台分别是由Android和iOS系统所占据。
它们凭借其高智能化、交互性强、扩展性强、创新度高一举将占据智能手机市场十几年的塞班踢出历史舞台。
也造就了移动互联网的高速发展。
因为苹果和谷歌科技巨头具有强大的技术实力背景,人性化的交互设计,高水平的设计规范,完善的服务终端。
所以系统用户激活数一直很高。
而其中的Android所具有的开源开放特性使它具有良好的拓展性。
深受各大手机产商的欢迎,因此Android占据着最多的市场份额。
并且它具有方便的开发调试工具,开放的体系架构,成熟的多媒体和各大组件,较低的开发成本。
这都深深地吸引着开发者们。
本文设计就是在基于Android平台,使用相关的开发工具,结合实际工作内容,对气象软件应用进行设计与实现。
关键词:
API;Android;SQLite;气象软件;Java
DesignandimplementationofweathersoftwareBasedonAndroid
Abstract
Today’srapiddevelopmentoftheinformationage,TraditionalInternethasbecomingmature.AndmobileInternetisinthestageoftheoutbreakoftheblowout.AsbasedonAndroidandiOSsystemandsoontheproliferationofsmartphones,smartphonestoprovideuserswithmoreconvenientandhumanizedInternetservices.Candealwithallkindsofbusiness,throughamobileoperatorfararemoteobjecttoturnoffthelights,almostcanconsultweathermap.Therefore,theapplicationsoftwareisserviceonasmartphonehasabroaddevelopmentspace.
Andtoday'smainstreamtwosmartphonesystemplatformaredominatedbyAndroidandiOS.Themwithitshighintelligent,interactivestrong,strongexpansibility,highinnovationdegreeofeverywilldominatethesmartphonemarketmorethantenyearsofsymbiankickedouthistorystage,alsocontributedtotherapiddevelopmentofmobileInternet.BecauseAppleandGoogleCompanytechnologygianthasstrongtechnicalstrengthbackground,humanizedinteractiondesign,highlevelofdesignspecifications,theconsummationserviceterminal.Sotheusersofthesystemhasbeenveryhighactivationnumber.AndwiththeassistanceoftheAndroidopensourceandopenfeaturesmakeithasgoodexpansibility.Heispopularwiththemajormobilephonemakers,sotheAndroidoccupyingmostofthemarket.Andithasaconvenientdevelopmentanddebuggingtools,anopenarchitecture,maturemultimediaandmajorcomponents,lowerdevelopmentcosts.Thisisdeeplyattractdevelopers.
DesignisbasedontheAndroidplatform,thispaperusetherelevantdevelopmenttools,todesignandimplementationofmeteorologicalsoftwareapplication.
Keywords:
API;Android;SQLiteDatabase;Weathersoftware;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系统和微软公司的WindowsPhone相比,在Android平台上,可以定制自己所独有的东西,这对开发者具有极大的吸引力。
而手机的应用软件就是手机操作系统的灵魂,可以说各式各样的App造就了操作系统的丰富多彩,某些App软件具有强大的用户基数和稳定的盈利模式,因此在现今移动互联网格局战略发展下,基于Android平台开发的应用软件是移动互联网攻城掠地的第一城。
1.3SQLite数据库简介
数据库是程序进行数据管理的重要技术,现今信息资源的管理与存储是愈加复杂、同时也愈加重要,而数据库却在对信息资源的管理和存储中充当着至关重要的角色。
而对于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语言编写的,所以开发环境需要JavaSDK以及Google提供的AndroidSDK,而开发工具就有Eclipse搭载ADT插件和刚兴起不久的Androidstudio。
此程序是用Eclipse开发的,因此只介绍Eclipse。
准备好以上提到的SDK和程序,再配置环境变量,便可进行开发了。
1.4.1Java概述
Java是目前全世界最流行的面向对象编程语言。
与它类似的程序设计语言有C#、python和Ruby,它们在某些领域都有自己的特点和优势,所以彼此都是处于竞争者的状态。
Java语言是一种较为特殊的高级语言,因为Java程序要经历先编译、后解释两个步骤。
所以Java既有解释性语言的特征,也有编译性语言的特征。
Java有三个分支,分别为JavaSE、JavaME、JavaEE。
其中JavaEE企业级主要是用于Web的开发,比如JSP、Servlet、EJB等都属于JavaEE的范畴。
由于Java的安全、稳定,这使得JavaEE不仅在大型网站的架构上十分适用,在银行和基金证券等金融行业也是备受青睐。
还有就是JavaME移动设备,它是专门为机顶盒、移动电话和PDA之类的嵌入式消费电子设备提供的Java语言平台。
最后是JavaSE标准版,它是JavaEE和JavaME的基础,核心语言都在JavaSE中体现,最先开始学习就是学JavaSE,它主要用于桌面应用开发。
1.4.2Eclipse+ADT概述
是Java开发中最好用、最流行的IDE工具之一。
而且它还是开源的,这使得MyEclipse和Aptana这些基于Eclipse制作出来的优秀IDE得以成功问世。
但它吸引众多开发者的地方还不止于此,Eclipse它具有超强大的插件功能。
因为它可以支持非常多的插件工具,使得它不仅可以用来开发Java,还可以非常轻松地支持几乎所有主流语言的开发,当然也非常适合Android开发。
ADT全称是AndroidDevelopmentTools,是谷歌提供的一个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.4API接口分析
当我们将手机上获得的省市县数据处理成城市代号并访问相应的地址时,中国气象网会返回相应的天气代号,以下为部分城市天气代号表的一部分:
图3-4城市天气代号表
当我们把经过处理的天气代号发送到查询天气接口时,服务器会把该城市的当前的天气信息以JSON格式返回给我们,如下所示:
{“weatherinfo”:
小雨”,“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省级信息表
列名
数据类型
可否为空
属性名称
说明
id
integer
否
id
自增长主键
Province_name
Text
否
Provincename
/
Province_code
text
否
Province_code
/
3.5.2市级信息表
描述:
对市级基本信息的存储,省级表的基本信息包括:
自增长主键id,city_name,city_code,province_id。
表3-2市级信息表
列名
数据类型
可否为空
属性名称
说明
id
Integer
否
Id
自增长主键
City_name
Text
否
City_name
/
City_code
text
否
City_code
/
Province_id
integer
否
Province_id
外键
3.5.3县级信息表
描述:
对县级基本信息的存储,省级表的基本信息包括:
自增长主键id,county_name,county_code,city_id。
表3-3县级信息表
列名
数据类型
可否为空
属性名称
说明
Id
Integer
否
Id
自增长主键
County_name
Text
否
County_name
/
County_code
text
否
County_code
/
city_id
integer
否
city_id
外键
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和RelativeLayout来控制TextView的显示位置,达到图4-2的效果。
具体布局代码如下所示:
xmlversion="1.0"encoding="utf-8"?
>
android="" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical"> android: layout_width="match_parent" android: layout_height="50dp" android: background="#484E61"> android: la
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 Android 平台 气象 软件 设计 实现 毕业设计