ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:26.03KB ,
资源ID:28171889      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28171889.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android智能手机天气预报系统设计及实现.docx)为本站会员(zf)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android智能手机天气预报系统设计及实现.docx

1、Android智能手机天气预报系统设计及实现论文导读:系统是Google公司开发的一个开源手机操作系统。智能手机的应用 软件及其需要的服务将有很大发展前景。其基本功能是当用户运行天气预报系统 程序时。关键词:Android ,智能手机,天气预报系统,软件设计0引言为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的 办法就是将应用系统的功能拓展到手机终端,让手机通过移动网和互联网访问 Web网站并处理各项业务。因此,智能手机的应用软件及其需要的服务将有很 大发展前景。Android系统是Google公司开发的一个开源手机操作系统,它包 括了操作系统、用户界面和应用程序,即智能手机工

2、作所需的全部软件。Android 的最大特点是它的开放性体系架构,不仅具有非常好的开发、调试环境,而且还支 持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能和强大的浏览 器1,而且已有许多比较成熟的应用案例2。本文就在分析讨论Android手机软件开发技术原理的基础上,拟讨论提出1 Android应用程序设计原理对于一Android 应用程序,通常由 ActMty、Intent Receiver、Service、 Content Provider四种功能组件构成。但是,并不是每一Android应用程序都 需要这四种功能组件,而是使用上述四种功能组件的某些组合。1.1 Activity

3、Activities是最基本的Android应用程序组件。在应用程序中,一个 Activities通常就是一个单独的屏幕,大多数应用由多个屏幕显示组成。每一个 ActMties都被实现为一H虫立的类,并且从ActMties基类中继承而来Activities 类将会显示由视图控件组成的用户接口,并对事件做出响应。Android使用Intent 这个特殊类,实现在屏幕与屏幕之间移动。通过解析各种Intent ,从一个屏幕导 航到另一个屏幕是很简单的。当向前导航时,activity将会调用 startActivity(Intent mylntent)方法。然后,系统会在所有安装的应用程序中定义 的I

4、ntentFilter中查找,找到最匹配mylntent的Intent对应的activityo新的 activity接收到mylntent的通知后,开始运行。当startActivity方法被调用时 将触发解析mylntent的动作,这个机制具有两点优势:一是能够重复利用从其 它组件中以Intent形式产生的一个请求;二是可以在任何时候被一个具有相同 IntentFilter 的新 Activity 取代。1.2 IntentReceiver通过IntentReceiver实现应用能够对一外部的事件做出响应论文网, Intent Receiver在AndroidManifest.xml中注册,

5、也可以在代码中使用 Context.registerReceiver。进行注册。当一Intent Receiver 被触发时,应用 不必对请求调用IntentReceiver ,系统会在需要的时候启动应用。各种应用还可 以通过使用Context.broadcastlntent。将它们自己的Intent Receiver广播给其它 应用程序。1.3 Service一个Service是一段长生命周期的、没有用户界面的程序。例如媒体播放 器这个ActMty会使用Context.startService。来启动一Service ,从而可以在 后台保持音乐的播放。同时,系统也将保持这个Service 一

6、直执行,直到这个 Service运行结束。通过使用Context.bindService()方法连接到一Service上 (如果这个Service还没有运行将启动它卜当连接到一Service之后,还可 以Service提供的接口与它进行通信。就媒体播放器来说,还可以进行暂停、重 播等操作。1.4 Content ProviderAndroid应用程序能够将它们的数据保存到文件、SQL数据库中,甚至是 任何有效的设备中。Content Provider实现了应用数据与其它的应用程序的共 享。一个Contentprovider类实现一组标准的方法,从而能够让其它的应用程序 保存或读取此Conten

7、tprovider处理的各种数据类型。数据是应用程序的核心。 在Android中,默认使用SQLite作为系统数据库,但在Android中,使用方 法略有不同。在Android中每一个应用程序都运行在各自的进程中,当应用程 序需要访问其他应用程序的数据时论文网,需要数据在不同的虚拟机之间传递, 这样的情况操作起来可能会有些困难(正常情况下,不能读取其他应用程序的数 据库文件),Content Provider正是用来解决在不同的应用包之间共享数据的工具。2天气实况预报系统的具体实现基于Android平台的智能手机访问服务器的主要内容是其数据交互方法3。基于Android操作系统的天气实况预报系

8、统设计的核心是通过调用通信协议 SOAP(SimpleObject Access Protocol)的接口,从 Web Service 提供商中提取天 气预报的数据信息,为客户端服务。其基本功能是当用户运行天气预报系统程序 时,在手机屏幕上显示出中国的城市名称,用户单击任意一个城市名,可获得该 城市的天气实况预报信息;用户也可以输入城市名称,点击查询获得天气预报信 息。CitiesWeatherForecast H程目录结构及其源代码文件如图1所示。图 1 CitiesWeatherForecast 工程目录结构2.1 Android平台的用户界面实现Android提供的可变化的用户界面(UI

9、 )开发模块是基于XML文件的。这 些XML文件放在工程/res/layout下面。这个目录可包含所有应用程序所需的非 码部分,比如图片、字符串、xml文件。当要使用到这些资源时,在代码目录中 打开R.java文件即可。在XML文件里编辑代码进行界面的现实,实现起来不仅 方便,使用时也会更加灵活。在Android程序设计中要用到一些基本的Android UI元素,通过使用 Views, View Groups和layouts为Activity创建功能的、富有直观力的Ulo通 常是使用Android SDK中提供的一些控件,进行布局、扩展和定制这些控件论 文网,并使用View Groups去组合

10、Views ,创建由相互作用的子控件组成的原 子的、重复利用的UI元素,也可以创建自己的Views ,来实现显示数据和与用 户交互的新途径。或使用一些继承自View Group的Layout管理器来组织Android UI中的单个元素到屏幕上。在一个Android应用中,用户界面由View和View Group对象构建。View 与ViewGroup有很多种类,而它们都是View类的子类。View对象是Android 平台中用户界面体现的基础单位。View类是它称为widgets(工具)的子类的基 础,它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。ViewGroup 类同样为其被称为

11、Layouts (布局)的子类奠定了基础,它们提供了诸如流式布 局、表格布局以及相对布局之类的布局架构。View对象是一个数据体,它的属性存储了用于屏幕上一块矩形区域的布局 参数及内容。并负责这块它所辖的这个矩形区域之中所有测量、布局、焦点转换、 卷动以及按键/触摸手势的处理。作为一个用户界面对象,View同时也担任着用 户交互关键点以及交互事件接受者的角色。由于天气实况预报系统程序功能比较 单一,其UI也相对比较简单,只要有一个输入框、一个查询按钮以及一个显示 所有中国城市信息的列表即可。首先,在Package Explorer窗口中展开Layout 新建.xml文件,用来对窗口界面进行布局

12、,主要有系统运行的主配置文件 main.xml 和 result.xmloLayout是一类特殊的ViewGroup控件,它们本身没有任何可显示内容, 形如透明的玻璃盒子论文网,存在的唯一原因就是其中的内部结构,能够更好的 摆放它的子控件。比如线性的Layout、LinearLayout。放入这个Layout的子控 件,会按水平或垂直方向排列,一个挨着一个按顺序排列下去。TableLayout , 可以将子控件按照表格的形式,一枚枚放置好。RelativeLayout更灵活,可以 设定各个控件之间的对齐和排列关系,适合定制复杂的界面。有了 Layout的存 在,控件和控件之间不再割裂的存在,而

13、是更有机的结合在一起,设定起来也更 为方便。在本实例中的main.xml文件主要是添加一些界面的布局设置,例如如下代码:LinearLayoutandroid:orientation=horizontalandroid:layout_width=fill_parentandroid:layout_ height=wrap_contentEditText android:id=+id/cityTextandroid:layout_width=wrap_contentandroid:layout_ height=wrap_contentandroid:text=string/cityText/Bu

14、tton android:id=+id/searchBtnandroid:layout_width=wrap_contentandroid:layout_ height=wrap_contentandroid:text=string/searchBtn /LinearLayout上述代码就是一线性Layout。放入这个Layout的子控件,会按水平或 垂直方向排列,一个挨着一个按顺序排列下去。同时还定义了一个EditText和 Button ,并且设置了相关的参数。在Android中,控件最重要的大小属性是 width/height论文网,开发者可以明确指明控件的大小,可以设定成为fiLpar

15、ent 和wrap_content ,控件的宽、高还有在屏幕中的显示位置等等。另外,还可以 设置相应的文本信息,在此可通过android:text=string/dtyText/进行弓I用,而 string文件存放在工程的res/values中。同理,按照这种方法,可以依据需要定义 相应的布局控件,譬如定义用来呈现天气实况信息的UI等。2.2创建中国城市 列表数据根据天气预报系统功能需求分析,系统启动后,应在主界面上应呈现出中 国国内所有城市的列表数据,因此需要创建中国城市列表数据,包括获取、解析 城市列表数据,并在用户界面上呈现出来。其中重要的是手机终端从Web服务 器获取了所有类型的数据之

16、后,如何将这些数据进一步交给Android手机终端 View组件4,在手机界面上显不给用户。(1 )获取城市列表数据由于Android没有提供Web Service的组件库,但可以通过修改在PC或 J2ME上使用的开源Web ServiceJava库作为Android Web Service库使用。 kSOAP2(http:)就是一在智能手机上的 SOAP Web Service客户端包论文网,可用于资源受限制的Java环境如Applets或J2ME应 用程序。 在 Google Code 上有一个项 目 ksoap2-android( Rlffl 在 Android 平 台上实现轻量级的SO

17、AP库,即使用ksoap2-android的API来调用远端Web Service 的服务。因此需要在 CitiesWeatherForecast.java 的 onCreate。中进行 数据获取的初始化工作,这可通过定义一个方法publicListString getAIQtiesNames()来获得中国城市名称列表。也就是说,采用它提供的获得全 球各个国家城市的方法 GetCitiesByCountry ,通过 上的 Web Service 来提供天气 预报服务。譬如,通过 Constant.java 中的 public class Constant。,设置 SOAPAction要调用的方

18、法名、命名空间以及Web Service URL值。其源代码为: public static final String SOAP_ACTION=http:/www.webserviceX.NET/GetCitiesByCountry;public static final String METHOD_NAME =GetCitiesByCountry;public static final String SOAP_ACTION2=http:/www.webserviceX.NET/GetWeather;public static final String METHOD_NAME2 =GetWea

19、ther;public static final String NAMESPACE =http:/www.webserviceX.NET;public static final String URL=然后在 WebServiceCaller.java 中实例化一个 SoapSerializationEnvelope对象, 设置 SoapObject 的命名 空间、 方法名 、 参数等; 并通过实例化一个AndroidHttpTransport 对象来调用 Web Service, 并获得 xml 字符串数据。 的代码段如下:AndroidHttpTransport androidHttpTra

20、nsport = newAndroidHttpTransport(Constant.URL);try androidHttpTransport.call(soapAction,envelope);Object result= envelope.getResponse();xmlStr =result.toString();catch(Exception e) e.printStackTrace();(2 )解析数据列表Android操作系统对xml字符串数据的操作功能很强,提供了 dom、sax以及 xmlpul3 种方式,AndroidSDK 提供了 android.sax 包以方便 SAX

21、Handler 的开发,可用来解析xml结果字符串。在本设计实例的 CitiesWeatherForecast.java 文件中 解析 xml 数据时,先通过 RootElement root =new RootElement(NewDataSet)获得xml数据的根节点;然后再寻找其子节点 直到找到City子节点,并设置一监听器setEndTextElementListener。来获得 City子节点的值;最后使用org.xml.sax的SAXParser来解析xml数据,把数据 存入Liststring并返回:SAXParserFactory factory = SAXParserFact

22、ory.newInstance();SAXParser parser = factory.newSAXParser();XMLReader xmlreader = parser.getXMLReader();xmlreader.setContentHandler(root.getContentHandler();InputSource is = new InputSource(newStringBufferInputStream(xmlStr);xmlreader.parse(is);( 3) 在 UI 上呈现城市列表数据当获得 ListString 类型的数据之后论文网, 就可以把它绑定到

23、main.xml 定 的 ListView 组 件 上 , 然 后 使 用 ListActivity 呈 现 列 表 数 据 。 在CitiesWeatherForecast.java 中的代码段为:ListString cityList = getAllCitiesNames();setListAdapter(new ArrayAdapterString(this,android.R.layout.simple_list_item_1,cityList);即使用方法 setListAdapter。把一ListActivity 填充进去。2.3城市天气实况预报系统运行城市天气实况预报系统的相关

24、编码完成后对其测试运行结果如下。在 Eclipse 的 Package Explorer 窗 口中右键选择 CitiesWeatherForecast 工程名, 在弹出的窗口中选择Run AsAndroid Application安装该应用程序到Android模 拟器并启动它。然后单击所要查询的城市名称列表项,稍等片刻便会显示出该城 市的天气实况信息。也可以在文本框中直接输入所要查询的城市名称,单击 Search同样会获得相应城市的天气预报信息。3结束语Android平台具有极大的开放性和兼容性,并且本身大量使用开源代码库, 深为开发人员所喜爱。Android智能手机应用程序开发涉及它的整个体

25、系结构, 是一项非常复杂的工程。本文在介绍基于Android平台的应用程序设计原理的基 础上,主要讨论提出了 Android用户界面设计、获取并解析列表数据的一种方 法,给出了在用户界面上呈现数据的原理与设计过程;最后通过模拟器实现了应 用程序的运行结果。当然,基于Android平台的开发技术还需要进一步完善,需 要在日后的工作中不断探索、研究,以形成实用的城市天气实况预报系统。随着 Google公司大力推广Android平台和Android智能手机的推出,该系统会有很 好的应用发展前景。参考文献1张波,高朝勤,杨选,等译.Burnette Ed. Android基础教程M.北京:人民邮电出版社,2009.2张利国代闻龚海平编著.Android移动开发案例详解M.北京:人民邮电出版 社,2010.3刘平。Android手机访问服务器的一种数据交互方法J.电子设计工程.2010 年 9 月.VoL18,No94王向辉,张国印,陈洁.Android应用程序开发M.北京:清华大学出版社, 2010.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1