版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、14基于Android平台气象软件的设计与实现摘 要在当今这个高速发展的信息时代,传统互联网已经日趋成熟,而移动互联网却处于井喷式的爆发阶段。随着基于Android和iOS系统等智能手机操作系统的普及,智能手机为用户提供着越来越便捷和人性化的互联网服务。通过手机终端即可处理各种业务,远可远程物联关灯,近可查阅地图天气。因此,应用软件极其服务在智能手机上具有广阔的开发空间。而当今主流的两家智能手机系统平台分别是由Android和iOS系统所占据。它们凭借其高智能化、交互性强、扩展性强、创新度高一举将占据智能手机市场十几年的塞班踢出历史舞台。也造就了移动互联网的高速发展。因为苹果和谷歌科技巨头具有
2、强大的技术实力背景,人性化的交互设计,高水平的设计规范,完善的服务终端。所以系统用户激活数一直很高。而其中的Android所具有的开源开放特性使它具有良好的拓展性。深受各大手机产商的欢迎,因此Android占据着最多的市场份额。并且它具有方便的开发调试工具,开放的体系架构,成熟的多媒体和各大组件,较低的开发成本。这都深深地吸引着开发者们。本文设计就是在基于Android平台,使用相关的开发工具,结合实际工作内容,对气象软件应用进行设计与实现。关键词: API;Android;SQLite;气象软件;JavaDesign and implementation of weather softwar
3、e Based on AndroidAbstractTodays rapid development of the information age,Traditional Internet has becoming mature.And mobile Internet is in the stage of the outbreak of the blowout. As based on Android and iOS system and so on the proliferation of smart phones, smart phones to provide users with mo
4、re 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 todays mainstream
5、 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 devel
6、opment 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 a
7、ssistance 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,
8、 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;Java1 绪 论1.1 研究背景与意义在现今信息化、智能
9、化的时代,移动互联网的地位日趋重要,3G、4G通信技术高速发展,不管是国内的TD制式还是欧美的FDD制式,3G、4G通信技术在移动互联网的发展历程中具有重要的意义,是一块不可替代的基石。现在只需轻轻一点,便可通过小小的手机终端享受到高效且方便的网络服务。在2014年的台湾资策会FIND的“台湾最受欢迎的20大应用“调查报告中,在社交类和娱乐类之后就是天气类,而这排名并不仅仅是台湾,相信在国内和国外的应用排行中,天气类的应用软件都会有一席之地,因为现在的气象信息可以十分精准的预测出当天的气候状态,这种提前预警的好处,可以把气象灾害造成的损失降到最低。而这些服务只需通过手机轻轻一点即可实现。所以天
10、气类的应用软件无论是在哪个手机系统平台上,渗透率都是非常之高的。随着各类应用软件的百花齐放,在当前巨大的移动互联网背景下,应用软件的格局和开发者的盈利模式逐渐有清晰的轮廓。就目前手机应用程序的盈利手段来说,移动广告是十分重要的盈利手段。在渗透率高的应用上嵌入广告SDK的话,可以赚取到一定的点击量和展示量,因此,一些分发平台为了帮助自己的广告业务跑量,也会选择开发一些实用的应用嵌入自己的SDK。而气象软件是相对比较新颖且实用的一款应用软件。因此选择了基于Android平台气象软件的设计与实现。1.2 研究现状和发展趋势基于Android平台开发气象软件应用,首先Android具有基于自己不同于别
11、人的优势与特点。第一,他具有强大的开放性。众说周知,Android是一个开源的操作系统,因为Android平台基于BSD协议。而BSD协议鼓励软件开发作者公开后续其开发的源代码,但它并不具有强迫性,因此使用者修改代码之后,可以自行决定是否按照BSD协议进行公开。这样使得Android一边具有其开放性而另一边又可适用于商业开发。第二点优势是硬件跨平台,因为Android具有的开放性,各大厂商选择Android作为自己手机的原生操作系统,因此同一种系统软件背后是多个厂商的多种硬件所支撑。通过将系统深度定制,来达到个性化的极致,以此吸引广大消费者,抢占市场份额。第三点是并行运行模式。Android是
12、一个支持多任务操作系统的平台,后台可通过服务挂起,应用之间彼此不会互相影响,只要后台挂着,你可以一边下载,一边听歌,一边玩游戏,相信在不久的将来,Android手机会发展到和PC操作系统一样,可以分为多窗口工作模式,一个窗口看视频,另外一个窗口玩游戏。最后一点就是非垄断性。与苹果公司的iOS系统和微软公司的Windows Phone相比,在Android平台上,可以定制自己所独有的东西,这对开发者具有极大的吸引力。而手机的应用软件就是手机操作系统的灵魂,可以说各式各样的App造就了操作系统的丰富多彩,某些App软件具有强大的用户基数和稳定的盈利模式,因此在现今移动互联网格局战略发展下,基于An
13、droid平台开发的应用软件是移动互联网攻城掠地的第一城。1.3 SQLite数据库简介数据库是程序进行数据管理的重要技术,现今信息资源的管理与存储是愈加复杂、同时也愈加重要,而数据库却在对信息资源的管理和存储中充当着至关重要的角色。而对于Android手机这种智能终端来说,自然也需要数据库对其信息资源进行管理和存储,Android搭载着一款轻型的SQLite数据库,它是遵守ACID的嵌入式关系型数据库管理系统。它是以嵌入式为设计目标的,而且目前已经在很多嵌入式产品中使用了它,它的特点是高度便携、使用方便、结构紧凑、高效、可靠。它能够支持Windows/Linux/Unix等主流的操作系统的同
14、时也能够跟很多程序语言相结合。1.4 开发环境简介Android的系统架构可以大致可以分为四层架构,五块区域。最底层也是最基础的一层是Linux内核层:Android系统是基于开源的Linux2.6内核开发的,这一层是为Android设备的各种硬件提供了底层支持驱动,比如用于屏幕显示的显示驱动、用于多媒体播放的音频驱动、用于拍照摄影的照相机驱动,以及蓝牙、Wi-Fi驱动等。接着是系统运行库层:Android系统所需要的特性支持都是由这一层的一些C/C+语言编写的库所提供的。比如数据库是由SQLite所提供支持的, 3D绘图是由OpenGL|ES库提供了支持,浏览器内核是由WebKit库提供了支
15、持等。还有就是Dalvik虚拟机包含在了Android运行时库中。Dalvik虚拟机使得每一个Android应用都能够运行在独立的进程中并且拥有一个自己的Dalvik实例。不同于Java虚拟机,Dalvik是为移动设备专门量身定制的,它可以在手机内存、CPU性能有限等情况下。进行专门的优化处理。接着是应用框架层:这一层是为开发者和Android自带的一些核心应用提供了构建程序时需要用到的各种API。然后是最顶层的应用层:所有安装在手机上的应用程序都是属于这一层,比如微信,系统自带的短信还有游戏都是属于这层,这层是用Java语言编写的。由于Android应用层的应用程序都是Java语言编写的,所
16、以开发环境需要Java SDK以及Google提供的Android SDK,而开发工具就有Eclipse搭载ADT插件和刚兴起不久的Android studio。此程序是用Eclipse开发的,因此只介绍Eclipse。准备好以上提到的SDK和程序,再配置环境变量,便可进行开发了。1.4.1 Java概述Java是目前全世界最流行的面向对象编程语言。与它类似的程序设计语言有C#、python和Ruby,它们在某些领域都有自己的特点和优势,所以彼此都是处于竞争者的状态。Java语言是一种较为特殊的高级语言,因为Java程序要经历先编译、后解释两个步骤。所以Java既有解释性语言的特征,也有编译性
17、语言的特征。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.
18、2 Eclipse+ADT概述是Java开发中最好用、最流行的IDE工具之一。而且它还是开源的,这使得MyEclipse和Aptana这些基于Eclipse制作出来的优秀IDE得以成功问世。但它吸引众多开发者的地方还不止于此,Eclipse它具有超强大的插件功能。因为它可以支持非常多的插件工具,使得它不仅可以用来开发Java,还可以非常轻松地支持几乎所有主流语言的开发,当然也非常适合Android开发。ADT全称是Android Development Tools,是谷歌提供的一个Eclipse插件,用户在Eclipse中提供一个强大的、高度集成的Android开发环境。安装ADT插件,就可以
19、实现联机调试,而且还能够模拟各种手机事件、分析你的程序性能等众多便捷的功能。2 需求分析2.1 研究目的主要是为了学习Android应用程序的设计与开发,往安卓工程师的职位发展,配合公司跑量业务进行研究与学习。利用组件对气象软件进行开发,通过项目实践,将书本中学习到的知识运用起来,对知识点进行更加深刻的总结归纳。2.2 系统需求基于Android平台的气象软件,主要强调的就是便捷性,一般人们在准备出门的时候会提前看一下天气预报,根据气温提示考虑如何着装以及是否带伞等问题。此时便有以下几点要求,第一、需要有便捷的查询功能,最简洁的提供资讯,直观的收到我所需要了解的天气信息即可。第二、需要准确的天
20、气信息,因此需要着重考虑天气API接口。第三、信息要实时更新,所以后台服务要按照一定的时间间隔,从服务器上获取信息。并且提供手动更新,获取实时天气信息。2.3 需求分析根据系统分析,Android气象软件要求如下 :1. 软件可罗列出全国所有省、市、县。2. 软件可查看全国的任意所选城市天气信息。3. 软件可定位出你当前所在地理信息位置。4. 软件可自由切换全国各大城市以及查看它的天气信息。5. 软件可提供手动更新功能以及后台自动更新天气信息的功能。6. 程序响应速度快,获取后台信息快速无延误,安全性高。2.4 功能分析图下图是气象软件的功能分析图 图2-1 系统功能分析图3 总体设计3.1
21、用户界面设计根据需求分析可知道,首先用户点击进入应用程序时,系统会获取服务器上返回的文本信息,用程序处理完之后再进行适配ListView便可获得初始界面,用初始界面进行初始化就可以到主界面了。设计初衷就是为了简洁明了,一目了然。设计出来的界面草图如下所示。 图3-1 初始化界面设计草图 图3-2 主界面设计草图3.2 总体功能设计3.2.1 模块设计功能模块设计总体分为4部分,分别是活动启动,后台Service服务,用户界面以及数据库,模块包名如下图所示:活动启动:活动是Android程序的门面,在应用中所看到的东西,都是活动,它与用户交互最直接的组件。它有四种启动模式,分别是Standard
22、、singleTop、singleTask还有SingleInstance。本程序是默认的Standard启动模式。后台Service:负责执行那些不需要去和用户交互而且还要求在系统中长期运行的任务。它并不依赖用户界面,所以当程序切换到后台,或者用户直接打开另外一个应用程序时,服务仍然能够保持正常运行。适用于一些下载任务和自动后台更新服务,例如一定时间内自动与服务器交互获得气象数据并且更新。用户界面:由XML语言编写的布局文件,布局文件中可以用许多系统自带控件进行装饰,也可以设置自定义控件,为了让每个控件都有条不紊地摆放在界面上,我们需要设置相应的布局来使控件按照布局的规则放置,常见的四种基本
23、布局是LinearLayout、RelativeLayout、TableLayout、FrameLayout。本文初始化界面是用ListView,而主界面是用多重布局嵌套。图3-3 模块包名图Activity包主要用于存放所有与活动相关的代码,包内有ChooseAreaActivity类和WeatherActivity类,它们分别代表选择天气活动界面和显示天气主活动界面。db包则是用于存放数据库相关的代码,包内有WeatherDB类,它负责省市县三级联动的数据存储,还有一个建库工具类OpenHelper。而model包主要用于存放所有数据模型相关的代码,例如省模块的Province类、市模块的
24、County类、县模块City类。Receiver包用于存放所有广播接收器相关的代码,service包用于存放和服务有关的代码,包内的AutoUpdateService主要用于服务后台自动更新,使天气信息可以在一定时间自动从服务器上获取数据并且刷新。util包是工具包,用于存放工具类相关的代码,主要有网络连接服务的HttpUtil工具类还有HttpCallbackListener监听类。3.3 数据库设计3.3.1 系统数据分析通过分析气象API接口,知道气象信息并不需要利用数据库进行存储,只需进行缓存就好。而真正我们需要处理的数据项就是建立Province、City、County三张表,分别
25、存放省、市、县的各种数据信息。3.4 API接口分析当我们将手机上获得的省市县数据处理成城市代号并访问相应的地址时,中国气象网会返回相应的天气代号,以下为部分城市天气代号表的一部分:图3-4 城市天气代号表当我们把经过处理的天气代号发送到查询天气接口时,服务器会把该城市的当前的天气信息以JSON格式返回给我们,如下所示:“weatherinfo”:“city”:”浦东”, “cityid”:”101021300”, “temp1”:”21”, “temp2”:”9”, “weather”:”多云转小雨”, “img1”:”d1.gif”, “img2”:”n7.gif”, “ptime”:”1
26、1:00”一下是可供参照的气象编码表和风力编码表:图3-5 天气现象编码表图3-6 风力方向编码表3.5 数据字典3.5.1 省级信息表描述:对省级基本信息的存储,省级表的基本信息包括: 自增长主键id,province_name、province_code。表3-1 省级信息表列名数据类型可否为空属性名称说明idinteger否id自增长主键Province_nameText否Province name/Province_codetext否Province_code/3.5.2 市级信息表描述:对市级基本信息的存储,省级表的基本信息包括: 自增长主键id,city_name,city_cod
27、e,province_id。表3-2 市级信息表列名数据类型可否为空属性名称说明idInteger否Id自增长主键City_nameText否City_name/City_codetext否City_code/Province_idinteger否Province_id外键3.5.3县级信息表描述:对县级基本信息的存储,省级表的基本信息包括: 自增长主键id,county_name,county_code,city_id。表3-3 县级信息表列名数据类型可否为空属性名称说明IdInteger否Id自增长主键County_nameText否County_name/County_codetext否
28、County_code/city_idinteger否city_id外键4 设计思想与实现整个气象软件是我自己独立设计完成的虽然简单功能点并不多,技术要求也不高,但想实现却需要用到UI、网络、定位、数据存储、服务等技术,算是比较考验综合应用能力。也算是重温了基础知识点和四大组件。4.1 省市县三级联动模块省界面如图4.1:图4-1 省界面市界面如图4.2:图4-2 市界面县区界面如图4.3:图4-3 省界面全国的省市县数据都是从服务器端获取到的,由于服务器返回的省市县数据都是“代号|城市,代号|城市”这种格式,所以要需要进行解析处理。处理完后,就可以编写界面,主要是通过ListView将省市县数据显示在其中。接着是配合适配器查询省市县,优先从数据库中查询,没有再从服务器端获取,一般第一次初始化都是要从服务器端获取。最后通过返回主线程进行UI控件处理就可以完成以上效果。4.2 主界面模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《基于用户体验的线上教学平台评价指标体系的构建研究》
- 2024-2030年中国气动破拆工具产业未来发展趋势及投资策略分析报告
- 合成材料制造技术在航海工程中的应用考核试卷
- 2024至2030年中国竖琴式散热器数据监测研究报告
- 《23MHz高频超声测量健康青年人群面部皮肤厚度的临床研究》
- 2024-2030年中国森立空调产业未来发展趋势及投资策略分析报告
- 2024-2030年中国果疏产业未来发展趋势及投资策略分析报告
- 2024-2030年中国有线电视市场发展机遇及投资规划分析报告
- 2024至2030年钻石项目投资价值分析报告
- 2024-2030年中国日式料理行业市场深度调研及竞争格局与投资前景研究报告
- 经纬度数转换工具
- 消弧线圈基础施工方案
- 小学一年级数学小学一年级数学新思维训练(课堂PPT)
- 一年级家长进课堂电的知识(课堂PPT)
- 《大梦想家》歌词--TFBOYS
- 厦门岛生活垃圾处置现状与未来工作展望
- 完整版用PLCs7-200实现接触器互锁的电动机正反转控制电路的编程安装与接线文档良心出品
- 《我运动、我参与、我快乐、我健康》主题班会课件.ppt
- 医疗学术会议工作人员分工明细表
- 事业单位出纳工作常见问题及对策
- 阴道镜培训(课堂PPT)
评论
0/150
提交评论