📄 java_j2me.htm
字号:
<p> ■Java 2 Micro Edition 概观</p>
<p> J2ME 在设计其规格的时候,遵循著「对於各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。於是 J2ME
先将所有的嵌入式装置大体上区分为两种 :一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA 、手机);另外一种则是运算能力相对较佳、并请在电力供应上相对比较充足的嵌入式装置
(比方说冷气机、电冰箱、电视机上盒 (set-top box))。因为这两种型态的嵌入式装置,所以Java 引入了一个叫做Configuration
的概念,然後把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格<br>
之中;而另外一种装置则规范为 Connected Device Configuration(CDC)规格。也就是说, J2ME
先把所有的嵌入式装置利用Configuration 的概念区隔成两种抽象的型态。</p>
<p> 其实在这里大家可以把Configuration 当作是J2ME 对於两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的
Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库。比方就CLDC
的规范来说,可以支援的核心类别函式库为java.lang.*、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。区分出两种主要的Configuration
之後,J2ME 接著在定义出Profile的概念。Profile 是架构在Configuration 之上的规格。之所以有 <br>
Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。因此Profile
之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile
里头。Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。</p>
<p> ■Java 在嵌入式系统上的应用</p>
<p> 由於Java 本身最初的设计理念即是针对嵌入式系统,因此将他用在嵌入式系统上真可谓如鱼得水。在这个Linux 开始兴起的时空交会点,网路上出现了一篇关於嵌入式
Linux 与Java 互相配合以造就双赢局面的相关报导,这是由 LinuxDevices.com 的专栏作家 Randy Rorden
所发表的一篇白皮书,名为「 Java 与嵌入式 Linux 合作」。 在这篇文章里头,作者对嵌入式Linux与Java 个别的优点提出他的看法,同时也提出了Java-Linux
平台的构想。有兴趣的读者可以到到下列几个网站参考相关新闻与资料。</p>
<p> 1. Java 与嵌入式 Linux 合作白皮书<br>
http://www.ctech.com.tw/d-news/news/linux/89090208.asp<br>
2. Java 及嵌入式Linux 合作<br>
http://www.linuxdevices.com/news/NS5973673868.html<br>
3. 即将来临的Java-Linux 结合<br>
http://www.linuxdevices.com/articles/AT7102892618.html</p>
<p> ■为何要用Java 撰写PDA 上的应用程序?</p>
<p> 由於预期到今後行动通讯时代的来临,所以通讯相关行业变的前景可期,而除了达成行动通讯的主要工具 -- 手机月来越精巧之外,有更多的厂商相继投入PDA
的生产与开发。本来PDA 主要的平台有PalmOS 、Windows CE 以及EPOC ,也不知道曾几何时,开始一大堆公司投入embedded
linux 的研发,其中包括国内资策会自己开发的 @ViS 作业系统,互慧科技也有自己的嵌入式作业系统,当然更不用说大陆厂商与韩国厂商了。
喔喔!这些作业平台的数量比起 PC 来说真不知道要复杂上几倍。对一般使用者来说当然影响比较小,可是对於程序开发者来说,看到这么多不同的程序发展平台,真是让人望之却步。如果每个平台都有自己的程序写法以及函式库,那么光是看上面这些平台至少就要学习五种以上程序的写法。当然,只专精一种平台当然是很好的事情。可是程序设计师不禁要说
:”如果我们写出来的软体可以在不经过修改原始码的情况下就能够在这些平台上执行,那不是更完美吗?” 对程序开发者来说,这样的投资报酬率当然是最大的。</p>
<p> 要在那么多平台上开发程序,对程序设计师来说的确是一个很大的挑战,如果要把所有的时间和精力放在软体的可用性上,那么相对地很多时候我们根本没有那么多时间撰写各种平台的程序。要解决这个问题,一般来说程序设计师会选用一个可以跨平台的Framework
来达成至少source code level 的跨平台(例入Qt 就能做到)。不过在本篇文章中我们要介绍的则是更终极的解决方案
–Java ,利用Java 的”write once, run anywhere”特性,我们可以真正达到程序只要写一次,拿到任何平台上都可以执行(当然前提是必须要PDA
的厂商也要实作出该平台的Java Virtual Machine 才行)。利用Java 来做PDA 上的程序当然有其缺点,最广为人知的可能就是执行效率的问题,
Java 在执行速度这个议题上一直让人诟病。不过笔者认为,随著技术的发达,将会有更快更省电的PDA 专用CPU 出现,因此效率上的问题其实是可以忽略的。更何况,当
Sun 在设计J2ME 的时候,也用了很多方式企图加快Java 在PDA 上的执行速度(例如预先审核 )。</p>
<p> ■总结</p>
<p> 看完了本章之後,您对整个Java 2 Micro Edition 有个大致上的了解了吗? 再进入下一章之前,请务必弄清楚本章所提到的专有名词。如果各位想对各种技术规格做更详细的了解,请自行参考下表所列出的网页。</p>
<p> Consumer &amp; Embedded Technologies<br>
http://java.sun.com/products/consumer-embedded/</p>
<p> Consumer &amp; Embedded Technology Center<br>
http://developer.java.sun.com/developer/products/j2me/</p>
<p> Java 2 Micro Edition<br>
http://www.javasoft.com/j2me/</p>
<p> JDC J2ME Tech Tips<br>
http://developer.java.sun.com/developer/J2METechTips/</p>
<p> CLDC &amp; KVM<br>
http://www.javasoft.com/products/cldc/</p>
<p><br>
C &amp; E Center Wireless Technologies<br>
http://developer.java.sun.com/developer/products/j2me/wireless.<br>
html</p>
<p> MIDP<br>
http://www.javasoft.com/products/midp/</p>
<p> Embedded Java<br>
http://www.javasoft.com/products/embeddedjava/</p>
<p> Personal Java<br>
http://java.sun.com/products/personaljava/</p>
<p> JavaPhone<br>
http://java.sun.com/products/javaphone/</p>
<p> Java Embedded Server<br>
http://www.sun.com/software/embeddedserver/index.html</p>
<p> C &amp; E Center Java Embedded ServerTechnology<br>
http://developer.java.sun.com/developer/products/j2me/embedserv<br>
.html</p>
<p> JavaTV<br>
http://www.javasoft.com/products/javatv/</p>
<p> C &amp; E Center Digital Interactive Television<br>
http://developer.java.sun.com/developer/products/j2me/tv.html</p>
<p> Java Card<br>
http://java.sun.com/products/javacard/</p>
<p> C &amp; E Center JavaCardTechnology</p>
<p> http://developer.java.sun.com/developer/products/j2me/smartcard<br>
.html</p>
<p> Motorola 官方Java 网站<br>
http://www.motorola.com/java/</p>
<p> JINI<br>
http://www.sun.com/jini/</p>
<p> C &amp; E Center Downloads &amp; Specifications<br>
http://developer.java.sun.com/developer/products/j2me/downloads<br>
.html</p>
<p> Spotless System Page<br>
http://www.sun.com/research/spotless/<br>
<br><br>
</p>
<!-- #EndEditable --></td>
<td width="20"> </td>
</tr>
<tr>
<td width="20" height="11"> </td>
<td width="541" height="11"><!-- #BeginEditable "7" --><!-- #EndEditable --></td>
<td width="101" height="11">
</td>
<td width="20" height="11"> </td>
</tr>
</table><div align="center"> <br>
</div>
</td>
</tr>
</table>
<div align="center">
<br>
</div>
</body>
<!-- #EndTemplate -->
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -