攥在手掌里的Java
2008-01-05 08:53:09 来源:WEB开发网我是从读王森先生的书正式开始java的手机游戏开发。《Java手机程序入门及应用》一书让我初窥门庭,而《Java深度历险》则给我留下了深刻的印象。所以说,对于王森先生的文章,我是不生疏的。
作为一个J2ME手机开发的铁杆鼓吹手,我一直都在不遗余力的向四周有志于移动应用领域开发的朋友们宣传MIDP并且推荐王先生的著作。J可想而知,当我拿到王先生的新作《Java手机_PDA程序设计入门》电子版时心中的欣喜和激动。可是当得知要为王先生的这部新著撰写书评的任务时,也同时感到了压力和不安。假如真的要让我来写这个东西,我很可能会把它写成一篇读书笔记或是读后感,假如让我给写好的这篇东西加个期望的话,我希望是能给更多的手机应用开发的朋友们带来一点帮助吧!
细细的读完了这本书,掩卷长思,的确受益匪浅。我把《Java手机程序入门及应用》比作一道java口味的清淡爽口小菜,那么<手机_PDA程序设计入门>>就是一道营养丰富,口味独特的嵌入式开发的盛馔。因为这本书不但囊括了J2ME开发的方方面面,还涉及了大量Personal Java,Symbian 和Pocket PC等嵌入式平台系统的开发知识和技术发展背景。这本书介绍了从J2ME技术发展,工具配置,相关应用开发包到数据库以及网络等等的知识和开发技巧,把握全局,事无巨糜,却被脉络清楚的组织的井井有条,赏之悦目。文章的特色不仅在于其布局严谨,行文流畅,也在于王先生将各种资料的出处采用列表的方式罗列清楚,这是其它的书籍所很少能够提供的。点击互联网上的URL链接,宛如念响了"芝麻开门"的咒语,一座座丰富的宝库便向我们打开了。J
全书总共分成以下几个大部分来介绍J2ME的知识:1.J2ME背景的介绍和开发的环境;
2.J2ME开发的基础知识,包括生命周期,开发工具的选择,高级用户接口API,低级用户接口API等;3.具体地介绍了J2ME开发的进阶,其中包括了Game API的开发知识,数据库的开发,通用的连接框架以及如何开发与企业系统的衔接等;4.概要的介绍了其他的各种不同的手机平台开发工具配置流程,包括Personel Java,Pocket PC以及Symbian等等。这本书涵盖的知识面非常的广。很多在《Java手机程序入门及应用》一书中不是太清楚的概念,在这里都作了澄清,我们可以更好地把它看作是一本进阶的教程。但是假如作为初学者,我建议还是应该先看看《Java手机程序入门及应用》,然后再看本书也许将会有更大的收获。
出于经验和所关注知识层面各方面的原因所限,我无法像通常的书评一样从市场,从全局,从大处来把握评价这本书。我只能依据自身的开发经验,平时在网上在论坛上与朋友所讨论开发中所存在的问题以及从我所关注本书的某些细节方面出发,来和大家一起来分享这道盛宴。我就从一个手机Java的程序员的角度坦率的说说这本书将能给我们带来的好处。J
1)关于此书,我以前在网上就浏览过它相关Game API章节的电子版。早就心向往之,今日终于可以一窥端倪。本书的知识结构都是相基于MIDP2.0规范的,这一点须请读者非凡留心,在测试书中的实例的时候应该使用WTK2.0 或者 WTK 2.1工具,虽然当前有些扩充的API能够实现的手机不多,但是这是未来J2ME的发展方向,这也是作者立意深远之处。"工欲善其事,必先利其器",WTK本身就是一个很好的编译模拟打包的集成工具,但是相对于MIDP的不同版本,也给我们开发工作带来过很多困扰。笔者曾经在论坛上碰到过这样的例子:不少的朋友的编译打包后的jad,jar文件无法在手机上安装,原因就在于MIDP的版本问题。本书中说明了三种标准的开发版本,即MIDP1.0,JTWI,MIDP2.0,并且说明WTK2.1就能够开发兼容与三种不同规格的应用程序,还能视自己的需求调整环境。这样,我们可以通过统一的WTK2.1来开发我们的手机游戏了。
2)在国内系统而全面的介绍JCP标准化组织和JSR接口规范以及相关的J2ME发展背景的书籍资料不多,而本书的作者花费了很长的篇幅来介绍这一背景和发展方向。如同各种Sun所展现的Java技术,J2ME的每种相关的技术都经过由一定的步骤来制定,这个过程就是JCP。EXPert Group遵循JCP所制定的准则来制定各种Java规范(JSR)。还有相关的参考实现(RI)和兼容测试包(TCK)。对JSR标准等相关的背景知识的具体了解可以更有助于我们更加清楚的把握J2ME发展的整体结构和方向。
3) 有很多的技术细节,也许都是我们时所忽略的。比如,在网上有不少的朋友都在问我,midlet小程序是否所能够访问外部文件的问题,在这里也能够找到了解答,在Midlet中只能存取来自同一个jar文件中所有非class的资源文件,当然,RMS也是资源的一种。这主要是从手机系统的安全角度来考虑的,包括图片,文本在内jar中所有的资源文件我们都可以通过 java.lang.Class.getResourceAsStream()函数来访问,这些也都是书中所提到的。
4)在Midlet的生命周期状态的流程分析中,有很多的细节也是我们平时也许并没有注重到的。比如说,在程序的生命周期中startApp()函数很可能不仅仅只被调用一次,而是每次从停止状态到启动状态的时候都会被调用,所以我们假如有些只需要初始化一次的代码就不要放在startApp()而是在构造函数中,并且尽量不要在startApp()做过多的初始化动作。以及它所抛出的异常的处理流程,这些都是值得注重的,这本书告诉我们,程序的许多效率的提高,其根源也许就在于这些林林总总的细节问题。
更多精彩
赞助商链接