技术中心

这里象征着我们的态度和能力

>开发高可移植性J2ME的软件
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-01-01      浏览次数:10767
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  随着MTK的流行,使现在的J2ME虚拟机市场上品牌众多,除了索爱,Nokia S40,Moto,三星,LG等国际大品牌的虚拟机,更是有MTK,展讯内置的一些不知名的虚拟机,因此当初Write Once,Run AnyWhere变成了Write Once,Debug AnyWhere了。对于一个没有经验的J2ME程序员来说,开发一个兼容性高的软件变成了噩梦,不断的在不同手机,不同平台上打log,在这台手机上解决了这个问题,跑到另外一台机器上问题有重新了,噢,my god!我不干了。别急!我写这篇文章的目的就是要告诉大家,对于这种状况,我们也不是束手无策的。下面就等我慢慢的道来解决之道。

  本文主要适合那些有经验的J2ME程序员在优化软件,或者是需要考虑软件兼容性时的参考文档。

  Jblend 平台

  JBlend 是一家日本的嵌入式虚拟机厂家生产的J2ME虚拟机,此虚拟机大量的用于低端手机平台,本人发现有使用此虚拟机的平台有,MTK,MOTO。

  官方网站:http://www.aplixcorp.com/chs/index.html

  索尼爱立信平台

  索爱的虚拟机平台是:Java Platform。最新版本是8。索爱的平台在性能上,程序的稳定性方面要优于其他虚拟机平台。而且APIs方面的bug也很少,在网络支持方面也很优秀。基本上不会因为你忘记关闭连接而导致连接泄漏。

  官方网站:http://developer.sonyericsson.com/site/zhcn/docs_and_tools/p_docs_and_tools.jsp

  S40平台

  S40平台是Nokia针对S60智能操作系统推出适应低端手机的手机操作系统,相对其他虚拟机平台来说,S40虚拟机对J2ME的支持相对比较完善,而且稳定些,不过网络环境这块,S40对网络资源泄漏特别关注,具体不同的手机,对同时打开多个连接有限制,这里建议大家做个测试,就不再累赘了。

  官方网站:http://www.forum.nokia.com/

  S40平台详解:http://tech.sina.com.cn/mobile/n/2006-09-22/1053107637.shtml

  S60 平台

  Nokia 智能机平台下的J2ME虚拟机。相对S40来说,S60支持的特性比较多,而且有些比较特殊的用法,比如获取系统相关属性的时候就是其中之一。

  什么是JCP?

  JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。Java技 术和JCP两者的原创者都是SUN计算机公司。然而,JCP已经由SUN于1995年创造Java的非正式过程,演进到如今有数百名来自世界各地Java 代表成员一同监督Java发展的正式程序。JCP维护的规范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。组织成员可以提交JSR(Java Specification Requests),通过特定程序以后,进入到下一版本的规范里面。所有声称符合J2EE规范的J2EE类产品(应用服务器、应用软件、开发工具等),必须通过该 组织提供的TCK兼容性测试(需要购买测试包),通过该测试后,需要缴纳J2EE商标使用费。两项完成,即是通过J2EE认证(Authorized Java Licensees of J2EE)。

  什么是JSR?

  JSR是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

  下面是J2ME JSR规范列表

名称

内容

JSR 118

MIDP 2.1 规范。定义了MIDP 相关的接口,高级UI,低级UI,RMS,网络相关的APIs

JSR 82

定义了蓝牙接口相关的APIs

JSR135

Mobile Media API,定义了多媒体相关开发的组件APIs

JSR 172

1. 一个轻量级的标准XML解析器
2. Web Services的远程调用API
其中这个JSR172实现的轻量级的XML解析器是JAXP1.2(Java API for XML Processing)的一个子集。我们可以查看WTK提供的API看到j2me-xml提供的类一共只有12个,这说明这个轻量级的XML解析器是适合 在移动电话这种资源受限设备上运行的。

JSR 75

JSR 75(PDA Optional Packages for the J2METM Platform)中定义了两个可选包:
PIM (The Personal Information Management)API,提供对个人信息数据的访问,一般包括名片夹,日历项,和待办事项。
FC(The FileConnection) APIs,提供对本地文件系统的访问。

JSR 177

安全APIs

JSR 211

Content Hander 内容处理APIs,可以调用此API打开相应的文件,比如你可以打开jar安装文件,打开mp3。

JSR 239

Open GL@ES。主要用于图形相关操作

JSR 179

Location APIs 主要是用于LBS服务

JSR 180

SIP APIs

SIP是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以好似Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。

JSR 184

Mobile 3D Graphics APIs,3D图形开发。

JSR 229 

手机支付APIs

JSR 234

手机高级多媒体支持,可以支持更丰富的多媒体操作

JSR 238

国际化支持APIs

JSR 248

JSR 248: Mobile Service Architecture MSA 移动服务架构。

MSA for CLDC规范定义了移动电话上的下一代Java平台,当然是基于CLDC的J2ME平台。

MSA for CLDC的目的是为了减少J2ME平台的API分裂,为开发者定义一个高操作性的应用程序和服务环境。

JTWI(Java Technology for Wireless Industry,JSR 185)定义了一系列的规范来强制实现JTWI规范的设备必须实现某些JSR,例如MIDP2.0,WMA和MMAPI等。MSA for CLDC可以认为是JTWI的第2版,它规定了一个高度集中的J2ME平台运行环境。

  检查JSR支持

  检查JSR的支持简单的方式有两种:

  1. 是通过System.getProperty("property_name")的方式进行判断,一般如果存在相关的APIs支持,它会返回一个非null字符串。

  检测代码

  System.getProperty(property_key);

  public String getInfo(String info) {

  if (info == null) {

  return     "<unknown>";

  } else {

  return info;

  }

  }

  2. 通过Class.forName(clase_name)的方式。

  private boolean hasClassExit(String aClassName) {

  try {

  Class.forName(aClassName);

  return true;

  } catch (Exception e) {

  return false;

  }

  }

[1] [2] [3] [4] [5] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730