《基于Android平台的天气查询系统的设计与开发安卓天气预报0629438.doc》由会员分享,可在线阅读,更多相关《基于Android平台的天气查询系统的设计与开发安卓天气预报0629438.doc(57页珍藏版)》请在三一办公上搜索。
1、 本科毕业论文(设计) 基于Android平台的天气查询系统的设计与开发毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设
2、计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解
3、学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)
4、2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文
5、)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它毕业论文(设计)开题报告论文(设计)题目基于Android平台的天气查询系统的设计与开发姓名系别信息技术系专业班级ZB计131学号1.选题目的和意义:该软件的设计目的是实现基于Android平台的天气查询系统的设计与开发,实现一个将各种天气查询服务功能集成起来的信息系统,既可以节省时间,又可以实现个性化的服务,减少不必要的等待和冗余的信息。研究意义:天气预报是一种非常实用的信息服务,为了让智能手机用户能够随时随地查询互联网所提供的服务,让手机用户能够通过移动网和互联网访问web网站并处理各种业务,一种高效的方法就是将
6、应用系统的功能拓展到手机终端。Android手机是Google公司开发的一个开源手机操作系统,它包含了用户界面,操作系统和应用程序,即智能手机工作所需的全部软件。Android作为现在主流的智能手机之一,自然也需要这方面的软件。Android天气预报软件的开发可以进一步扩大天气信息的覆盖面,以便提前预防,把气象灾害降低到最低,使得广大公众能够在第一时间方便且快捷地获取最新的天气预报信息。天气预报关系到人们的日常生活,如告知温暖,方便出行等。此外,对未来天气的预测还可以帮助人们进行农作物的浇灌、施肥、收割等工作。同时也可以强化天气公共服务的职能,改善公共服务手段、完善公共服务体系、增加公共服务产
7、品、保证公共服务质量。2.本选题在国内外的研究状况及发展趋势:国外:近些年来,世界范围的气候异常, 使人类面临日益严重的粮食、能源和水资源危机,因此社会对气象工作提出了更为迫切的要求。与此同时,遥感技术,电子计算机等最新科学技术进入气象业务,形成了新的大气探测技术,快速通信和计算处理,从而获取更多的大气信息,推动了气象业务的发展。国外气象业务发展的一个重要趋势是日益趋向自动化,即把自动化观测、数据处理、通信及客观分析、预报制作和发布结合成一个完整的自动化系统。许多先进技术迅速地应用于气象业务中,可供天气预报用的实时和非实时资料的数量急增,这就要求利用自动化的高速通信技术和信息处理技术处理这些资
8、料。为适应上述发展,一些发达国家正逐步改进各自的气象通信体制,加速气象通信现代化。国内:随着人们生活水平的普遍提高,人们对生活质量的要求也越来越高,然而外部自然气候的变化却不容乐观。不管是外出旅行还是农业生产等,气候变化情况一直都引起人们的普遍关注,人们迫切的需要随时随地的掌握准确的天气预报信息。目前,移动终端上的查询系统的应用迎来了一个崭新的时代,手机的普及、功能的日益强大以及互联网的迅猛发展为基于手机系统开发天气预报查询软件提供了可能。比如,如果有雨,就建议出门带伞;如果温度高于某值就建议防晒等。基于手机的天气预报查询系统软件可以使用户方便对各地的天气情况的实时掌握,极大的方便了用户的行程
9、安排或其他情况,避免了不必要的麻烦,且界面美观,操作简单,具有很强的实用性。随着移动设备性能的不断提高,无线网络从2G提高到3G甚至4G,天气预报在科技不断进步的推动下也需要朝着信息多元化演变,应该从单纯的文字信息逐渐向文字图像视频等多种数据融合转变。形成了一个集中、统一、数字化的天气预报系统,实现智能终端高效、及时、稳定的信息交互。3.主要研究内容:Android平台天气预报系统是基于Android手机平台,基于Java,开发出针对使用Android平台的手机天气预报系统的应用软件。为了让智能手机用户能够随时随地查询互联网所提供的服务,让手机能通过移动网和互联网访问Web网站并处理各项业务,
10、是一种高效的办法就是将应用系统的功能拓展到手机终端。Android系统是Google公司开发的一个开源手机操作系统,它包括了用户界面、操作系统和应用程序,即智能手机工作所需的全部应用软件。Android最大特点是它的开放性体系架构,不仅具有非常好的调试、环境开发,而且还具有各种可扩展的设施,包括丰富的多媒体支持功能和图形组件强大的浏览器。此App应具备以下主要功能:1.注册用户、用户登录;2.天气预报模块:今天及最近45天的天气状态;并将天气信息以曲线图的方式显示;3.生活模块包含:穿衣/雨具/紫外线/洗车等;4.我模块包含:城市管理/通知提醒/意见反馈/给我们评分/关于等;4.完成论文的条件
11、、方法及措施,包括实验设计、调研计划、资料收集、参考文献等内容。(1)完成论文的条件软件环境:window7eclipseandroid SDKandroid ADT 可通过网络或者图书馆查阅大量相关文献资料充分利用下载一些相关的软件,进行软件功能体验,模仿学习(2)方法及措施:实验设计天气预报API是一个针对当前天气编写的一个API调用接口,通过此接口可以获取一个城市的温度、气候、紫外线等信息,从而应用到自己编写的程序中。调研计划第1-2周:毕业实习。第3周:完成实习报告。第4-5周:查阅资料,完成外文翻译和文献综述。提出设计方案,完成开题报告。第6-7周:完成软件界面模块、功能模块部分代码
12、实现。第8-9周:完成模块的整合和软件功能测试。第10周:整理资料、撰写毕业论文,完善软件功能。第11-12周:根据导师要求,完善论文,系统验收,提交论文。第13周:毕业设计答辩、毕业设计修改。资料收集在网上收集大量的材料,主要在百度百科、谷歌、百度文库、百度贴吧、百度问答等等,收集相关资料。参考文献1李刚.疯狂Android讲义M.北京:电子工业出版社,2011.2王向辉,张国印,沈洁.Android应用程序开发M.清华大学出版社,2010.33景保玉.2010中国移动应用开发现状与趋势大调查,2011.01.124MichaelJ.Young.轻松搞定XML林嘉胜译M2001.01.085
13、王向辉,张国印,沈洁.Android应用程序开发M.清华大学出版社,2010.36景保玉.2010中国移动应用开发现状与趋势大调查,2011.01.12.7(美)CayS.Horstmann;GaryCornell.Java核心技术M.机械工业出版社,20088(美)EdBurnette.Android基础教程.北京:人民邮电出版社,20109(英)Herbert Schildt Java参考大全(J2SE 5 Edition)M,清华大学出版社10郭志宏. Android应用开发详解M.电子工业出版社. 2010.11杨丰盛.Android应用开发揭秘M. 机械工业出版社. 2010.12靳
14、岩,姚尚朗. Google Android开发入门与实践M.人民邮电出版社. 2009.13美EdBurnette.Android基础教程.北京:人民邮电出版社,201014吴亚峰.Android开发设计N.计算机报,2011-03-0515郝玉龙.Android开发讲议J.清华学报,2011-06-04,2011(6)。16杨海波.Android手机系统讲座J.电脑报2011-06-01,2011(6)5.指导教师意见及建议:签字: 年 月 日摘要天气预报是非常实用的信息服务,随着移动设备的性能不断提高,天气预报在科技不断进步的推动下,已实现了集中、统一、数字化的服务。随着人们日常生活水平的
15、提高,迫切需要高效、及时、稳定的天气高速交互平台。因此,实现一个天气预报服务功能的信息系统就显得十分必要。即可以节省时间,又可以实现个性化的服务,减少不必要的等待和繁重的信息,方便用户及时了解最新的天气信息。本文介绍了通过访问聚合数据全国天气预报的数据接口,使用HttpClient进行Get方式通信,建立网络连接,使用HttpGet方法读取数据,并且通过HttpResponse获取Entity返回值。并且解析出来获取实时天气,未来45天的天气预报及生活信息。用户可以选择城市来获得包括风力、风向、紫外线强度等的天气信息。极大的方便了用户的行程安排或其他情况,避免了不必要的麻烦,且界面美观,操作简
16、单,具有很强的实用性。关键字:数据接口;界面;实时天气预报;AndroidAbstractThe weather forecast is very practical information service, with the continuous improvement of the performance of mobile devices, weather forecast under the impetus of the continuous progress of science and technology, has realized the centralized and uni
17、fied, digital services. With the improvement of peoples daily living standards, it is urgent to need efficient, timely and stable weather interactive platform. Therefore, it is necessary to realize the information system of a weather forecast service function. That saves time, but also can achieve p
18、ersonalized service, reduce unnecessary waiting and heavy information, convenient users to understand the latest weather information.By visiting the polymerization data the weather data interface, using httpclient to get communication mode, to establish a network connection, use httpget to read the
19、data and through the httpresponse acquiring entity return value, is introduced in this paper. And resolved to get real-time weather, weather forecasts and life information of the next 45 days. Users can choose the city to get the weather information including wind, wind direction, UV intensity and s
20、o on. Greatly convenient for the user itinerary or other circumstances, to avoid unnecessary trouble, and the interface is beautiful, simple operation, with strong practicality.Keywords: API; UI; Real-time weather forecast; Android 目录摘要IAbstractII第1章 引言11.1 研究背景11.2 国内外的研究状况及发展趋势11.3 系统分析及其主要内容21.4
21、论文组织结构2第2章 系统实现所涉及的技术32.1 Android系统概述32.2 Eclipse介绍32.3 Android系统框架42.4 Android四大组件42.5 用户界面62.6 Fragment72.7 网络编程之使用HttpClient进行Get方式通信7第3章 开发环境配置93.1 Android开发框架93.2 开发所需软件123.2.1 Android开发环境配置133.2.2 Eclipse的设置14第4章 系统总体分析与模型设计154.1 系统的总体结构154.2 功能分析164.2.1 天气模块功能分析164.2.2 生活模块功能分析174.2.3 我模块功能分析
22、174.3 系统流程图18第5章 详细设计205.1 新建工程205.2 Android UI界面的实现215.3 登陆注册模块的实现225.4 界面切换功能实现235.5 天气模块的实现235.5.1 天气信息245.5.2 温度曲线图的画法255.5.3 下拉刷新255.6 生活模块的实现255.7 我模块的实现265.7.1 城市管理的功能实现265.7.2 通知提醒功能实现27第6章 系统测试286.1 测试目的286.2 测试环境296.3 测试结果30致谢32参考文献33附 录34附录A: 主要源程序34附录B: 软件使用说明书45附录C: 光盘46 XI中原工学院信息商务学院毕业
23、设计(论文)第1章 引言许多先进技术迅速地应用于气象业务中,可供天气预报用的实时和非实时资料急增,这就要求利用自动化的高速通信技术和信息处理技术处理这些资料。为适应上述发展,正逐步改进气象通信体制,加速气象通信现代化。现在人们生活水平的提高,对生活质量的要求也越来越高,然而外部自然气候的变化却不容乐观。不管是外出旅行还是农业生产等,气候变化情况一直都引起人们的普遍关注,人们迫切的需要随时随地的掌握准确的天气预报信息。比如,如果有雨,就建议出门带伞;如果温度高于某值就建议防晒等。1.1 研究背景Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电
24、脑,由Google公司和开放手机联盟领导及开发。在如今这个智能手机系统群雄纷争的时候,Android采用Linux内核,开放手机联盟成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。2013年09月24日Android迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。1.2 国内外的研究状况及发展趋势近些年来,世界范围的气候异常, 使人类面临日益严重的粮食、能源和水资源危机,因此社会对气象
25、工作提出了更为迫切的要求。与此同时,遥感技术,电子计算机等最新科学技术进入气象业务,形成了新的大气探测技术,快速通信和计算处理,从而获取更多的大气信息,推动了气象业务的发展。国外气象业务发展的一个重要趋势是日益趋向自动化,即把自动化观测、数据处理、通信及客观分析、预报制作和发布结合成一个完整的自动化系统。移动设备性能的不断提高,无线网络从2G提高到3G甚至4G,天气预报在科技不断进步的推动下也需要朝着信息多元化演变,应该从单纯的文字信息逐渐向文字图像视频等多种数据融合转变。形成了一个集中、统一、数字化的天气预报系统,实现智能终端高效、及时、稳定的信息交互。1.3 系统分析及其主要内容Andro
26、id平台的天气预报软件可以进一步扩大气象信息的覆盖面,让广大Android手机用户能够在第一时间获取最新的天气预报信息,以便提前预防,方便出行。同时,把气象灾害造成的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对经济社会发展的现实性作用,有巨大的实用价值。该技术在Android平台已经比较成熟,通过该软件的开发让我们更好的认识Android系统的工作原理。本软件是一个App 应用程序,启动程序后可以切换城市,通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。这些天气数据通过后台服务获取,后台服务可以按照一定时间间隔,从互联网上获取天气预报信息,并将天气信息解
27、析显示在手机界面上。从上面的描述中可以基本了解软件的功能需求:(1) 启动App应用程序注册登陆。(2) 显示天气模块:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。(3) 显示生活模块:通过文字图片动画显示当前的天气情况,包括城市当前天气、温度、风向、风速、湿度;同时显示今后5天的天气情况。(4) 我模块:城市管理,通知提醒,意见反馈,关于。1.4 论文组织结构本论文讨论的是基于android平台的天气查询系统的设计与开发,所以本文的组织结构就是围绕着基于基于android平台的天气查询系统的设计与开发的整个过程来进行。第一章 引言。第二章 系统实现
28、所涉及的技术。 第三章 安卓开发环境配置。第四章 系统总体分析与模型设计。第五章 详细设计,对界面模块设计、数据解析、曲线图的画法进行代码设计。 第六章 测试,对设计功能进行了测试。 文章最后是总结、致谢与参考文献等。第2章 系统实现所涉及的技术2.1 Android系统概述Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android一词最早出现于法国作家利尔亚当(Auguste Villiers de lIsle-Adam)在1886年发表的科幻小说未来夏娃(
29、Lve future)中。他将外表像人的机器起名为Android。Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,1于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。2012年7月美国科技
30、博客网站BusinessInsider评选出二十一世纪十款最重要电子产品,Android操作系统榜上有名。2.2 Eclipse介绍Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和、Eclipse技术项目三个项目组成,具体
31、包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。2.3 Android系统框架Android系统的软件开发,语言基础是java语言,通过控件的设置以及方法调用,实现一系列的功能。Android系统提供给应用程序开发者的只是一个框架,
32、在该平台下开发应用程序必须要遵守这个框架原则。我们开发的应用程序其实就是在这个框架上进行拓展,下面介绍一下android这个框架所提供的功能。Android.app:提供最上层的程序模型和运行环境。Android.content:包含对设备上的数据进行访问和发布的类。Android.database:Android系统内置一个轻量级的SQLite数据库。Android.graphics:底层的图形库,包含颜色过滤,画布,矩形,点,可以用来将它们直接绘制到屏幕上。A: 提供用来帮助访问网络的类。Android.location:定位以及与定位有关的一些类。Android.util:涉及到一些实用
33、性的方法,例如对时间和日期进行操作。Android.media: 提供一些管理多种视频,音频的媒体接口。Android.os:提供了系统服务,IPC机制和消息传输。Android.opngl:提供了OpenGL的工具。Android.provider:提供了访问Android中的内容提供者的类。Android.telephony:提供用来与拨打电话相关的API交互的类。Android.view: 提供最基本的用户界面接口框架。Addroid.webkit:提供用来调用默认浏览器的接口。Android.widget包含各种UI元素,可以在应用程序的布局中使用。2.4 Android四大组件一个A
34、ndroid 应用程序,通常由Activity、Intent Receiver、Service、CONtent Provider 四种功能组件构成。但是,并不是每一个Android 应用程序都需要用到这四种功能组件,而是只需上述四种功能组件的某些组合。(1) ActivityActivity是最基本的Android 应用程序组件。大多数应用由多个屏幕组成,一个Activity 通常则是一个单独的屏幕。每一个Activity 都被实现为一个独立的类,并且从Activity 基类中继承而来。Activity 类将会显示由视图控件组成的用户接口,并对事件做出响应。Android 使用Intent 这
35、个特殊类,实现在屏幕与屏幕之间移动。通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,Activity 将会调用STartActivity(Intent myIntent)方法,然后,系统会在所有安装的应用程序中所定义的IntentFilter 中查找,找到最匹配myIntent的和Intent 对应的Activity.新的Activity 接收到myIntent 的通知后,开始运行。当startActivity 方法被调用时将触发解析myIntent 的动作。这个机制具有两点优势:一是能够重复利用从其他组件中以Intent 形式产生的一个请求;二是Activity
36、 可以在任何时候被一个具有相同IntentFilter 的新Activity 取代。Activity的生命周期在Android开发中,Activity是非常重要的。Activity主要负责创建和显示窗口,也可以把一个Activity理解成一个显示的屏幕;在Android的应用中不是仅有一个Activity,而是由很多个Activity存在。因其重要性,开发Android务必熟悉Activity生命周期。onCreateView:Activity初次创建时被调用,一般在这里创建view,初始化布局信息,将数据绑定到list以及设置监听器等。如果Activity首次创建,本方法将会调用onStar
37、t( );如果是停止后重新显示,则将调用onRestart( )。onStart:当Activity对用户即将课件的时候被调用onResume( )。onRestart:当Activity停止后重新显示的时候被调用,然后调用onStart( )。onPause:当系统要启动一个其他的Activity时调用(其他的Activity显示之前),这个方法使用来停止动画和其他占用CPU资源的事情,所以这这里应该保存那些持久数据,这些数据可以在onResume( )方法中读出。onStop:当另一个Activity恢复并遮盖住当前Activity,导致其对用户不再可见时调用,一个新的Activity启动
38、,其他Activity重新回到前景与用户交互时会重新调用onResume( ),如果Activity将退出则调用哦你D额story( )。onDestory:在当前Activity被销毁之前所调用的最后一个方法,当进程 终止前调用。(2) Intent ReceiverIntent Receiver 是实现的应用能够对一个外部的事件作出响应。Intent Receiver 在AndroidManifest.xml 中注册,也可以在代码中使用Context.registerReceiver( )进行注册。当一个IntentReceiver 被触发时,应用不必对请求调用 Intent Receiv
39、er,系统会在需要的时候启动应用。各种应用还可以通过使用Context.brOAdcastIntent( )将它们自己的Intent Receiver广播给其他应用程序。(3) ServiceService 是一段长生命周期的、没有用户界面的程序。例如媒体播放器这个Activity 会使用Context.startService( )来启动一个Service,从而可以在后台播放音乐。同时,系统也将保持这个Service 一直执行,直到Service 运行结束。系统可通过使用Context.bindService( )方法,连接到一个Service 上(如果这个Service 还没有运行将启动它
40、)。当连接到一个Service 之后,还可以利用Service 提供的接口与它通信。就媒体播放器来说,还可以进行暂停、重播等操作。 (4) Content ProviderContent Provider是Android 应用程序能够将它们的数据保存到文件、SQL 数据库,甚至是任何有效的设备中。Content Provider 实现了应用数据与其他的应用程序的共享。Content Provider 类实现一组标准的方法,能够让其他应用程序保存或读取此ContentProvider处理的各种类型数据。在Android 中,默认使用SQLite 作为系统数据库,但使用方法略有不同。Android
41、 中每一个应用程序都运行在各自的进程中,当访问其他应用程序的数据时,需要在不同的虚拟机之间传递数据,这样操作起来会有些困难(正常情况下,不能读取其他应用程序的数据库文件)。ContentProvider 正是解决不同的应用包共享数据的工具。2.5 用户界面Android系统的界面空间分为定制控件。定制空间是用户独立开发的空间,或者通过继承并修改系统空间后所产生的新空间,能够提供特殊的功能和显示需求。系统控件是Android系统中已经封装好的界面控件,而在代码中动态修改需要更新状态的界面元素。当然,用户也可以将所有的界面元素,无论在程序运行后是否需要修改其内容,都放在代码中进行定义和声明。很明显
42、这不是一种良好的界面设计模式,会给后期界面修改带来不必要的麻烦,是应用程序开发过程中最常见的功能控件。系统控件更有利于进行快速开发,同事能够使Android应用程序的界面保持一定的一致性。常见的系统控件包括TextView、EditView、Button、ImageButton、CheckButton、Spinner、ListView和Tablehost。界面布局(layout)是用户界面结构的描述,定义界面中所有的元素、结构和相互关系。一般生命Android程序的界面布局有两种方法,第一种是使用XML文件描述界面的布局,另一种是在程序运行时动态添加或修改界面布局。Android系统在生命界面
43、布局上提供了很好的灵活性,用户既可以独立使用任何一种声明布局的方式,也可以同时使用两种方式。一般情况下,使用XML文件来描述用户界的基本元素,而在代码中动态修改需要更新状态的界面元素。当然,用户也可以将所有的界面元素,无论在程序运行后是否需要修改其内容,都放在代码中进行定义和声明。很明显这不是一种良好的界面设计模式,会给后期界面修改带来不必要的麻烦,而且界面较多时,程序代码也会显示凌乱不堪。使用XML文件声明界面布局,能够更多地将程序的表现层和控制层分离,在修改界面时将不再需要更改程序的源代码。界面布局的种类:(1) 线性布局:线性布局(LinearLayout)是一种重要的界面布局,也是经常
44、使用的界面布局。在线性布局中,所有子元素都在垂直或水平方向按照顺序在界面上排序。(2) 框架布局: 框架布局(FrameLayout)是最简单的界面布局,用来存放一个元素的空白控件,且子元素的位置不能够制定的,只能够放置在空白空间的左上角。(3) 表格布局:(TableLayout)也是一种常用的界面布局,它将屏幕划分为表格,通过制定行和列可以将界面元素添加到表格中。(4) 相对布局:(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确定界面中所有元素的布局为止。(5) 绝对布局:(AbsoluteLayout)能通过指定界面元素的坐标文职,来确定用户界面的整体布局。2.6 FragmentFragment的主要目的在大屏幕设备上实现灵活的、动态的界面设计。例如,在Android的平板电脑上,因为屏幕有更多的空间来配置更多的组件,并且这些组件之间还会产生一定的数据交互。Fragment支持这种设计理论,开发人员不需要管理复杂的试图结构变化,而且把这些动态的管理交给Fragment和回退堆栈(back stack)完成,在进行界面设计时,只需要将界面布局按照功能和取于划分为不同的模块,每个模块设计成一个Fragment即可。Fragment具有和Activ