本书为国内第一本详细介绍最新Java手机工业标准J2ME MIDP 2.0的专书,探讨如何用Java撰写Java手机与Palm OS上的应用程序。本书也是国内第一本综合讨论Personal Java的书籍,探讨如何在PocketPC、Symbian OS这两大移动操作系统平台上撰写Java应用程序。
\r\n 本书完整介绍了目前市面上各家手机厂商所提供的手机应用程序开发工具,包括Nokia、SonyEricsson、Siemens的开发工具,并深入介绍如何使用JBuilder与NetBeans / Sun Java Studio来集成各家厂商单独提供的开发工具。通过阅读本书,能够极大地提高移动开发人员的技术能力。
\r\n
第0部分 概论 \r\n 第1章 J2ME概论 \r\n 1.1 本章目的 \r\n 1.2 参考资源与书目\r\n 1.3 Java平台的划分\r\n 1.4 各种Java平台的不同之处 \r\n 1.5 J2ME技术架构\r\n 1.6 J2ME的最底层——Configuration \r\n 1.7 各类型设备依其特性加以划分——Profile \r\n 1.8 厂商选择性实现——Optional Packages \r\n 1.9 建构区块——Building Block \r\n 1.10 J2ME工业标准——JTWI \r\n 1.11 结束语 \r\n 第2章 J2ME程序的撰写 \r\n 2.1 本章目的 \r\n 2.2 参考资源与书目 \r\n 2.3 Java平台的演进 \r\n 2.4 为何采用J2ME \r\n 2.5 Java虚拟机器 \r\n 2.6 各种平台Java程序的开发 \r\n 2.7 预先审核 \r\n 2.8 MIDP应用程序的部署 \r\n 2.9 J2ME应用程序执行环境 \r\n 2.10 J2ME与企业软件(J2EE)的结合 \r\n 2.11 JINI技术 \r\n 2.12 STK技术 \r\n 2.13 Java Ring \r\n 2.14 结束语 \r\n 第3章 Personal Java概论 \r\n 3.1 本章目的 \r\n 3.2 参考资源与书目 \r\n 3.3 何谓Personal Java \r\n 3.4 如何开发Personal Java应用程序 \r\n 3.5 实机上Personal Java应用程序的执行 \r\n 3.6 结束语 \r\n第1部分 MIDP入门 \r\n 第4章 MIDP程序设计基础——谈生命周期 \r\n 4.1 本章目的 \r\n 4.2 参考资源与书目 \r\n 4.3 名词定义 \r\n 4.4 何谓应用程序管理器 \r\n 4.5 JAD与JAR \r\n 4.6 JAD与JAR的内容\r\n 4.7 MIDP执行环境\r\n 4.8 功能与资源 \r\n 4.9 权限确认与连接外部资源\r\n 4.10 描述文件与清单文件内含的属性与属性值 \r\n 4.11 必需属性值和选择性属性值\r\n 4.12 MIDlet的基本程序结构 \r\n 4.13 MIDlet该有的起始行为 \r\n 4.14 MIDlet的生命周期 \r\n 4.15 MIDlet管理自己的生命周期 \r\n 4.16 结束语 \r\n 第5章 MIDP程序设计进阶——CLDC与MIDP工具类 \r\n 5.1 本章目的 \r\n 5.2 参考资源与书目 \r\n 5.3 系统参数的提取 \r\n 5.4 字符串与基本类型的转换\r\n 5.5 随机数 \r\n 5.6 执行时间的测量\r\n 5.7 日期处理 \r\n 5.8 Thread的使用 \r\n 5.9 Timer与TimerTask的使用\r\n 5.10 MIDlet生命周期补遗 \r\n 5.11 Collection类的使用 \r\n 5.12 最佳化 \r\n 5.13 结束语 \r\n第2部分 开发工具 \r\n 第6章 手动开发MIDP应用程序——使用Ant \r\n 6.1 本章目的 \r\n 6.2 参考资源与书目 \r\n 6.3 JDK的安装 \r\n 6.4 J2ME Wireless Toolkit的安装 \r\n 6.5 手机程序开发流程 \r\n 6.6 撰写程序代码 \r\n 6.7 项目的目录结构 \r\n 6.8 商用手机程序建构流程 \r\n 6.9 结束语 \r\n 第7章 MIDP for Palm \r\n 7.1 本章目的 \r\n 7.2 参考资源与书目 \r\n 7.3 POSE的安装与使用 \r\n 7.4 安装MIDP for Palm OS \r\n 7.5 MIDP for Palm的运作原理 \r\n 7.6 Java HQ \r\n 7.7 如果打算将来与J2ME Wireless Toolkit配合 \r\n 7.8 将MIDP应用程序转换成PRC文件 \r\n 7.9 辅助调试工具(Developer.prc) \r\n 7.10 MIDP for Palm OS的中文问题解决方案\r\n 7.11 进阶——多平台解决方案 \r\n 7.12 结束语 \r\n 第8章 高级开发工具\r\n 第9章 集成开发工具\r\n第3部分 用户界面 \r\n 第10章 LCDUI——简介 \r\n第11章 LCDUI入门——高级API \r\n 第12章 LCDUI入门——低级API \r\n 第13章 LCDUI进阶——高级API \r\n 第14章 LCDUI进阶——低级API \r\n 第15章 流程控制的设计模式 \r\n第4部分 游戏设计 \r\n 第16章 Game API入门 \r\n 第17章 Game API进阶 \r\n第5部分 数据库程序设计 \r\n 第18章 MIDP数据库程序设计入门 \r\n 第19章 MIDP数据库程序设计进阶 \r\n第6部分 与外界联系 \r\n 第20章 Generic Connection Framework \r\n 第21章 与企业系统衔接 \r\n附录A 参考资源 \r\n附录B 关于Ant \r\n附录C 混淆器的安装与使用——RetroGuard/ProGuard \r\n
每一次,只要随手翻开自己过去写过的文章或书籍,心里就会产生强烈的不满意,“这怎么会是过去我曾经自以为是的优秀作品呢?”我把这种感觉告诉侯捷老师和李匡正大哥,他们一致很开心地恭喜我:“那就是你进步的证明呀!”
即使很高兴自己每年不断地进步,我更确认的是,原来以前的自己实在不如别人所想象的那般,就算是现在,仍然有更多进步的空间。想到这里,就会以更谦卑的心态来看待与尊重在某些特殊技术领域钻研的朋友们。撰写这本书每个章节时,我都会更加小心,深怕又写出以后让自己很不满意的东西。这本《Java手机/PDA程序设计入门》就是这种心态下的一个产物。
这本书是两年前台湾知城数字所出版《Java手机程序设计入门》的第二版。当时计划在入门篇之后继续出版进阶篇,但由于某些原因,使得出版的计划一直没有实现(据说晃点(注:“晃点”乃台湾方言,意为许诺的事情没有兑现)读者是作者的大忌,在此向大家致歉)。在这本《Java手机/PDA程序设计入门》之中,已经将过去本来准备写入进阶篇的内容完整纳入进来,也将原来入门篇的内容重新写过,以期更加流畅。至于原本计划的深入KVM的书籍,胡岳伟先生所撰写的《深入嵌入式Java虚拟机器(Inside KVM)》(学贯出版社)已是台湾该领域书中精品,我不可能写得比他好,所以放弃了。
在出版本书的同时,有更多的系统厂商(中华电信、台湾大哥大、远传电信、东信电信)提供Java软件的下载服务,更多的手机厂商(Nokia、SonyEricsson、Motorola、Siemens、BenQ、ASUS等)在手机之中内建执行Java程序的功能,使得J2ME从冷门的技术慢慢受到重视。作为J2ME的推广者,我当然深切地期盼J2ME也会变成一种显学,现在看起来应该离目标不远了。
目前,J2ME技术已发展到比较成熟的程度,Sun Microsystems也不断地对J2ME技术进行整合与扩充,使得J2ME与其相关技术多到不可能只用单独一本书涵盖。这本书的原稿本来达到1400多页,为了符合市场的状况,我忍痛将原稿的前800页整理成这本书,而另外的600页,将会变成《Java手机/PDA程序设计进阶》一书另外出版。这一次应该不会再晃点读者了。
即使确定未来一定会把这本书的下一版写得更好,各位手上这本书已是尽了自己当下最大的努力了,可以说是当前我脑袋里对J2ME技术知识的“快照”(snapshot)。希望阅读这本书的您,能充分享受到我苦苦翻阅J2ME源代码的努力成果。
王 森
sen.wang@taiwan.sun.com
Sun Microsystems, Taiwan
Education Services
Technical Consultant
本书内容分成两大体系,第1部分到第6部分讲解MIDP(Mobile Information Device Profile)技术。第P部分则讲解Personal Java技术。MIDP和Personal Java是两个独立的体系,虽然它们都使用Java程序语言作为基础,但彼此互不相干,互不隶属。
如果您已经熟悉J2SE平台上AWT或SWING的程序开发,那么Personal Java对您来说不是个新玩意儿,您一定可以很快地上手。而MIDP是一种全新的应用程序设计架构,过去没有接触过的朋友必须从头学习。不管学习Personal Java或是MIDP,学习MIDP或Personal Java程序设计前最好先对整个J2ME的体系与架构有非常清晰的概念。建议不管新手或是老鸟,最好先将第0部分看过一次,吸收最新的J2ME信息。
如果您的目的是开发PocketPC(Windows CE)或Symbian OS(Nokia 9210、SonyEricsson P800)上的Java应用程序,那么Personal Java是比较好的选择。您可以直接从第P部分开始阅读。
如果您想开发市面上Java手机或Palm OS上的Java应用程序,则必须采用MIDP技术。本书介绍的是最新的MIDP 2.0技术,在台湾第一款可以买到且支持MIDP 2.0的机种应该是Nokia 6600,本书的所有范例都放到Nokia 6600上头测试过,因此保证可以在模拟器和实机上正常运作。未来将会有更多支持MIDP 2.0功能的手机。
在撰写本书时,市面上的手机大多采用“MIDP 1.0加上特殊功能API”的情况,因此本书介绍的很多功能都无法适用于目前市面上的手机,但是基本的概念是一样的。在此建议您,如果您想针对某台手机开发MIDP应用程序,又期待能够发挥其最大的功能,那么请使用各家厂商所提供的专属开发工具进行开发。在本书第2部分,第8章介绍了各家厂商的开发工具。
如果您希望您的程序可以在各种手机上执行,那么请使用Sun官方提供的J2ME Wireless Toolkit。要开发支持MIDP 1.0的手机兼容程序,请使用J2ME Wireless Toolkit 1.0.x,使用J2ME Wireless Toolkit 1.0.x开发的程序可以在目前市面的所有手机上执行,而且理论上可以兼容于支持MIDP 2.0的手机(向下兼容)。如果您的目的是开发支持MIDP 2.0的手机兼容程序,请使用J2ME Wireless Toolkit 2.0.x,使用J2ME Wireless Toolkit 2.0.x开发的程序只能在支持MIDP 2.0的手机上运作。在本书出版时,J2ME Wireless Toolkit 2.1.x版已经可以下载了,J2ME Wireless Toolkit 2.1.x可以让开发人员选择要开发MIDP 1.0或2.0的应用程序,使用起来更为方便,开发人员可以不必再同时安装J2ME Wireless Toolkit 1.0.x与J2ME Wireless Toolkit 2.0.x,就可以在同一个工具中开发MIDP 1.0或MIDP 2.0的应用程序。
在大部分的情况下,支持Personal Java的机种几乎都支持MIDP(Nokia 9210、SonyEricsson P800、PocketPC请找http://me4se.org)。Personal Java在某种条件下,提供的功能比MIDP丰富,但是采用MIDP有比较好的可移植性,每款Java手机都必定能够执行MIDP应用程序。
如果您对本书有任何批评与建议,请寄信到sen.wang@taiwan.sun.com,您的挑剔和严格的批评都是让这本书变得更好的原动力。J2ME真算得上是一个相对冷门的东西,如果您知道如何增加这本书的销售量,也请您不吝赐教,本人必定奉上《Java手机/PDA程序设计进阶》一本。
任何关于本书的最新信息,或是J2ME技术的讨论,请多上http://www.javaworld.com.tw ,会有很多高手帮您解答。
期盼您在J2ME的世界里愉快地旅行。
感谢台湾Sun Microsystems的洪志鹏行销总监(Michael)、林咸聿小姐(Sissie)。没有Michael提供的教学舞台,不可能有这本书的出现。没有Sissie提供的教学器材,这本书一样不可能出现。
感谢台湾Nokia公司的李建志经理(Alex)、陈建志经理(Vincent)以及诺基亚论坛的石陶(Elliot)先生。我总是可以经由他们拿到新的Java手机进行测试。台湾如果没有Nokia公司中这些懂技术的高层人士,J2ME的发展肯定逊色不少。
感谢台湾Borland公司的李匡正经理(Tomm)。我总是可以拿到最新的JBuilder和Borland其它产品进行开发测试。学生时代起,我就曾忍痛掏钱购买Borland产品的学生版,我想这跟买盗版游戏的心态一样,自己出钱的,就会努力地去学好它,很便宜、甚至免费的东西,就不会花太多心思在上头。抓了一堆电子书的人,真的把这些书都看过了吗? 还不如掏些钱买下您手上这本书,把J2ME切实学好。
感谢曾经上过Sun Microsystems官方的SL-602、SL-603、SL-608,或是上过我其它J2ME课程的所有朋友。没有他们的参与和需求,本书就不会有那么多题材可写。
感谢曾经写信问我问题的朋友,没有各式各样的怪问题,就不会促使我对J2ME做更进一步的思考。
感谢邱建勋医师(勋哥),随时提醒我一个知识传播从业人员应该做到的事情。写这本书时,每当我觉得无法清楚地表达时,就会重新画图、想范例,试图让更多人了解技术的真正涵义。虽然我觉得今后还有很大的提升空间,但请相信我现在已尽力试图做到最好。
感谢林上杰先生(Browser)和许淑怡小姐(Baby)友情赞助封面和版面的设计,Browser说一本好书要卖得好,不能只是内容好,而是从封面到行销每个细节都要面面俱到。我非常赞成他的见解。
感谢我的家人给了我一个无忧无虑的生活环境,以及没有限制的发展空间。如果……如果我的身边有只拉布拉多猎犬或黄金猎犬就好了。可惜这些狗都要用钱才能买到,我反感花钱买狗的感觉,期盼哪天有缘人惠赐我一只,干温(注:台湾方言,意为感谢)!
把握移动开发之技术先机!掌握移动开发人员之必备技能!
名家力作!
移动开发专家王森先生最新力作。
第一!
国内第一本综合讨论Personal Java的书籍。
国内第一本全面阐释Java手机工业标准J2ME MIDP 2.0的书籍。
深入!
详细解释Java手机工业标准J2ME MIDP 2.0。
浅出!
示例丰富,图文并茂,讲解明晰,一目了然。
全面!
全面阐述Java手机与Palm OS的应用开发
全面讲解在PocketPC、Symbian OS两大移动操作系统平台上撰写Java应用程序。
完整!
完整介绍各家手机厂商所提供手机应用程序开发工具,包括Nokia、Sony Ericsson、Siemens的开发工具。
完整介绍如何使用JBuilder与NetBeans/Sun ONE Studio来集成各家厂商单独提供的开发工具。