您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 构建 Android 手机 RSS 阅读器
构建Android手机RSS阅读器使用Android处理XML开始之前本教程介绍了如何在Android平台之上处理XML。要按照本教程构建样例应用程序,必须在开发计算机中安装和运行AndroidSDK。推荐使用Eclipse构建Android应用程序,但不作硬性要求。具备移动开发经验固然有帮助,但是Android应用程序开发要求具有Java™编程技能,这将有助于本教程的学习。关于本教程常用缩写词DOM:文档对象模型(DocumentObjectModel)GUI:图形用户界面(Graphicaluserinterface)HTTP:超文本传输协议(HyperTextTransportProtocol)RSS:真正简单的连锁(ReallySimpleSyndication)SAX:XML简单API(SimpleAPIforXML)SDK:软件开发套件(SoftwareDevelopmentKit)XML:可扩展标记语言(ExtensibleMarkupLanguage)Android的RSS阅读器为什么值得我们关注?XML又是如何融入其中的呢?首先,Android是一种在移动市场中迅速获得广泛关注的平台。甚至在配备了Android的消费型设备出现之前,许多开发人员就已纷纷投入到这一移动市场,希望为即将出现的、备受期待的Android式设备做好准备。诸如Android这样的富设备(Richdevice)要求提供内容。某些情况下,内容的表现形式为游戏或一个生产力应用程序。然而,除了移动电子邮件外,最能够驱动数据使用的内容是新闻和信息。这种内容可能看上去类似于与特定金融市场有关的新闻,或者是天气预报这种比较普遍的信息。对于周末想到海边度假的人,自然十分关心天气预报。于是,以一种简单、实用的方式从移动设备获取数据成为了摆在人们面前的一道难题。Android包含了WebKit.org浏览器引擎,这意味着它可以向移动用户交付高质量的浏览器体验。然而,对于一个小型屏幕和有限的输入设备,在多个Web站点中查找新闻和消息是非常乏味的事情。不要误会,自从出现WAP浏览器和有限的基于文本的信息以来,这一市场已经得到了长足的发展,然而,移动信息的价值在于:输入RSS提要时一眼就可以判断出它是否可用。RSS是“ReallySimpleSyndication”的缩写。实际上,RSS是一种分布感兴趣的信息的方便方法。RSS支持XML数据;数据包含完整信息源的简单摘要。如果对这些摘要该兴趣,用户可以进一步获取信息并获得全部内容。本教程将演示在构建AndroidRSS阅读器过程中涉及到的几个主要的XML处理步骤。本教程分为以下小节:RSS基础AndroidRSS阅读器应用程序架构使用SAX获取并解析XML数据使用Android呈现RSS数据回页首先决条件本教程需要结合使用几种技术。需要通过以下步骤获得所有这些工具。从下载Eclipse。要安装AndroidDeveloperTools(Eclipse插件),请按照Android文档“安装AndroidSDK”中的说明操作。在中下载AndroidSDK。AndroidSDK是一个不断发展的项目。撰写本教程时SDK的最新版本为m5-rc14。选择一个RSS提要。本教程使用developerWorksWeb站点中最受欢迎教程的提要。建立一个活动的InternetConnection来运行示例应用程序。完整的源代码可以从下载小节获得。本教程包含的源代码片段包括:AndroidManifest.xml片段:该文件是Android应用程序的应用程序部署描述符。RSSReader:该类实现主GUI并包含菜单处理代码。RSSFeed:该类含有一个经过解析的RSS提要,包含RSS通道信息和一组RSSItems。RSSHandler:该类实现SAX解析器处理程序,从而实现对XML流(Internet中的RSS提要)的解析并填充一个RSSFeed实例。RSSItem:该类表示解析XML流得到的一个RSS项。ShowDescription:这是一种行为(Activity),显示所选的RSSItem的摘要并包含可链接的文本,可以无缝启动Android浏览器来访问RSSItem中的可用链接。启用这一Activity将在伪同步调用中结合使用一个Intent和额外的Bundle。R.java:该文件表示应用程序使用的GUI标识符。术语构建一个AndroidRSS/XML应用程序需要XML、RSS和HTTP方面的知识,还需要了解Android平台的各个方面。了解下面的术语对于学习本教程大有裨益。要想了解关于这些主题的更多信息,请参见参考资料中的链接。Android:OpenHandsetAlliance的旗舰产品。这是一个针对手机等移动设备的开源操作环境。RSS:ReallySimpleSyndication是一种可以通过高效的方式发布信息的数据格式。XML:eXtensibleMark-upLanguage是一种自描述性的数据格式。HTTP:HyperTextTransportProtocol几乎专门用来传输所有的RSS提要。解析器(Parser):这个工具的作用是从一种格式中提取信息并使信息可用于其他结构。例如,XML解析器可以从一个XML数据源提取数据。模拟器(Emulator):这种软件工具代表另一种系统。Android目前还不能用于真实的用户硬件平台;本文在AndroidEmulator上运行示例应用程序。RSS基础介绍在详细介绍下载RSS提要并使用基于Android的RSS阅读器进行处理之前,让我们首先简要回顾一下使用RSS的需求、位置以及它的结构。为什么使用RSS?信息传播工具多种多样,包括可以免费收听的无线电广播、公共和有线电视、印刷媒体,甚至包括Internet这样颠覆性的技术,以及其庞大的Web站点和电子邮件订阅。虽然选择很多,但是这些工具都存在一个问题:很难在庞杂的海量数据中精确查找到真正感兴趣的信息和价值。幸运的是,RSS可以帮助我们解决这个问题。RSS是“ReallySimpleSyndication”的缩写。RSS是一种内容发布者用来发布信息的XML数据格式,这些信息经过了分类并适合人机阅读。RSS提要通常使用诸如新闻阅读器这种人类可读的友好格式进行处理并显示给用户,本教程中构建的应用程序就是这样一种新闻阅读器。RSS提要同样可以供计算机使用,从而生成后续的、聚合的信息源。举例来说,定期检索并提供给旅行社本地预订系统的租赁列表就是一个机器使用RSS提要的例子。在讨论新闻内容时经常会提到RSS,然而,除新闻以外,这种格式可用于组织和发布其他很多类型的信息。例如,很多Web站点都发布可用的pod-cast的RSS提要,从而发布音频和视频内容。Handango.com是一个流行的移动软件和内容的在线商店,它根据移动平台分类,提供新的流行软件标题的提要。例如,提供针对Windows®Mobile、Blackberry、Palm和其他平台的提要。用不了多久,很可能就会提供针对Android应用程序的提要了!RSS的格式是XML数据,这表示数据本身就包含描述性元素,也就是说它是自包含的。随着行业的逐步规范化,XML结构在过去几年也经历了一些变化。最新的版本也是应用最广的版本是2.0。RSS2.0是一种相对简单的XML结构,很容易由计算机程序解析。在本教程中,我们将解析从IBMdeveloperWorksWeb站点获得的一条RSS提要。回页首RSSversion2.0关于哪一个版本最流行已经进行了太多的讨论,现在让我们了解一下RSS2.0规范。RSS2.0格式只包含有限的标记。?xml是一个强制使用的标记,所有XML文档都需要使用到。第一个标记实际是rss标记,它以属性的形式包含版本。rss标记是一个或多个通道,每个通道都包含如清单1所示的元素。清单1.RSS2.0中的通道和元素channeltitle/link/description/pubDate/language/copyright/imagetitle/url/link//image+item//channel/rss每个通道可能含有一个或多个项。每个项具有如清单2所示的结构。清单2.项结构itemtitle/description/link/category/pubDate//item回页首数据使用RSS提要的使用者可以决定如何显示数据。通常,RSS阅读器将显示一些有关可用通道的标题信息,包括发布日期(包含在pubDate元素中)。注意,RSS是用于发布相关的即时数据,因此不应该忽视发布日期。图1演示了本教程中运行的示例应用程序,它显示了一条RSS提要。图1显示了RSS提要的标题、发布日期,并使用列表(List)格式显示提要项。本教程后面的内容讨论将解析得到的RSS提要提供给Android用户界面的机制。图1.运行中的AndroidRSS阅读器RSS提要的item标记中的元素描述提要中包含的所有项。例如,在本教程中,您要处理的RSS提要中包含来自IBMdeveloperWorks站点中的一组受欢迎的教程。提要中的每个条目都提供了足够的信息,使用户充分了解提要的主题以及如何获取更多信息。这些信息共分三个级别,每个级别的信息都非常详细。此外,每个条目都包含一个发布日期和类别信息。条目标题简要介绍了提要的主题,例如:title![CDATA[DevelopAndroidapplicationswithEclipse]]/title。如果您对使用Eclipse进行Android开发感兴趣的话,那么这个条目标题足够引起您的兴趣。如果用户(即使有应用程序的人员)希望了解更多,则可以获取更多信息,即清单3中的描述。清单3.描述description![CDATA[AndroidisGoogle'soft-discussedmobile,wireless,computer,andcommunicationsplatform.YoucantakeadvantageofthepowerfulEclipseenvironmenttobuildAndroidapplicationsusingtheAndroidEclipseplug-in.ThistutorialintroducesAndroidapplicationdevelopmentwiththeEclipseplug-in,otherwiseknownasAndroidDevelopmentTools.ThetutorialprovidesanintroductiontoAndroiddevelopmentwithaquickintroductiontotheplatform,atourofAndroidDevelopmentTools,andincludestheconstructionoftwoexampleapplications.]]/description注意这里使用了CDATAXML技术。如果XML提要中包含了可以与所含的XML标记进行交互的mark-up元素,那么则需要使用CDATA。CDATA的一个副作用是数据是按原样获取的,因此您需要对文本进行额外的格式化,以便正确显示到目标用户界面中。本教程后面演示的示例应用程序中将看到这样一个例子。最后,如果用户对这一主题非常感兴趣的话,可以通过提供的链接找到关于这一特定主题的更多信息:link![CDATA[
本文标题:构建 Android 手机 RSS 阅读器
链接地址:https://www.777doc.com/doc-4369810 .html