J2ME编程/SymbianOS和J2ME
这不是SymbianOS的完整历史,而实际上是对SymbianOS的总结,以便我们作为J2ME开发人员能够确定在SymbianOS生态基础设施中,我们可以通过操作系统版本和设备系列版本访问哪些可选API。
在SymbianOS之上部署了两个主要的设备平台。诺基亚创建了Series60并将其授权给三星等其他公司。UIQ(Symbian的基于笔的UI)是索尼爱立信、摩托罗拉和Symbian有限公司的共同努力。
在我们开始J2ME平台之前,先做一个简短的脚注。在J2ME平台之前,SymbianOS附带了其他两个Java平台,SymbianOS 5上的嵌入式Java以及SymbianOS 6上的Personal Java和Javaphone组合。因此,为了准确反映哪些操作系统版本具有这种组合,这里将提及PersonalJava和JavaPhone(在Personal Profile之前)。注意:虽然底层操作系统在Symbian的后续版本中不限制堆大小、持久存储等,但JSR确实以JSR 185(JTWI)的形式限制了jar、jad和持久存储的大小。
2002年,MIDP 1.0被移植回SymbianOS 6版本。MIDP 1.0移植回的SymbianOS版本是SymbianOS 6.0和SymbianOS 6.1("标准Java". Symbian上的Java.)
因此,在2002年及以后的设备上,我们仅在SymbianOS 6.0和SymbianOS 6.1上拥有基本的MIDP 1.0。
- MIDP
- 除了pausedApp从未被调用之外,MIDP 1.0与MIDP 1.0规范一致。
- CLDC 1.0
- Sun的KVM
- Personal Java(Personal Profile之前)
- 修改后的Personal Java 3.0.x(PesonalJava应用程序环境1.1.1a)
- JDVMI用于通过TCP/IP连接进行调试支持
- JavaPhone 1.0
- JavaPhone 1.0 API
- 用于串行通信和安全套接字通信的Personal Java可选接口(支持HTTPS,但未实现javax.net.ssl)。
- Java电话API(JTAPI)
- Java移动电话
具有基本MIDP 1.0实现("SymbOS7.x". Symbian OS版本7.0功能描述.)
- MIDP
- 除了pausedApp从未被调用之外,MIDP 1.0与MIDP 1.0规范一致。
- CLDC 1.0
- 堆大小、代码大小和持久存储大小不受限制
- 实现了空中下载配置
- 实现了包括套接字在内的GCF
- KVM虚拟机
- Personal Java(Personal Profile之前)
- 修改后的Personal Java 3.0.x(PesonalJava应用程序环境1.1.1a)
- JDVMI用于通过TCP/IP连接进行调试支持
- JavaPhone 1.0
- JavaPhone 1.0 API
- 用于串行通信和安全套接字通信的Personal Java可选接口(支持HTTPS,但未实现javax.net.ssl)。
- Java电话API(JTAPI)
- Java移动电话
在这个版本的SymbianOS 7中,引入了MIDP 2.0("Symbos-v7s". Symbian OS版本7.0s功能描述. {{cite web}}
: 在|work=
第24位处有换行符(帮助)) 此MIDP 2.0实现包括
- MIDP
- 空中下载配置MIDP 2.0实现
- 堆大小、代码大小和持久存储大小不受限制
- GCF实现包括套接字、服务器套接字、数据报套接字、安全套接字、HTTPS和HTTP
- 实现了WMA
- 实现了蓝牙,但不包括Push和OBEX配置文件
- 支持CLDC1.0实现
- Sun的CLDC HI VM 1.0
此SymbianOS 7.0s版本有两个配置,智能手机和通信器。通信器版本同时包含上面描述的MIDP 2.0和此Personal Java配置
- Personal Java(Personal Profile之前)
- 修改后的Personal Java 3.0.x(PesonalJava应用程序环境1.1.1a)
- JDVMI用于通过TCP/IP连接进行调试支持
- JavaPhone 1.0
- JavaPhone 1.0 API
- 用于串行通信和安全套接字通信的Personal Java可选接口(支持HTTPS,但未实现javax.net.ssl)。
- Java电话API(JTAPI)
- Java移动电话
这是SymbianOS上第一个完全符合JTWI的MIDP 2.0实现("Symbos-v8x". Symbian OS版本8.0功能描述.)
- OTA MIDP 2.0实现
- 新的安全模型的完整JTWI实现,允许签名MIDlet
- 堆大小、代码大小和持久存储不受限制
- 完整的GCF支持
- 实现了WMA
- 实现了蓝牙,但不包括OBEX配置文件
- CLDC1.1实现
- 多媒体JSR 135
- 3D图形JSR 184
- 文件/PIM GCF JSR 75
- Sun的CLDC HI 1.1 Vm,包含JNI子集
实现了符合JTWI的MIDP 2.0("Symbos-v8.1". Symbian OS版本8.1功能描述.)
- OTA MIDP 2.0实现
- MIDP 2.0
- CLDC 1.1
- 堆大小、代码大小和持久存储不受限制
- GCF实现,包括所有套接字实现
- PIM/文件GCF JSR 75
- MMedia JSR 135
- 3D图形JSR 184
- 实现了蓝牙,但不包括OBEX配置文件
- WMA
- Sun的CLDC HI VM 1.0,包含JNI子集
实现了 MIDP 2.0 和 JTWI("Symbos-v91". Symbian OS 版本 9.1 功能描述.)
- MIDP 2.0
- CLDC 1.1
- WMA
- MMedia JSR 135
- 3D 图形 JSR1 84
- 实现了蓝牙,但不包括OBEX配置文件
- JTWI 安全模型
- 堆大小、代码大小和持久存储大小不受限制
- Sun的CLDC HI VM 1.0,包含JNI子集
- Series80
- 设备平台 2.0
- 来自底层 SymbianOS 7.0s 的 MIDP 2.0/CLDC 1.0,特别是通信器 SymbianOS 7.0s 配置
- 使用 IBM 的 J9 VM 实现 CDC 和个人资料
- 设备平台 2.0
- Series90
- 设备平台 2.0
- 来自底层 SymbianOS 8.0 的 MIDP2.0 CLDC1.1
- 包 com.nokia.mid.ui 和 com.nokia.mid.sound 中的旧版闭源诺基亚 UI API
- 设备平台 2.0
- 设备平台 1.0
- 基于 SymbianOS 6.1,具有 MIDP 1.0 和 CLDC 1.0 以及包 com.nokia.mid.ui 和 com.nokia.mid.sound 中的旧版诺基亚 UI API。
- 在诺基亚 UI API 中不支持背光
- 设备平台 2.0
- 功能包 1.0cs
- 基于 SymbianOS 7.0s,提供 MIDP 2.0 和 CLDC 1.0
- 支持 MMAPI JSR 135
- 支持 SymbianOS 7.0s 中的其他 JSR
- 功能包 2.0
- 基于 SymbianOS 8.0,实际内核版本为 SymbianOS 8.0b,具有 MIDP 2.0 和 CLDC 1.1
- 支持所有 SymbianOS 8.0 的 JSR
- 功能包 3.0
- 基于 SymbianOS 8.1,提供 MIDP 2.0 和 CLDC 1.1
- 支持所有 SymbianOS 8.1 的 JSR
- 功能包 1.0cs
- UIQ 2.0
- 基于 SymbianOS 7.0,提供 MIDP 1.0 和 CLDC 1.0
- 支持 SymbianOS 7.0 的 JSR
- UIQ 2.1
- 基于 SymbianOS 7.0s,提供 MIDP 2.0 和 CLDC 1.0
- 支持 SymbianOS 7.0s 的 JSR
通过使用这些信息,您不仅可以确定设备上 MIDP 和 CLDC 的版本,还可以确定在您可能针对应用程序开发的 SymbianOS 设备上可以访问哪些由 JSR 表示的可选 API。
- "标准 Java". Symbian 上的 Java.
- "SymbOS7.x". Symbian OS 版本 7.0 功能描述.
- "Symbos-v7s". Symbian OS 版本 7.0s 功能描述.
- "Symbos-v8x". Symbian OS 版本 8.0 功能描述.
- "Symbos-v8.1". Symbian OS 版本 8.1 功能描述.
- "Symbos-v91". Symbian OS 版本 9.1 功能描述.
J2ME、Java 和所有基于 Java 的商标是 Sun Microsystems, Inc. 在美国和其他国家/地区的商标或注册商标。所有其他商标均为其各自所有者的财产。