技术开发 频道

资深开发者J2ME平台开发漫谈

  7.J2ME平台是否支持电话控制

  有些做过手机平台开发的朋友会有疑问:为什么J2ME 平台没有提供类似JTAPI(Java Telephony API,Java电话API)的技术?确实,对于手机平台开发来说,如果没有提供电话控制、电源管理等硬件控制、监控等功能就会让人感觉或多或少有些缺憾。而实际上,Sun 已经推出一组名为JavaPhone API 的功能子集,但遗憾的是暂时还没有应用到J2ME 平台。

  8.J2ME平台上访问数据库

  (1)Db4o数据库对J2ME平台的支持

  Db4o封装了对象的存储、检索和更新等细节,用户只需要关注业务逻辑。另外Db4o提供了多个子集版本,方便应用系统的选择。例如:对Java平台的支持分为1.5、1.2~1.4和1.1版本,对于J2SE平台可以选择1.5版本,而对于嵌入式应用只能选择低版本。

  由于数据库系统的消耗较大,CLDC配置并不提供对数据库系统的支持,在J2ME平台支持Db4o的是CDC配置,对应的Db4o的子集版本为Java1.2。

  (2)JDBC对J2ME平台的支持

  J2ME 定义了支持JDBC3.0、兼容CDC/FP 环境的JDBC 可选包(JSR169),用于在移动设备上实现嵌入式数据库访问。

  由于实现JDBC功能对硬件性能的要求较高,所以出于成本考虑,支持JDBC的移动设备在很长一段时期还只是处于试验阶段。但是随着硬件性价比的不断提升,JDBC也将逐渐成为J2ME平台中的主流应用。

  紧跟着JDBC在移动平台应用方面的推进,各个数据库厂商也在不断开发遵循JDBC规范并且支持J2ME平台的嵌入式数据库。其中Apache软件联盟旗下的Derby数据库以其对J2ME平台和JDBC规范的良好支持,成为面向移动设备的各款数据库中极具有发展前景的嵌入式数据库之一。

  与WTK开发环境不同的是,Sun并没有提供直接的开发包,而是提供的源文件,所以必须先编译得到JDBC开发包,再引入到CDC开发环境的路径中。

  在J2ME平台访问数据库的具体案例请参见《J2ME手机高级编程》一书中第9章“移动商务应用”。

  结束语

  即使在J2SE平台,程序对不同版本JDK的支持也是不尽相同,而这一点在J2ME显得尤为突出。往往出现在模拟器上的运行效果和实机并不相同的情形,相同代码安装在不同手机上的效果也不尽相同的情形也比较普遍,例如:同样支持MIDP-2.0和CLDC-1.1,在Moto E2和Nokia 6300实际上运行同样一款文件浏览程序的效果就大为不同。

  模拟器环境与实机环境的差距主要原因是各款手机系统对J2ME平台的遵守程度不一致。

  要想写好一个商业化的手机工具的难处就在这里,正确的代码在不同的实机上并不保证正确的运行,这也正是手机平台开发具有挑战性的一面。而要战胜这些困难的秘诀就是勤于实践,敢于摸索。这句看似简单的话,却要经过很多次的挫败才能够感受得到。

0
相关文章