一个成熟、便捷的开发环境。3.2开发实例实例是一个Android平台下的RSS阅读器设计,它可以在线读取某新闻网站的RSS。
RSS(ReallySimpleSyndication)是一种内容发布
2
Android平台与J2ME的区别
J2ME(Java2platformmicroedition)是Java语言
者用来发布信息的XML数据格式,RSS提要通常使用RSS阅读器转换为可读的友好格式后再显示给用户,因此开发主要涉及两个方面:XML数据流的解析和如何在Android界面上显示RSS内容。3.2.1核心代码(1)xML数据流的解析Android直接支持DOM和5AX两种XML数据解析方法,其中sAx方法内存占用小,更适合在手机程序开发№],下面是构建一个SAX解析器的核心代码。/十Android上使用.SAxParser解析XML数据流.事//幸分两步从SAXPArserFodory类的实例化一个SAXParser对象.牛/
SAXParserFodoq,spf=SAXParserFodory.newln—
专门针对嵌入式电子产品开发的版本,应用在移动电话、PDA、电视机机顶盒以及其它资源受限的设备上,J2ME是目前移动设备上使用最广泛的开发平台。J2ME平台由多种配置、简表和可选包组成口】。可以发现J2ME的应用是建立在JVM(或KVM)之上,而主机操作系统是位于J2ME平台之外。这样的设
万方数据计一方面提供了跨操作系统的特性,主机操作系统可
以是Symbian、WindowsMobile、和Linux,另一方面
J2ME虽然提供了统一的开发平台,但是JvM的安全机制让J2ME的应用程序不能调用本地系统资源”o。而Android向下既包括操作系统内核,向上又拥有通现成的应用软件,加之开源、
免费、可以直接使用Java语言为开发人员提供了极大的便利。另外需要强调的是虽然同样是使用Java语言进行开发,但是Android使用的DoMk虚拟机和J2ME使用的标准的Java虚拟机(JVM)存在以下区别:
stance();
SAXParser
sp=spf.newSAXParser();
/木从SAxParser中创建XMLR∞der?/
XMU2eaderxr=sp.getXMLReader();
(1)Dolvik是基于寄存器,而JVM是基于堆栈的。
Android选择采用寄存器的方式是因为它对提前优化
(ahead—of—timeoptimization)提供了更好的支持,
/木创建一个在XMLReader中使用的Cont-
entHandler幸/
ExampleHandlermyExampleHondler=newExam?
而这对类似于移动电话这样的受限环境是颇有裨益的。针对基于寄存器虚拟机和基于堆栈的虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译时花费的时间更短哺1。(2)运行环境的区别。DaMk经过优化,允许在有限的内存中同时运行多个虚拟机的实例。
pleHandler():xr.setContentHandler(myExampleHandler);
/?从URL中解析XML数据.?/
xr.parse(newInputSource(ud.openStream(J));
3
Android平台的应用程序设计
/?ExampleHandler用来提供解析完成的XML数
3.1开发平台搭建
揖?/
.
计算机系统应用
2008年第1l期
myF.xampleHandler.getParsedData();
(2)Android界面上显示RSS内容活动(Adivit、/)是最
常用的Android应用程序形式。活动在为视图类的帮助下,为应用程序提供UI。一个应用程序可以包含一个或多个活动。这些活动通常与应用程序中的屏幕形成一对一关系,提供移动设备最基本的功能和事件的访问。显示RsS内容应用程序需要使用两个Adivity类提供用户界面,主屏幕主屏幕列出RSS的提要标题和发布日期,第二个屏幕列出Rss提要项。RSS阅读器中主界面的Activity代码如下:/拳书RSSReader继承于Adivily类木/
public
图2提要标题和发布日期
class
RSSReader
extends
Adivity
implementsOnltemClickListener
{/书事实例程序静态定义了SINA的新闻页面的RSS
万方数据
feed凇/publicfinal9dng融污FEEDO