`
isiqi
  • 浏览: 16811233 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

开发高可移植性J2ME的软件测试篇

阅读更多

【IT168 技术文档】随着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规范列表

名称

内容

JSR118

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

JSR82

定义了蓝牙接口相关的APIs

JSR135

MobileMediaAPI,定义了多媒体相关开发的组件APIs

JSR172

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

JSR75

JSR75(PDAOptionalPackagesfortheJ2METMPlatform)中定义了两个可选包:
PIM(ThePersonalInformationManagement)API,提供对个人信息数据的访问,一般包括名片夹,日历项,和待办事项。
FC(TheFileConnection)APIs,提供对本地文件系统的访问。

JSR177

安全APIs

JSR211

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

JSR239

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

JSR179

LocationAPIs主要是用于LBS服务

JSR180

SIPAPIs

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

JSR184

Mobile3DGraphicsAPIs,3D图形开发。

JSR229

手机支付APIs

JSR234

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

JSR238

国际化支持APIs

JSR248

JSR248:MobileServiceArchitectureMSA移动服务架构。

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

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

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

检查JSR支持

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

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

检测代码

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->System.getProperty(property_key);


public String getInfo(String info) {

if (info == null) {

return "<unknown>";

}
else {

return info;

}

}

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

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->private boolean hasClassExit(String aClassName) {

try {

Class.forName(aClassName);

return true;

}
catch (Exception e) {

return false;

}

}

  上面的检测代码相对比较简单,而且也容易理解,关键是那些JSR 支持的属性名称,或者APIs的写法。

  下面是部分属性名称,仅供参考。

Systemproperty

Description

Value

microedition.platform

DefinedinCLDC1.0andCLDC1.1.

microedition.encoding

AlwaysreturnsISO-8859-1.

microedition.configuration

DefinedinCLDC1.0andCLDC1.1.

microedition.profiles

依赖于底层实现

microedition.locale*

JSR37

依赖于底层实现

microedition.commports

依赖于底层实现

microedition.hostname

localhost

microedition.profiles

MIDP2.0

file.separator

文件分割符

依赖于底层实现(/,\)

microedition.pim.version

JSR75

1.0

microedition.smartcardslots

JSR177

依赖于底层实现

microedition.location.version

JSR179

1.0

microedition.sip.version

JSR180

1.0

microedition.m3g.version

JSR184

1.0

microedition.jtwi.version

JSR185

1.0

wireless.messaging.sms.smsc

JSR205

依赖于底层实现

wireless.messaging.mms.mmsc

JSR205

依赖于底层实现

CHAPI-Version

JSR211

JSR211

Nokia的一些系统参数

com.nokia.network.access

网络参数

pd-GSM

pd.EDGE-EDGE

pd.3G-3G

pd.HSDPA-3G

csd-GSMCSD/HSCSD

bt_pan-BluetoothPANnetwork

wlan-WIFI

na-<span styl

分享到:
评论

相关推荐

    开发易于移植的J2ME游戏.doc

    在开发J2ME游戏时,移植性是一个关键的考虑因素,因为不同的设备有着不同的硬件配置,包括屏幕尺寸、按键布局、API支持以及性能差异。为了确保游戏能够在多种设备上正常运行,开发者需要采取一系列策略来优化代码并...

    J2ME开发 J2ME开发 J2ME开发

    "飞蛾软件Feiesoft.com.url"可能是一个链接,指向一个提供J2ME开发工具、库或者示例代码的网站。 学习J2ME开发,你需要掌握基本的Java语法,理解MIDP和CLDC的概念,熟练运用J2ME提供的API,以及学会如何适配不同...

    J2ME开发工具篇.zip

    **J2ME开发工具篇** Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备,如早期的智能手机、电视盒和游戏设备等。本资料主要探讨了在诺基亚和摩托罗拉等手机上进行J2ME应用程序开发的两款常用...

    精通J2me嵌入式开发-环境配置.pdf

    ### 知识点详解:精通J2me嵌入式开发 - 环境配置 #### 一、J2ME概述 ...以上内容涵盖了从J2ME开发环境的搭建到基本应用的创建和测试的全过程,对于初学者来说,是踏入J2ME嵌入式开发领域的良好起点。

    J2ME开发详解工具篇

    资源名称:J2ME开发详解工具篇J2ME开发详解-工具篇,相当基础的文章,主要是根据目前比较热门的手机,像诺基亚、西门子、摩托罗拉等品牌手机程序的IDE开发工具,主要讲解配置及一些基础知识。 资源太大,传百度网盘...

    J2ME开发详解工具篇 pdf

    本篇文章将深入探讨J2ME开发中的工具篇,帮助开发者更好地理解和掌握J2ME应用的构建过程。 1. **J2ME开发环境** 在J2ME开发中,我们通常使用Sun Microsystems(现已被Oracle收购)提供的Java Wireless Toolkit...

    j2me游戏开发 经典教程

    j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发

    j2me移植Android引擎

    【标题】"J2ME移植Android引擎"涉及的是将基于Java Micro Edition (J2ME) 开发的游戏或应用转换到Android平台的过程。J2ME是Java平台的一个子集,主要用于移动设备和嵌入式系统,而Android则是一个开源的操作系统,...

    J2ME应用软件测试指南.pdf

    J2ME应用软件测试指南.pdf

    j2me 中文教程 开发环境 J2ME语言

    本教程首先介绍了 j2me 开发体系,然后深入各个MIDP2.0 API,最后是搭建平台的知识。 第一章 “J2ME 技术概述”让你在学习J2ME 以前知道什么是J2ME。本章介绍了J2ME 平 台的体系结构和MIDlet 生命周期的概念。为以后...

    j2me开发环境配置

    **J2ME 开发环境配置详解** Java 2 Micro Edition(J2ME)是一种轻量级...总之,配置J2ME开发环境虽然涉及多个步骤,但只要按照上述指导进行,就能搭建起一个功能强大的开发环境,为你的J2ME开发之路打下坚实的基础。

    j2me开发框架介绍

    j2me 开发框架介绍 j2me 是一种用于开发无线应用程序的平台,它提供了一个灵活、强大和开放的开发环境。随着 j2me 的普及,出现了许多开源框架,旨在简化开发过程,提高开发效率。下面将介绍这些框架,並分析它们的...

    J2ME项目测试文档

    J2ME项目测试文档,J2ME项目测试文档,非常实用

    J2ME工具篇.rar

    2. **Eclipse**:Eclipse也是一个广泛使用的开源IDE,通过安装J2ME插件(如WTP - Web Tools Platform或J2ME Wireless Toolkit插件),可以扩展为J2ME开发环境。Eclipse的插件系统允许开发者根据需要自定义工作环境,...

    j2ME游戏开发详解

    【j2ME游戏开发详解】 Java 2 Micro Edition(j2ME)是Oracle公司推出的用于开发和部署在小型设备、移动设备以及嵌入式系统上的应用程序的平台。它以其轻量级、跨平台的特性,成为了早期手机游戏开发的重要工具。本...

    简谈手机游戏移植j2me

    本文将基于一篇关于手机游戏移植到J2ME的文章进行深入分析,探讨其中所涉及的关键技术和挑战。 #### 二、J2ME概述 J2ME是Sun Microsystems为嵌入式和移动设备设计的一种Java平台标准。它主要由两部分组成:配置...

    J2ME开发大全

    9. **设备适配与兼容性**: 由于J2ME设备的多样性,开发者需要考虑不同设备的屏幕尺寸、内存限制和硬件特性,编写可移植性强的代码。 10. **源代码分析与实践**: "J2ME开发大全"中包含的源代码,是你深入理解J2ME...

    J2ME开发大全(非常经典)

    最后,测试和调试是J2ME开发过程中的重要环节。开发者需要掌握模拟器的使用,以及如何在真实设备上进行测试,以确保应用能够在各种环境中正常运行。 总而言之,《J2ME开发大全》这本书将带领读者深入理解J2ME平台,...

    J2ME移动开发实战精解教学

    J2ME移动开发实战精解教学J2ME移动开发实战精解教学

Global site tag (gtag.js) - Google Analytics