Herr Apfel的专栏

玉不琢,不成器;人不学,不知道。是故古之王者,建国君民,教学为先。

用户操作
[即时聊天] [发私信] [加为好友]
Herr ApfelID:herrapfel
108916次访问,排名820好友0人,关注者2
herrapfel的文章
原创 136 篇
翻译 0 篇
转载 15 篇
评论 52 篇
Herr Apfel的公告
庆祝个人 BLOG 开张
最近评论
yupengfeiwangcui:两种实现方式,一种是使用底层的mailAPI,另外一种是apache小工程封装好的API,感觉有了这两个例子之后,基本上就可以入门了,真的很不错!
我顶!
s_bwang:我想知道怎么取得我要的日期,而不是取得当前的日期。
s_bwang:我想知道怎么取得我要的日期,而不是取得当前的日期。
dvdface:这种一堆API的方式还是嫌麻烦。最好的是能封装一下
qq77504166:哥们我用了你的方法,根本就不行啊??????
文章分类
收藏
    相册
    My Photo
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 J2ME应用基础收藏

    新一篇: Java反编译的研究 | 旧一篇: Eclipse上搭建Nokia手机的J2ME开发环境

    自从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应用中的大部分都是针对特定设备的应用接口和事件处理。

    发表于 @ 2005年06月24日 17:00:00|评论(loading...)|编辑

    新一篇: Java反编译的研究 | 旧一篇: Eclipse上搭建Nokia手机的J2ME开发环境

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Herr Apfel