网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  嵌入式开发技术前沿:仔细研究j2me     
  文章作者:未知  文章来源:水木森林  
  查看:76次  录入:管理员--2007-11-17  
 
  java 2 平台袖珍版(java 2 platform, micro edition(j2me))为开发者提供了伟大的工具,它把 java 平台的以网络为中心和平台不可知论的特性移植到有限存储器和有限处理器的设备。soma ghosh 解释了 j2me 领域的基础知识,向您展示了该平台的构件并演示了一个样本应用程序。
  
  在我们今天的生活中,个性化的智能信息用品已经是必需品。这些用品包括移动电话、双向寻呼机、智能卡、个人电脑记事本(personal organizer)和掌上电脑(palmtop)。它们的趋势是成为目的特定的、资源有限的网络连接设备,而不是我们迄今已知的通用台式机。为专门满足这一巨大的消费空间,java 2 平台袖珍版(j2me)提供了极多的创新 java 技术。
  
  java vm 的变迁:从台式机到微型设备
  作为 j2me 目标的微型设备具有 16 位或 32 位处理器和总量不少于大约 128 kb 的存储器。这些设备都符合连接限制设备配置(connected limited device configuration(cldc)),同时也保留了 java 的传统特性,即任何时间、任何地点的代码可移植性、部署灵活性、安全的网络传送以及代码稳定性。j2me cldc 的先决条件是一个紧缩的 jvm,称为 k 虚拟机(k virtual machine(kvm))。kvm 是为小存储器、资源受限的网络连接设备设计的。
  
  另一个 j2me 配置是连接设备配置(connected device configuration(cdc))。它的目标是高档的消费类电子产品和嵌入设备,例如智能通信器、高级“智能”寻呼机、智能个人数字助理(pda)以及交互式数字电视机顶盒。典型地,这些设备运行一个 32 位的微处理器/控制器,而且有总量大于 2 mb 的用于虚拟机和库的存储的存储器。cdc 包含有 c 虚拟机(c virtual machine(cvm))。在本篇文章中,我们将把注意力放在 cldc 和 kvm 体系结构上。关于 cdc 和 cvm 的更多信息,请参阅下面的参考资料部分。
  
  为适应占用资源很小的(small-footprint)设备的特性,kvm 已经按以下方式修改:
  
  vm 的大小和类库已减小为 50 到 80 kb 目标代码的标准
  
  存储器占用已经减小为几十千字节的标准
  
  在具有 16 位和 32 位处理器的设备上,性能有效
  
  体系结构是高可移植的,特定于机器和/或平台的代码的总量很少
  
  多线程和垃圾回收是独立于系统的
  
  可以对虚拟机的组件进行配置,以适合于特定设备,从而增强了灵活性
  
  j2me 体系结构和配置
  j2me 体系结构是基于设备的系列和类别的。一个类别定义了一个特定种类的设备:移动电话、简单寻呼机和电脑记事本都是单独的类别。对存储器和处理能力有相近需求的若干类别的设备构成设备的一个系列。移动电话、简单寻呼机和简单个人电脑记事本一起就是占用资源很小的设备的一个系列。
  
  图 1 定义了在 j2me 上下文环境中设备的系列和类别之间的关系。
  
  
图 1. 设备的系列(family)和类别(category)

  
 嵌入式开发技术前沿:仔细研究j2me(图一)

  为了支持资源受限设备系列所要求的那种灵活性和可定制部署,人们将 j2me 体系结构设计成模块化的和可伸缩的。j2me 技术在一个完整的应用程序运行时模型中定义了这种模块性和可伸缩性,在该模型中的四个软件层都构建在设备的主机操作系统上。
  
  图 2 显示了 j2me 体系结构。
  
  
图 2. j2me 体系结构

  
 嵌入式开发技术前沿:仔细研究j2me(图二)

  java 虚拟机层(java virtual machine layer):这一层是 java 虚拟机的一个实现,它是为特定设备的主机操作系统定制的,而且支持一个特定的 j2me 配置(configuration)。
  
  配置层(configuration layer):配置层定义了 java 虚拟机功能的和特定类别设备上可用的 java 类库的最小集。从某种程度上说,一个配置定义了 java 平台功能部件和库的共同性,开发者可以假设这些功能部件和库在属于某一特定类别的所有设备上都是可用的。用户不太会见到这一层,但它对框架(profile)实现者非常重要。
  
  框架层(profile layer):框架层定义了特定系列设备上可用的应用程序编程接口(api)的最小集。框架在一个特定的配置上面实现。应用程序是针对特定的框架编写的,因此可以移植到支持该框架的任何设备上。一个设备可以支持多个框架。用户和应用程序供应商看到最多的就是这一层。
  
  midp 层:移动信息设备框架(mobile information device profile(midp))是一个 java api 集合,它处理诸如用户界面、持久存储和联网这样的问题。
  
  java 虚拟机层(java virtual machine layer)、配置层(configuration layer)和框架层(profile layer)一起构成了连接限制设备配置(connected limited device configuration(cldc))。mid 框架(mid profile)和 cldc 提供了一个标准的运行时环境,这个环境允许把新的应用程序和服务动态地部署在终端用户设备上。
  
  用 midp api 进行 j2me 编程:构件
  cldc 和 midp 组合起来为创建移动电话和简单双向寻呼机上的应用程序提供了完整的环境。
  
  mid 框架的核心是一个 midlet 应用程序。这个应用程序继承了 midlet 类,以允许应用程序管理软件对 midlet 进行控制、从应用程序描述符检索属性以及对状态变化进行通知和请求。
  
  所有 midlet 都继承 midlet 类 — 运行时环境(应用程序管理器)和 midlet 应用程序代码之间的接口。midlet 类提供了用于调用、暂停、重新启动和终止 midlet 应用程序的 api。
  
  应用程序管理软件可以在运行时环境内管理多个 midlet 的活动。此外,midlet 可以自己发起一些状态变化,并把这些变化通知给应用程序管理软件。
  
  midp api 类的完整集合可以分为两个类别:
  
  用于用户界面的 midp api:设计这些 api 是为了能以一系列屏幕显示为基础与用户进行交互操作,每一屏幕显示把适量的数据显示给用户。命令以每屏幕为基础提供给用户。这些 api 允许应用程序决定下一屏显示什么、执行什么计算和使用网络服务的何种请求。
  
  用于处理数据库的 midp api:这些 api 负责组织和操作设备数据库,这个数据库由在 midlet 的多个调用之间跨越时保持持久的信息组成。
  
  底层的 cldc api 用于处理字符串、对象和整数。还提供了 java 2 api 的一个子集,用于处理 i/o 和网络通信。
  
  图 3 显示了 j2me 的构件。
  
  
图 3. j2me 的构件

  
 嵌入式开发技术前沿:仔细研究j2me(图三)

  标准(standard)版和袖珍(micro)版 java api 之间的关系如图 4 所示。
  
  
图 4. j2me 和 j2se api 之间的关系

  
 嵌入式开发技术前沿:仔细研究j2me(图四)

  j2me 中的事件处理
  j2me 中的事件处理是以一系列屏幕显示为基础的,这与 java 平台的台式机版本的事件处理有很大不同。每一屏显示特定的少量数据。
  
  命令以每屏幕为基础提供给用户。command 对象封装了与动作的语义相关的名称和信息。这个对象主要用于为用户提供动作选择。所产生的命令行为定义在与屏幕显示相关联的 commandlistener 中。
  
  每一个 command 包含三块信息:一个 label(标号)、一个 type(类型)和一个 priority(优先级)。label 用于命令的可视表示;type 和 priority 由系统使用,系统用它们来决定 command 如何映射到具体用户界面。
  
  图 5 显示了 j2me 中的事件处理机制。
  
  
图 5. 在 j2me 中处理用户事件

  
嵌入式开发技术前沿:仔细研究j2me(图五)

  设计用户界面
  midp api 尽管维护的是一个受限的框架,但它还是提供了 ui 元素的完整集合。以下是最重要的 ui 元素中的一些:
  
  alert 用于在屏幕上向用户显示关于异常情况或错误的信息。
  
  choice 用于实现从既定数量的选项中进行选择。
  
  choicegroup 提供一组相关选项。
  
  form 作为其它 ui 元素的容器。
  
  list 提供一个选项列表。
  
  stringitem 充当只显(display-only)字符串之用。
  
  textbox 是允许用户输入和编辑文本的屏幕显示。
  
  textfield 允许用户输入和编辑文本。多个 textfield 可放到一个 form 中。
  
  datefield 是一个可编辑的组件,用于表示日期和时间信息。datefield 可以放到 form 中。
  
  ticker 用于文本的可滚动显示。
  ui 元素的完整列表可在 mid profile api 文档中找到,该文档随 j2me wireless toolkit 一起提供(请参阅下面的参考资料获得更多信息)。
  
  管理设备数据库
  midp 提供了一组用于组织和操作设备数据库的类和接口:recordstore、recordcomparator 和 recordfilter。recordstore 由大量的记录组成,这些记录在 midlet 的多个调用之间跨越时保持持久。对 recordstore 中的记录进行比较,或者从 recordstore 中抽取若干组记录,都是 recordcomparator 和 recordfilter 接口提供的功能。
  
  开发 j2me 应用程序
  前面的部分已经对 j2me 作了一个概览。在这一部分中,我们将通过开发一个现实的电话界面应用程序来熟悉这个平台的实践细节。
  
  一个样本应用程序:电话日历
  j2me 的著名特色之一是它在受限环境中的日期处理功能
 
 
上一篇: java api for xml parsing(jaxp)演进    下一篇: java嵌入式开发(2)
  相关文档
简述java对象的产生与使用 11-17
java 调用存储过程 11-17
进阶--对java/jsp中文乱码问题解决心得 03-04
关于学习java的一点经验 11-17
软件开发成功12法则 11-16
j2ee应用服务器与jbuilder集成的实现 11-16
一个软件测试工程师的加班经历 11-17
java与.net集成将打破soa应用壁垒 11-17
jdbc介绍 11-17
高级应用 java多线程设计模式详解之一 11-17
从数据库中读取并生成图片的servlet 11-17
atendofstream 属性 11-16
说说java的args 大家可能没有注意到的现象 11-17
string和stringbuffer类字符串的区别 11-17
javamail发送附件的例子 11-17
isnan 方法 11-16
thinking in java第三版读书笔记-第七章:多态性 11-17
hibernate 3新增xml关系持久性介绍 11-16
设计模式的原则 11-17
jcrontab - java定时程序进阶学习 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息