基于android平台的天气预报软件的设计与实现.doc
《基于android平台的天气预报软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于android平台的天气预报软件的设计与实现.doc(53页珍藏版)》请在咨信网上搜索。
摘 要 随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。因此手机的娱乐应用服务将会有很大的发展空间手机快捷查询软件就是其中的一项。Android平台提供给用户非常方便的快捷查询功能这将为快捷查询服务的设计与实现提供了更好的平台。另外Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机快捷查询服务的普及做出贡献。 本文研究分析了Android平台的系统架构和组件模型接着解析了Android中的重要API和应用构成以Intent和生命周期的机制。在此基础上基于Android平台设计和开发手机快捷查询天气软件。本系统界面友好、操作便捷具有良好的可扩展性和可维护性;系统经过测试、可以稳定运行、能够满足手机用户的基本需求。 关键词 智能手机 Android API 用户 Abstract As smartphones is walking into the life of ordinary people step by step, it will become the main equipment of access to information.Therefore, mobile entertainment application service there will be a very big development space of mobile phone quick query software is one of them.Android platform to provide users with convenient and fast query function for the design and implementation of a quick query service provides a better platform.Also the Android platform is essentially free, so can effectively reduce the cost of software, finally let each user can freely access to information and also contribute to the popularization of mobile phone quick query service. This study analyzes the Android platform system architecture and component model and analyzes the important part of the Android API and application of mechanism with the Intent and life cycle.On the basis of the design and development based on the Android platform mobile phone quick query software in the weather.This system friendly interface, convenient operation, good scalability and maintainability;System tested, stable operation, and can satisfy the basic needs of mobile phone users. Keyword smart phone Android API (Application Programming Interface) User 目 录 摘 要 I Abstract II 第1章 绪 论 1 1.1 国内外手机系统现状 1 1.2 Android系统的优势 1 1.2.1 开放性 1 1.2.2 挣脱束缚 1 1.2.3 丰富的硬件 2 1.2.4 开发商 2 1.3 Android的发展趋势 2 1.3.1 国产手机品牌纷纷加速海外布局 3 1.4 本章小结 3 第2章 相关技术简介 4 2.1 开发工具 4 2.1.1 JDK(Java Development Kit) 4 2.1.2 Android SDK 介绍 4 2.1.3 Eclipse 开发工具介绍 4 2.1.4 Android Development Tools(ADT)介绍 4 2.2 开发环境搭建 5 2.2.1 开发环境搭建的步骤 5 2.2.2 JDK安装 5 2.2.3 Eclipse安装 5 2.2.4 Android SDK安装 6 2.2.5 ADT安装 7 2.2.6 创建AVD 7 2.3 本章小结 7 第3章 需求分析 8 3.1 开发背景 8 3.2 开发需求分析 8 3.2.1 开发需求分析的作用 8 3.2.2 天气预报需求分析 8 3.3 本章小结 9 第4章 项目功能描述 10 4.1 系统主要功能 10 4.2 项目工程结构图 10 4.2.1 项目工程 10 4.3 XML和JSON详情 11 4.3.1 XML解析 11 4.3.2 JSON解析 12 4.3.3 XML的解析方式有两种 13 4.4本章小结 14 第5章 程序代码设计 15 5.1 帮助界面 15 5.2 登陆界面 16 5.3 主界面 19 5.4 本章小结 40 结 论 41 致 谢 42 参考文献 43 附录1 44 IV 第1章 绪 论 1.1 国内外手机系统现状 在早期的手机内部是没有智能操作系统的,所有的软件都是由手机生产商在设计时所定制的,因此手机在设计完成后基本是没有扩展功能的。后期的手机为了提高手机的可扩展性,使用了专为移动设备开发的操作系统,使用者可以根据需要安装不同类型的软件。操作系统对于手机的硬件配置要求较高,所产生的硬件成本和操作系统成本使手机的售价明显高于不使用操作系统的手机。 现在手机上主流的操作系统主要包括以下几种:IOS、Android、Windows Mobile、Symbian、黑莓。而Android和IOS占有的市场比较大,所以可以理解为Android和IOS就是现在手机的主流。 IOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为IOS。IOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。系统操作占用大概240MB的存储器空间。 Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写[1]。 1.2 Android系统的优势 1.2.1 开放性 在优势方面,安卓(Android)平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开放性对于安卓(Android)的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。 1.2.2 挣脱束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 1.2.3 丰富的硬件 这一点还是与安卓(Android)平台的开放性相关,由于安卓(Android)的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。 1.2.4 开发商 安卓(Android)平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生[2]。 1.3 Android的发展趋势 安卓风暴席卷全球,如果要说最近什么系统最火爆那么毫无疑问是安卓系统。自从2008年9月22日,美国运营商T-Mobile USA 在纽约正式发布了第一款基于android安卓的手机后,更多的移动设备厂商看到了安卓android的光明前景,并纷纷加入其中,android甚至已经涉足上网本市场了其发展前景广阔涉及领域越来越大。随着android手机的普及,android应用的需求势越来越大,这个潜力巨大的市场,已经吸引无数软件开发厂商和开发者投身其中。 Android的开放性使其比苹果和黑莓对年轻人更具吸引力,更能吸引年轻人群的关注和喜爱。在18岁至24岁族群中,Android是最多人选用的操作系统。同时因为Android系统的开放性为Android平板电脑的快速发展奠定了基础,也才能促使其吸引着越来越多的用户接受和使用。同时Android还具有应用程序无界限、应用程序是在平的的条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行等众多出色的品质。具有其他操作系统无法比拟的优势和发展空间。 安卓系统在不断升级完善,如今,平板电脑市场已成为Android与苹果iOS除了智能手机领域之外争夺的第二个焦点。一直以来,多数新闻仍然显示iPad在平板市场的霸主地位难撼。但是,以Android领头的平板电脑正以高速的增长对苹果iPad造成冲击。放眼整个平板市场,生产Android平板电脑的确是大势所趋。世界上所有的顶级设备制造商,三星、索尼、摩托罗拉、联想、LG、宏碁、HTC、华硕,几乎每一家要么正在卖Android平板电脑,要么快要卖了。 安卓给用户的触屏体验非常好,安卓手机在高端机领域泛滥的同时也在中低端机领域涉足,这将给安卓系统手机带来非常好的前景,从目前的市场上来看,安卓系统能够在短短的时间里面,占据着超大的市场份额,而且还有非常好的信誉口碑,绝对不是一两个人吹捧出来的,那是因为安卓手机真的能够让人体验到好,才能够有如此高的评价。所以说,虽然目前安卓手机还是存在一定问题上的不足,很多问题都有待需要改善,这就说明安卓系统处于一种发展状态,那么它的生命力就会很强,就业前景广阔。 如今,Android5.0上市以后,我们会发现Android的市场更大了,2015年MWC世界移动通信大会已在西班牙巴塞罗那拉举行,中国手机厂商无疑在这个国际舞台上扮演起了愈发重要的角色,国产手机的崛起已成为不争的事实,在酷派、华为、小米等诸多领军企业积极参与世界级大展的背后,是它们纷纷加码海外市场深化布局的精心谋略,在MWC参展的酷派高层更是直言不诲的指出,2015年将成为酷派大规模海外扩张的关键一年[3]。 1.3.1 国产手机品牌纷纷加速海外布局 曾几何时,国产手机在全球移动终端产业总是远远落后于苹果、三星等国际品牌,但短短几年,随着移动互联网浪潮和智能手机创新的演化,手机行业的全球竞争态势有了明显变化,酷派、华为、小米等手机厂商通过精细化的定位和布局脱颖而出在全球列居前五,智能手机十强中国独占其八。尽管国内市场依然火爆,但进入2015年,国产手机积极拓展海外市场的步伐又再度提速。 对国产手机来说,拓展海外市场无疑是一个新的业绩增长点,这也是国产手机竞相出海的主要原因。随着国内市场竞争的日趋白热化,国产手机厂商在国内的增速也逐渐放缓,而包括印度、东南亚和拉丁美洲的新兴市场其智能手机的需求量却与日俱增。国内外市场的强烈对比,让酷派、华为、小米等国内厂商更加迫切的将目光转向了前景广阔的海外。 去年7月,小米在印度正式推出小米手机战绩斐然,东南亚大多数国家当前都能看到小米手机的身影,华为以欧州市场为重要突破口主推Ascend和荣耀也是今非昔比。而酷派在国际社会的品牌美誉度也获得了大幅度提升,仅2014年在海外市场的销售额预计就突破20亿,增长率更是高达300%,包括实现了与欧洲和北美最大的运营商的合作。 面临广阔的发展机遇,酷派、华为、小米等国产手机厂商要想有更大的突破,未来完成对三星、苹果等巨头的全面超越,进一步深化海外市场也就势在必行。而诸如像MWC这样的世界级移动大会无疑便成为了酷派、华为、中兴、小米等国产手机厂商们进一步展示自己拓展海外市场的战略舞台,作为移动通信产业的风向标,MWC一直引领着智能手机这类电子消费产品的发展趋势。 分析人士认为,诸多国产手机厂商对海外市场都寄予了巨大的期望,但能否一帆风顺,顺利抢摊仍需拭目以待。不过,随着国产品牌2015年对拓展海外市场步伐的进一步加快,与全球科技巨头展开竞争并重新塑造全球手机市场的格局也将变得充满悬念。 最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。 1.4 本章小结 这章我们主要介绍了Android在国内外的发展、Android的系统的优势和Android的发展趋势等等,其实我们从这几方面来看Android的发展空间很大,所以我认为随着智能化,以后出现在我们身边的设备会更多。 第2章 相关技术简介 2.1 开发工具 2.1.1 JDK(Java Development Kit) JDK是java语言的软件开发工具包。本应用用的是JDK的J2ME版,它主要用于移动设备、嵌入式设备上的java应用程序。没有JDK的话,无法编译Java程序,所以这是开发Java程序必须安装的工具[4]。 2.1.2 Android SDK 介绍 SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK指的是Android专属的软件开发工具包[5]。 2.1.3 Eclipse 开发工具介绍 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用。 2.1.4 Android Development Tools(ADT)介绍 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。 SDK(Software Development Kit):一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发[6]。 2.2 开发环境搭建 2.2.1 开发环境搭建的步骤 第一步:JDK安装,第二步:Eclipse安装,第三步:Android SDK安装,第四步:ADT安装,第五步:创建AVD。 2.2.2 JDK安装 如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为:C:\Program Files (x86)\Java\jdk1.6.0_10(你安装JDK的目录) CLASSPATH值为:.;C:\Program Files (x86)\Java\jdk1.6.0_10\lib。 Path: C:\Program Files (x86)\Java\jdk1.6.0_10\bin。 NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。 安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了,如图所示2-1验证JDK安装是否成功, 图2-1验证JDK安装是否成功 2.2.3 Eclipse安装 如果你还么有Eclipse的话,可以去这里下载,下载如图2-2所示的Eclipse IDE for Java Developers(92M)的win 32bit版: 图2-2 Eclipse下载 2.2.4 Android SDK安装 在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。 运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages。 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包[6]。 在用户变量中新建PATH值为:Android SDK中的tools绝对路径“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。如图2-3所示。 图2-3设置Android SDK的环境变量 运行 android –h 如果有类似以下的输出,表明安装成功,如图2-4所示。 图2-4 验证Android SDK是否安装成功 2.2.5 ADT安装 1、打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software" 2、点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl- 图2-5 Name和Location 确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。如图2-6所示: 图2-6 Install 然后就是按提示一步一步next。完成之后:选择Window > Preferences...在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:D:\AndroidDevelop\android-sdk-windows点击Apply、OK。配置完成。 2.2.6 创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。 在Eclipse中。选择Windows > Android SDK and AVD Manager,点击左侧面板的Virtual Devices,再右侧点击New,填入Name,选择Target的API,SD Card大小为256MB,Skin随便选,Hardware目前保持默认值,点击Create AVD即可完成创建AVD。 2.3 本章小结 本章分主要介绍该项目所用到的开发中用到了哪些工具详细的解释了每个工具的用途,并且详细的教大家配置安装环境和环境的搭建。 第3章 需求分析 3.1 开发背景 天气气候预报模式的发展科学和基础的支撑很重要,要重视基础性的问题,采取实质性的应对措施。要从战略高度度,深刻思考下一代天气气候预报模式的发展思路;要加强科学研究,天气和气候一体化是未来的趋势,适应国际发展需求,中国要努力推动二者一体化的工作,在科学研究上不断发展;要加强管理,提高认识,推动核心技术建设,不断推进天气气候模式预报的发展。 正式基于此,很多与人们生活息息相关的手机端的APP被陆续开发出来,天气预报查询就是为此而开发。人们日常生活中在不方便看电视,听广播,或者通过读报的方式获取天气信息时,人们就可以通过手机端安装的天气预报查询软件随时随地查看当前以及未来的天气信息,也可实时更新天气信息,给人们日常出行,生产生活提供气象方面的参考。 由于现在人们的生活工作的方式在改变,生活节奏快,工作压力大,传统的方式已经慢慢被人们所摒弃。因此,一部每天都带在身边的手机,并且安装了天气预报查询的APP,是一个也很不错的选择。 3.2 开发需求分析 3.2.1 开发需求分析的作用 开发软件系统最为困难的部分就是要准确说明开发什么。最为困难的概念性工作便是要编写出详细的技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。如果做错,这将是会最终给系统带来极大损害的一部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间的接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢? 然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。 3.2.2 天气预报需求分析 这款天气预报的主要内容是一个地区或城市未来一段时期内的阴晴雨雪、最高最低气温、风向和风力及特殊的灾害性天气。就中国而言,气象台准确预报寒潮、台风、暴雨等自然灾害出现的位置和强度,就可以直接为工农业生产和群众生活服务。随着生产力的发展和科学技术的进步,人类活动范围空前扩大,对大自然的影响也越来越大,因而天气预报就成为现代社会不可缺少的重要信息。 开发这款天气软件是为了让更多的人了解天气状况,为大家出行时能提供便利的天气状况,根据用户的使用舒适的角度开发,基于用户的意见开发的一款天气软件。为用户提供了准确的天气信息。 3.3 本章小结 本章主要介绍了一下开发背景和开发需求,因为现在科技的发达,手机变的非常智能,不仅仅是手机上可以使用这款软件,只要合适与 Android2.2以上系统的都适用,从天气预报中我们可以看到当天的信息,这样方便用户的出行,给用户带来了比较优秀的天气信息等等。 第4章 项目功能描述 4.1 系统主要功能 黑屋天气要完成在android手机上实现天气的即时预报(约30分钟更新一次)。所涉及的功能有: 先启动程序后进入帮助界面然后是滑动界面,然后进入登陆界面会提示您(第一次需要注册,如果注册过请直接登录)可以进行设置城市页面,设置城市后进入主界面,主界面包括当天的天气的详细信息,可以通过图片和文字显示当前和未来2天的天气状况,包括温度、湿度、风向和雨雪情况等。使用效果图实现与相应天气的结合。本软件获取的中国气象网的天气信息,所以说很有权威性和准确性。 4.2 项目工程结构图 4.2.1 项目工程 下面是项目的工程构图: com.blackhouse.weahter.welcome包下包括了welcome.java类来显示开题动画,FirstAct.java、SecondAct.java、ThirdAct.java、ViewPagerAct.java类用来显示可滑动的帮助界面,LogoinActivity.java类用来显示登录界面、Registe.java类用来显示注册界面。 com.blackhouse.weather.app包下中MainActivity.java类是程序的主程序主界面上显示的有未来两天的天气和当天的天气,SetCityActivity.java类获得城市信息,WeatherWidget.java获得天气情况。 p包下GPSListAdapter.java类用于显示GPS自动搜索定位的适配器, MyListAdapter.java类自定义的可伸缩性列表的适配器。 com.blackhouse.weather.dao包下DBHelper.java类访问数据库,HandlTask.java类异步任务,MyService.java处理程序的服务,TaskThread.java类多线。 com.blackhouse.weather.utils包下的CityInfo.java类是获取城市的信息工具类,LocationXMLParser.java类通过解析XML来得到解细的地址信息,WeaterInfoParser.java类解析从网上获取的天气信息的工具类,WebAccessTools.java类网站访问工具类,用于Android的网络访问。如图4-1所示: 如图4-1项目工程结构图 4.3 XML和JSON详情 4.3.1 XML解析 所谓的XML,就是eXtensible Markup Language,翻译成中文就是“可扩展标识语言”,在国内很多人理解XML为html的简单扩展,这实际上是一种误解。尽管XML同html关系非常密切[7]。 XML是一种通用的数据格式从低级的角度看,xml是一种简单的数据格式,是纯100%的ASCII文本,而ASCII的抗破坏能力是很强的。不象压缩数据和java对象,只要破坏一个数据文件数据就不可阅读。从高级的角度看,是一种自描述语言。 XML可利用于数据交换主要是因为XML表示的信息独立于平台的,这里的平台即可以理解为不同的应用程序也可以理解为不同的操作系统;它描述了一种规范,利用它Microsoft的word文档可以和Adobe 的Acrobat交换信息,可以和数据库交换信息。 XML表示的结构化数据。对于大型复杂的文档,xml 是一种理想语言,不仅允许指定文档中的词汇,还允许指定元素之间的关系。比如可以规定一个author元素必须有一个name子元素。可以规定企业的业务必须有包括什么子业务。 XML文档。 XML文档有DTD和XML文本组成,所谓DTD(Document Type Definition ),简单的说就是一组标记符的语法规则.,表明XML文本是怎么样组织的,比如DTD可以表示一个<book>必须有一个子标记<author>, 可以有或者没有子标记<pages>等等。当然一个简单的XML文本可以没有DTD。下面是一个简单的xml文本。<? Xml version=”1.0” standalone=”yes”><book>haha</book>其中以?开始并结尾的是进程说明。Standalone表示外围设备。这里外围设备可以理解为该XML文本没有应用其他的文件。因为XML文件可以外部应用DTD等外部数据。 SAX,全称Simple API for XML,既是一种接口,也是一种软件包。它是一种XML解析的替代方法。SAX不同于DOM解析,它逐行扫描文档,一边扫描一边解析。由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档的解析是个巨大优势。 DOM即Document Object Model,它把XML文档的内容实现为一个对象模型,简单的说就是应用程序如何访问XML文档,W3C的DOMLevel1 定义了如何实现属性、方法、事件等[9]。 PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器,Android官方推荐开发者们使用Pull解析技术。Pull解析技术是第三方开发的开源技术,它同样可以应用于JavaSE开发。 几种解析技术的比较与总结。对于Android的移动设备而言,因为设备的资源比较宝贵,内存是有限的,所以我们需要选择适合的技术来解析XML,这样有利于提高访问的速度。 DOM在处理XML文件时,将XML文件解析成树状结构并放入内存中进行处理。当XML文件较小时,我们可以选DOM,因为它简单、直观。 SAX则是以事件作为解析XML文件的模式,它将XML文件转化成一系列的事件,由不同的事件处理器来决定如何处理。XML文件较大时,选择SAX技术是比较合理的。虽然代码量有些大,但是它不需要将所有的XML文件加载到内存中。这样对于有限的Android内存更有效,而且Android提供了一种传统的SAX使用方法以及一个便捷的SAX包装器。使用Android.util.Xml类,从示例中可以看出,会比使用 SAX来得简单。 PULL解析并未像SAX解析那样监听元素的结束,而是在开始处完成了大部分处理。这有利于提早读取XML文件,可以极大的减少解析时间,这种优化对于连接速度较漫的移动设备而言尤为重要。对于XML文档较大但只需要文档的一部分时,PULL解析器则是更为有效的方法。 4.3.2 JSON解析 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集[10]。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速度快)。 1.可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。 2.可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML可以扩展而JSON却不能扩展的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。 3.编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的XML文档和JSON字符串,不过,XML文档要多很多结构上的字符。 4.3.3 XML的解析方式有两种 一是通过文档模型解析,也就是通过父标签索引出一组标记。例如:xmlData.getElementsByTagName("tagName"),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装[11]。 另外一种方法是遍历节点(document 以及childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。 凡是这样可扩展的结构数据解析起来一定都很困难。 JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。如果你是纯粹的前台开发人员,一定会非常喜欢JSON。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟XML才是真正的结构化标记语言,用于进行数据传递。而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。但是这样也不影响众多前台开发人员选择JSON。因为json.js中的toJSONString()就可以看到JSON的字符串结构。当然不是使用这个字符串,这样仍旧是噩梦。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON[12]。 本软件使用JsonObject和JsonArray实现针对Json串的解析,这里我们解析的是中国天气网的天气。在天气预报程序设计中JSON解析代码如下: String info =new WebAccessTools(context).getWebContent(str.toString()); JSONObjectjson=newJSONObject(info).getJSONObject("weatherinfo"); TextView tempText = null; ImageView imageView=null; int weather_icon = 0; //建立一个缓存天气的文件 SharedPreferences.Editor editor = getSharedPreferences(STORE_WEATHER, MODE_PRIVATE).edit(); //得到城市 info=json.getString("city"); tempText=(TextView)findViewById(R.id.cityField);- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 android 平台 天气预报 软件 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文