对于使用J2ME(Java 2 Micro Edition,Java 2小型版)的编程人员来说,本书是一本缺之不可的速查参考手册。J2ME是Sun公司所提供的一系列新规范,它定义了标准Java2平台的压缩版本。J2ME可用于为诸如蜂窝电话、PDA、双向寻呼机以及机顶盒等资源受限制的设备开发JAVA应用程序。\r\n
\r\n
前言 \r\n\r\n 第一部分 J2ME平台API简介 \r\n\r\n 第一章 简介 \r\n\r\n 什么是J2ME平台? \r\n\r\n J2ME规范 \r\n\r\n J2ME及其他Java平台 \r\n\r\n 第二章 CLDC \r\n\r\n CLDC Java虚拟机 \r\n\r\n CLDC类库 \r\n\r\n KVM调试 \r\n\r\n 高级KVM特性 \r\n\r\n 第三章 MIDP与MIDIet \r\n\r\n MIDP概述 \r\n\r\n MIDP Java平台 \r\n\r\n MIDlet与MIDlet套件 \r\n\r\n MIDlet执行环境与生命期 \r\n\r\n 开发MIDlet \r\n\r\n MIDlet的发送与安装 \r\n\r\n 第四章 MIDlet用户界面 \r\n\r\n 用户界面概述 \r\n\r\n 高级用户界面API \r\n\r\n 第五章低级MIDlet用户界面API \r\n\r\n Canvas类 \r\n\r\n 绘制与Graphics类 \r\n\r\n Graphics属性 \r\n\r\n 绘制直线与弧形 \r\n\r\n 转换Graphics坐标原点 \r\n\r\n 一个简单的动画MIDlet \r\n\r\n 图形剪切 \r\n\r\n 输出文本 \r\n\r\n 图像 \r\n\r\n 事件处理 \r\n\r\n 多线程与用户界面 \r\n\r\n 第六章 无线Java:联网与持久存储 \r\n\r\n 小型设备的联网体系结构 \r\n\r\n 套接字 \r\n\r\n 数据报 \r\n\r\n HTTP连接 \r\n\r\n 持久存储 \r\n\r\n 第七章 CDC及其简表 \r\n\r\n CDC \r\n\r\n 第八章 J2ME命令行工具 \r\n\r\n cvm:连接设备配置虚拟机 \r\n\r\n kdp:KVM调试代理 \r\n\r\n kvm:千字节虚拟机 \r\n\r\n midp:MID简表运行环境 \r\n\r\n emulator:J2ME Wireless Toolkit仿真器 \r\n\r\n preverify:KVM类预校验器 \r\n\r\n MakeMIDPApp:将JAD转换成PRC的工具 \r\n\r\n MEKeyTool:公共密钥证书管理工具 \r\n\r\n 第九章 J2ME编程环境 \r\n\r\n J2ME Wireless Toolkit \r\n\r\n MIDP for PalmOS \r\n\r\n J2ME与Forte for Java \r\n\r\n 其他集成开发环境 \r\n\r\n 第二部分 API速查参考 \r\n\r\n 如何使用速查参考 \r\n\r\n 第十章 J2ME包和类 \r\n\r\n J2ME包 \r\n\r\n 不在J2ME中的J2SE包 \r\n\r\n J2ME包内容 \r\n\r\n 第十一章 java. io \r\n\r\n 第十二章 java. lang \r\n\r\n 第十三章 java. util \r\n\r\n 第十四章 javax. microedition. io \r\n\r\n 第十五章 javax. microedition. lcdui \r\n\r\n 第十六章 javax. microedition. midlet \r\n\r\n 第十七章 javax. microedition. rms \r\n\r\n 第十八章 类. 方法与字段索引 \r\n\r\n 词汇表 \r\n
\r\n
本书是一本关于J2ME TM(Java TM 2 Micro Edition, Java 2小型版)的速查参考手册, 它所面向的是那些为内存资源和处理器能力有限的设备编写应用的编程人员, 这些设备包括蜂窝电话. 个人数字助理(PDA)和机顶盒等. 本书第一部分对组成J2ME平台的两种不同配置环境——CLDC(Connected Limited Device Configuration, 有限连接设备配置)和CDC(Connected Device Configuration, 连接设备配置)分别做了概略性介绍, 此外还介绍了在其基础之上的一些简表, 如MIDP(Mobile Information Device Profile, 移动信息设备简表), 该简表为对蜂窝电话和类似设备进行编程提供了所需的API. 在此之后有一个速查参考部分, 其中详细列出了CLDC和MIDP API中的各个类, 同时还附有一些表, 其中显示了各配置和简表中哪些Java包和类可用. 建议将此书与以下畅销书结合起来阅读, 即David Flanagan编写的《Java in a Nutshell》以及Jim Farley. David Flanagan和William Crawford合作撰写的《Java Enterprise in a Nutshell》(以上两本书均由O'Reilly公司出版). 《Java in a Nutshell》介绍了Java编程语言本身, 并对J2SE(Java 2 Standard Edition, Java 2标准版)平台中的核心包和类提供了一个API速查参考. 与之相似, 《Java Enterprise in a Nutshell》则对J2EE(Java 2 Enterprise Edition, Java 2企业版)中的API提供了速查参考. CDC及其简表实际上即为J2SE API的大子集, 有鉴于此, 本书不再赘述这些API速查参考资源, 有关内容可参见《Java in a Nutshell》, 至于RMI简表, 则请参阅《Java Enterprise in a Nutshell》. 本书的内容组织本书前九章对J2ME平台以及Sun J2ME参考实现所提供的命令行工具做了描述, 另外还介绍了编写J2ME应用时可用到的一些可视开发环境. 具体如下:
第一章, 简介
本章介绍了J2ME平台以及配置和简表的概念, 同时将J2ME与其他一些用于小型设备的Java平台做了比较.
第二章, CLDC
本章介绍了CLDC, 对用于无线设备和PDA的J2ME简表而言, 这是其基础构建块. 本章在开始部分介绍了CLDC与J2SE平台核心库的区别, 然后对KVM做了深入探讨, KVM是一种对资源要求很少的虚拟机, 被应用在Sun公司的CLDC参考实现中.
第三章, MIDP与MIDlet
本章介绍了MIDlet, 它相当于无线Java领域的applet. MIDlet是MIDP的一部分, 这也是本章与后面三章所要讨论的主题. 在此介绍了MIDlet的生命周期, 并通过一个简单示例做了相应分析. 这一章的最后讨论了典型的移动设备需要提供给用户的功能, 从而使用户能够实现MIDlet的下载. 安装. 管理和删除.
第四章, MIDlet用户界面
从只有很小的黑白显示器并只提供寥寥几行文本空间的蜂窝电话. 到带有很大的多色显示屏的PDA都可运行MIDlet. 为了将MIDlet从运行它的各种特定设备中独立出来, MIDP中包括了一个高级API, 它提供了简单的输入与输出控件, 并提供了有关功能来将这些控件加以结合, 从而创建类似于窗体的界面. 本章详细介绍了这一高级API, 并给出了一些可以在蜂窝电话或PDA上运行的MIDlet示例.
第五章, 低级MIDlet用户界面API
本章介绍了另一个用户界面API, 它为移动设备的屏幕以及输入设备提供了更低级的访问. 这里详细介绍了此API, 对于带有不同用户界面功能的设备, 可能会编写出一些无法在这些设备之间移植的代码, 本章则说明了如何避免这种情况.
第六章, 无线Java:联网与持久存储
联网是移动设备的主要特征. 本章第一部分将介绍GCF(Generic Connection Framework, 通用连接框架), 它提供了对各种联网API进行访问的基础, 在此包括可选的协议[如套接字(socket)和数据报(datagram)]以及所有MIDP实现都必须支持的HTTP. 本章还提供了一个简单示例来展示如何从Web站点获取信息, 从而说明移动设备上HTTP的使用, 另外还指出了当在内存有限的环境下工作时如何避免可能引发的有关问题. 本章的第二部分对在移动设备上保存信息的功能做了介绍, 另外还对前面的HTTP示例进行了扩展, 使其可对从Web站点取得的信息实现持久存储.
第七章, CDC及其筒表
本章讨论了CDC及其简表, 它是为另一类设备而设计的, 这些设备有2MB以上的内存可用于Java平台. 本章从Sun公司的CDC参考实现以及CVM(用于CDC设备的虚拟机)开始讲解, 然后简要地介绍了目前所定义的基于CDC的简表.
第八章, J2ME命令行工具
本章所包括的内容涉及到CLDC和CDC参考实现所提供的命令行工具, 以及面向PalmOS产品的MIDP.
第九章, J2ME编程环境
本章介绍了J2ME无线工具包(wireless toolkit), 它是由Sun公司提供的开发环境, 用以创建和测试MIDlet, 在此需要使用一个蜂窝电话仿真器, 可通过对其定制来仿真不同种类的蜂窝电话和基于PalmOS的手持电话. 本章还介绍了如何结合Sun公司的Forte for Java IDE, 通过使用无线工具包创建一个完整的开发环境. 另外本章还介绍了许多可选的第三方产品, 它们也可提供类似的功能.
前九章是对J2ME教程式的介绍, 重点强调了无线设备, 而这正是J2ME技术目前最流行的应用. 不过, 本书的核心仍是API速查参考, 因此从第十章到第十八章都是有关API的简明而详细的参考信息, 在此均以最适用的形式加以提供. 请注意, 在开始阅读参考部分之前, 务必要先读一读它前面的“如何使用速查参考”, 它会告诉你如何最有效地利用这部分资源.
相关书籍
O'Reilly & Associates公司出版了有关Java编程的一整套系列书籍. 这些书包括:《Java in a Nutshell》(译注1)和《Java Enterprise in a Nutshell》, 前面已经提到过, 它们都是本书的姊妹篇. O'Reilly所出版的Java书目可见于站点http://java. oreilly. com. 其中J2ME编程人员特别关注的书包括:
《Java in a Nutshell》, David Flanagan著
这是一本Java语言教程, 并对核心Java类提供了完备的API参考. 如果你倾向于使用基于CDC的简表, 那么这本书尤其适用, 这是因为相应的API非常适合于J2SE.
《Java Enterprise in a Nutshell》, Jim Farley. William Crawford和David Flanagan合著
这是一本关于Java企业级API的教程和API参考, 其中包括RMI(Remote Method Invocation, 远程方法调用). 如果你倾向于使用RMI简表, 那么将对本书很感兴趣.
《Java Network Programming》, Elliotte Rusty Harold著
这是一本描述J2SE联网API的书.
《Java I/O》, Elliotte Rusty Harold著
这本书介绍了Java平台的输入输出体系结构. 如果需要使用MIDP的联网与持久存储功能, 那么对这本书的正确理解至关重要.
《Java Threads》, Scott Oaks和Henry Wong合著
这本书描述了如何使用Java的内置多线程功能, 这些功能在J2ME平台上也可用.
《Learning Wireless Java》, Qusay Mahmoud著
这是一本关于无线Java的书, 它还展示了在目前可用的一些支持Java的蜂窝电话上如何安装MIDlet.
J2ME编程网络资源
本书是一本速查参考书, 用它可以快速地访问经常用到的信息. 但它并不是一本包罗万象的J2ME参考书, 除了前面罗列的一些书外, 网上还有一些很有价值的关于J2ME的电子资源.
Sun公司关于Java的资源在站点http://java. sun. com上可以找到. 此站点中包括组成J2ME平台的一些产品的主页链接. 这些主页有:
http://java. sun. com/j2me/
里面有关于J2ME平台的一般信息.
http://java. sun. com/products/cldc/
里面有CLDC规范以及可供下载的参考实现.
http://java. sun. com/products/midp/
在此提供MIDP规范.
http://java. sun. com/projects/cdc/
在此包括有关CDC的规范及其参考实现.
下面这一网页非常有用, 它是获得最新文档的入口.
http://java. sun. com/j2me/docs/
特别为Java开发者准备的站点是http://developer.java. sun. com. 此开发者站点中的大部分内容都有口令保护, 要想访问其中的信息需要事先注册(免费的). 站点中有一个有关KVM的论坛, 当然在这里也可以对有关无线开发和J2ME的更宽泛的内容展开讨论. 注册成功后, 就可以访问下面的URL地址来加入论坛:
http. //forum.java. sun. com/forum.jsp?forum=50
Sun公司还有一个面向无线Java开发的站点:
http://wireless.java. sun. com
此外还有一个用于KVM和MIDP讨论的邮件列表, 你可以订阅或在以下站点浏览:
http://archives.java. sun. com/archives/kvm-interest.html要想获得最新的文档或寻找关于J2ME的相关信息和开发工具, Bill Day的J2ME站点同样也非常有用:
http://www. billday. com/j2me/
J2ME当前的实现并不提供XML或加密支持. 但在某些实现中, 对于其中某一种或以上二者的支持往往非常重要. 要解决这个问题, 可以在站点:http://www. kxml. org找到一个适用于J2ME的开放源码的XML产品. 同样在站点http://www. bouncy-castle. org上也有一个开放源码的轻型加密产品.
关于支持J2ME的蜂窝电话和PDA的信息可在如下站点找到:
http://www.javamobiles. com
在线示例
本书中的所有示例均可在站点http://www. oreilly. com/catalog/j2meanut/中找到并下载. 而且在该站点还可查看本书是否已发布了重要声明和勘误表. 书中的示例代码有两种不同的目录结构, 当然源码是同样的源码, 只是组织形式不同而已. 目录sro中的源码以纵向形式组织, 如果使用诸如Sun公司的Forte for Java等开发环境来创建与运行示例, 这种组织形式无疑是非常方便的. 同样, 如果决定使用J2ME无线工具包(此工具包要求其源码文件以另一种方式组织), 你就需要使用wtksrc目录下的示例了. Sun公司在站点http://java. sun. com/products/j2metoolkit/中提供了J2ME无线工具包的免费下载. 本书中对一些示例的描述是以使用J2ME无线工具包为前提的. 对于用无线工具包编写的示例源码, 第三章中提供了如何加以使用的有关介绍, 第九章则介绍了如何使用采用Forte for Java编写的源代码.
排版约定
本书使用下列排版约定:
斜体(Italic)
用以突出强调初次使用的术语. 命令. email地址. URL. FTP站点. 文件与目
录名. 新闻组也用斜体表示.
等宽字体(Constant width)
用于所有的Java代码, 以及在编程中需要输入的所有内容, 如关键字. 数据类
型. 常量. 方法名. 变量. 类名. 接口名等.
等宽斜体(Constant width italic)
用于函数参数名, 该字体通常情况下还作为占位符使用, 用以指示程序中的某元
素应当用一个实际值取代.
建议与评论
本书的内容都经过测试, 尽管我们做了最大的努力, 但错误和疏忽仍然是在所难免的. 如果你发现有什么错误, 或者是对将来的版本有什么建议, 请通过下面的地址告诉我们:
美国:
O'Reilly & Associates,Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
100080北京市海淀区知春路49号希格玛公寓B座809室
奥莱理软件(北京)有限公司
询问技术问题或对本书的评论, 请发电子邮件到:
info@mail. oreilly. com. cn
最后, 您可以在WWW上找到我们:
http://www. oreilly. com
http://www. oreilly. com. cn
致谢
本书是以畅销书《Java in a Nutshell》的风格为基础编写的. 曾有两本书指引我踏入Java世界并畅游其中, 其中之一就是此书. 所以我首先要郑重感谢《Java in a Nutshell》的作者David Flanagan, 感谢他将我引入Java世界, 感谢他在我创作本书时提供的帮助与建议. 还要感谢Mike Loukides和Bob Eckstein, 尽管我的写作大纲非常粗劣, 但他们还是为我提供了写这本书的机会, 让我得以实现长久以来的愿望——为O'Reilly写作. Bob同时还是本书的编辑, 他在阅读完本书后对书中的每一章都提出了颇有见地的意见. 正因为他以及O'Reilly出版小组其他同仁的辛勤工作才使得本书增色不少. 还要向Leanne Soylemez特别致谢, 是他将本书的写作计划安排得与我的假期计划相吻合, 感谢为本书绘制图表的Robert Rormano, 他把工作完成得像专业绘图员一样好, 感谢技术审校Marc Loy(他与Bob Eckstein共同撰写了由O'Reilly出版的《Java Swing》)和Tom Keihl, 感谢他们的帮助与建设性意见. 我在2000年~2001年的圣诞节和新年假期中完成了本书最后几章以及后面参考部分的写作. 这段假期本应与家人一起度过, 全家人一起吃火鸡, 品尝圣诞布丁, 喝啤酒, 享受与儿子在一起玩耍的天伦之乐, 而我却忙于写作. 因此要感谢Berys. Andrew还有Katie对我的理解, 让我在这一段令人激动的假期里能够全身心地投入到研究当中, 并在我写完本书之后, 又热情地将我邀人家庭的欢娱当中.
对于使用J2ME(Java 2 Micro Edition, Java 2小型版)的编程人员来说, 本书是一本缺之不可的速查参考手册. J2ME是Sun公司所提供的一系列新规范, 它定义了标准Java 2平台的压缩版本. J2ME可用于为诸如蜂窝电话. PDA. 双向寻呼机以及机顶盒等资源受限制的设备开发Java应用程序.
本书具体包括如下内容:
介绍了J2ME平台及其开发环境, 如Java Wireless Toolkit
详细介绍了CLDC. MIDP和MIDlet的功能与需求
深入分析了MIDlet用户界面, 还提供了使用MIDP UI API的技巧
解释了如何使用通用连接框架API(Generic Connection Framework API)以实现Internet
上的无线网络连接, 并介绍了利用MIDP记录管理系统(Record Management System,
RMS)实现数据持久存储的API
简要介绍了CDC及其简表
对于各种J2ME包中的所有类, 本书还涵盖了O'Reilly认可的经典速查参考资源, 其中包括java. lang. java.io. java. util. javax. microedition. io, javax. microedition. lcdui. javax. microedition. midlet以及javax. microedition. rms. 如果决定使用J2ME, 建议你将此书放在手边, 让它成为你编程的有益参考. 每一位Java编程人员都应必备一套速查手册, 本书即为其中的一本. 这是《Java in a Nutshell》和《Java Foundation Classes in a Nutshell》的姊妹篇, 这些书囊括了标准Java 2平台中有关核心. 图形. 打印以及GUI API等各方面内容. 此外, 《Java Enterprise in a Nutshell(第三版)》则重点介绍了Java Enterprise API, 而这正是致力于服务器端或企业级Java应用程序的开发人员所关注的.