分享
 
 
 

J2ME应用基础

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

自从1995年面世以来,已经大大超出了最初Applet应用范畴,在java发布两年后Sun公司推出了主要针对于企业级应用的J2EE(Java 2 EnterPRise Edition),而最近加入到Java产品家族的是J2ME(Java 2 Micro Edition),它的目标直指所谓的“信息设备”,包括电视机顶盒到移动电话的一系列产品。

Java版本

目前Java主要包括以下三种版本:

● 标准版(J2SE):运行在桌面电脑和工作站上;

● 企业版(J2EE):内置支持Servlets,jsp和xml,主要针对服务器端应用;

● 简化版(J2ME):针对那些具有有限存储、小显示以及有限处理能力的设备。

注释:1998年12月,Sun提出了"Java 2"(J2)这个名字来指Java 1.2 这个版本。现在这个名字已经应用到所有的Java版本中,包括标准版(J2SE),企业版(J2EE)和简化版(J2ME)。

图1 Java的不同版本

为什么使用J2ME?

J2ME主要针对那些具有有限处理能力的设备。许多这类设备(比如手机、传呼机等)原来并没有提供下载和安装软件的功能,但是随着J2ME的引入,这一切都得到了改变,J2ME使得这些设备具有了浏览,下载以及安装Java程序的功能。

这些小的消费类电子设备正静静地改变着我们的生活。而且,随着它们对Java的支持,你就可以使用Java语言的许多优秀特性,简单,跨平台,安全健壮,更不用说超过200万使用者的经验和信心啦。

尽管在这些小型设备上使用完整的J2SE API是令人兴奋的,但却是不现实的。想想看,手机的小屏幕是没办法让Java AWT(Abstract Window Toolkit)施展拳脚的。于是不同于J2SE和J2EE的Java简化版就产生了,这就是J2ME。

我们知道,J2ME应用的设备性能千差万别。一个因特网Screenphone(一种访问邮件,新闻,在线银行业务等的设备)拥有比一寻呼机大得多的显示屏。有时即使外形相当,性能也会有很大差异。一个移动电话和PDA同样在物理大小上被限制,然而一个典型移动电话支持12288像素(96 x128)显示,PDA却至少可以支持20000像素。

那J2ME是怎么能够支持这些设备的呢?

J2ME定义了两种类型的规范:配置(configurations)和子集(profiles),由它们来协同提供对各种设备的支持。

配置(Configurations)

一个Configuration定义了针对一系列设备的Java平台。Congiguration与Java 虚拟机(JVM)紧密联系。实际上,Configuration就是定义了Java的语言特性和JVM的核心类库。

不同的Configuration应用分类主要基于设备以下几个方面的考虑:内存,显示,网络连接和处理能力。

在Sun的J2ME FAQ中这样形象地定义:J2ME技术主要针对两种设备:你拿在手里的,你插到墙上的。确实如此,但这只是个很笼统的说法,实际应用过程中不要受此约束。

下面介绍两种典型的Configurations:

● 连接设备配置(CDC)

至少512KB内存运行Java;

至少256KB供运行时存储分配;

持续稳定和高带宽的网络连接(相对于CLDC来说)。

● 连结有限设备配置(CLDC)

128KB内存运行Java;

32KB供运行时存储分配;

受限制的用户接口;

能量有限,主要以电池提供能量;

网络连接可能是窄带宽、不稳定的,且以无线连接为主。

虽然这个划分似乎相当清楚,CDC针对机顶盒之类高端设备,而CLDC主要针对移动电话、PDA和传呼机等低端设备,但不必拘泥于此。随着技术的不断进步,两者之间的界限也越来越模糊。

● 子集(Profiles)

一个Configuration涵盖的设备很复杂,各种设备的性能也大不一样,可能对于某种设备来说的限制在其他设备看来就不是什么问题。前面我们提到移动电话和PDA都符合CLDC的要求,但是还记得开头部分我们对它们的显示性能做的对比吗?为了应付这些不同,Sun又提出了Profile这个概念。

假如说Configuration是从大的方面给这些设备分类的话,那么Profiles就是在特定的Configuration上再细分,是对Configuration的延伸和拓展。它提供给开发者在特定类型设备上开发的类库。比如说,移动信息设备子集MIDP(Mobile Information Device Profile)就是综合考虑了移动设备的屏幕和内存限制,定义了一些用户接口组件,输入和事件处理,存储,网络和计时方面的APIs。

Configurations和Profiles是如何被开发出来的?

J2ME FAQ(http://java.sun.com/j2me/faq.Html)的节录:这些工作都是由JCP(Java Community Process)来完成的,更多信息请查看:http://jcp.org。

Java虚拟机

我们知道,任何Java程序都是在JVM中被执行的。那么对于J2ME来说,情况又是如何呢?CDC仍然使用与J2SE相同的JVM,对于CLDC,由于设备资源受到限制,Sun专门开发了一个新的名叫KVM(K Virtual Machine)的虚拟机。这是个不同于传统的Java虚拟机:

● 虚拟机本身仅仅需要40-80KB内存;

● 只需要20-40KB动态内存(堆);

● 能够运行在16位25MHz处理器上。

当然KVM只是一个由Sun实现的符合CLDC规范的Java虚拟机而已,它并不是唯一的,还存在很多类似的虚拟机,你也完全可以自己实现一个这样的虚拟机,只要它符合CLDC规范就可以。

KVM和CLDC是如何联系在一起的?

摘自Sun的文档:“CLDC是对能运行在由它和相关profiles界定的设备上的Java虚拟机的规格说明”,言下之意就是虚拟机必须满足CLDC规范要求。KVM即是其中一个。

J2ME整体架构

前面我们大致地了解啦一下J2ME的各个方面,现在让我们从整体上来看看J2ME。

通用J2ME架构

图2 通用J2ME架构

MIDP架构

在这个通用架构基础之上,我们可以衍生出不同的应用类型,现在比较流行的就是MIDP架构。

图3 MIDP架构

Java版本间兼容性

Java有句名言:“编写一次,随处运行”(Write Once,Run Anywhere),也有人戏称为"Write Once,Debug Anywhere",那我们想问问:对于J2ME来说,这依然成立吗?答案是在某种程度上是对的。

J2SE应用能在J2ME上运行吗?

J2ME基本上可以算作J2SE的一个简化版本,J2SE中的很多功能J2ME并没有提供,所有说只有当你编写的J2SE程序只采用J2ME中有的类并且严格遵守J2ME规范,它才可能在J2ME上运行,不过那样的程序是毫无意义的。

J2ME应用能在J2SE上运行吗?

和上面同理,只要你的J2ME程序只采用两个平台共同具有的特性,就可以正常运行。但是要知道,J2ME应用中的大部分都是针对特定设备的应用接口和事件处理。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有