`
roruby
  • 浏览: 336337 次
  • 来自: ...
社区版块
存档分类
最新评论

J2ME应用程序与简表(转)

阅读更多

       在这一章中,我们将复习一下在为小型设备开发应用程序时需要牢记的一些注意事项。我们将看一下在使用 J2SE 编译 J2ME 应用程序时调用编译器的方法。最后我们将探究打包和部署,以及在这个过程中提前验证所扮演的角色。

        设计开发小型设备应用程序要注意的事项:

          为小型设备开发应用程序,需要您在设计阶段制定某种策略。最好是在开始编写代码之前,战略性地为小型设备设计应用程序。由于无法考虑到所有的 "gotchas" ,在开发应用程序之前更正代码是一件很痛苦的工作。

下面是一些可以考虑的设计策略:

1、保持程序简单。除去不必要的功能,如果可能的话,将它们做成独立的、次要的应用程序。

2、程序越小越好。这一点对所有的开发者来说应该是显而易见的。越小的程序占用的设备内存越少,并且花费的安装时间越少。可考虑将您的 Java 应用程序打包,作为压缩的 Java 档案 (jar) 文件。

3、运行时占用最少的内存。为尽可能减少运行时占用的内存,使用标量类型代替对象类型。同时,不依赖垃圾收集程序。您应该在使用完对象时将对象引用置空,这样可有效管理内存。另外一种减少运行时所需内存的方法是使用“惰性”实例,它仅在必需时才分配对象。其它一些减少小型设备上过量和峰值内存使用的方法有快速释放资源、重新使用对象以及避免异常。

设计开发移动设备应用程序的注意事项:

1、开发移动设备应用程序的规则与我们前面提及的开发小型设备的相同:先设计再编码。让我们检查一下开发移动

2、设备应用程序时可考虑的一些设计建议: 让服务器做大部分的工作。将计算性较强的任务放到服务器上,让服务器为您做这些工作。让移动设备处理界面和最少的计算工作,而让服务器做繁重的工作。当然,您为其开发应用程序的移动设备对设备连接到服务器上的难易程度和频率有重要影响。

3、谨慎地选择编程语言:J2ME 仍然处于成长期,可能还不是最好的选择。根据您的需要,选择其它的面向对象语言,如 C++,可能会更好。

性能注意事项

为性能而编码。下面有一些以获得最优性能为目标的编码方法:

1、使用局部变量。访问局部变量比访问类成员更快。

2、避免字符串串联。字符串串联不仅会降低性能,而且会增加应用程序的内存峰值占用量。

3、使用线程,避免同步。任何运行时间超过 1/10 秒的操作都需要一个独立的线程。避免同步同样能提高性能。

4、使用模型视图控制器 (MVC) 分离模型。MVC 将代码中控制显示的逻辑分离出来。

编译注意事项

同其它的 Java 应用程序一样,您在打包和部署应用程序之前要先进行编译。尽管有了 J2ME,您仍然使用 J2SE 编译器并且需要用适当的选项来进行调用。

特别的,您需要使用 -bootclasspath 选项来指示编译器使用 J2ME 类,而不是 J2SE 类。不要在编译器的 CLASSPATH 中设置配置类。这样将导致运行时错误,因为不管 CLASSPATH 中有什么,编译器将首先自动搜索 J2SE 的核心类。换句话说,编译器将无法引用特定 J2ME 配置中缺少的类或方法,结果导致在尝试运行应用程序时出现运行时错误。

打包和部署注意事项

      由于 J2ME 是为内存有限的小型设备设计的。大部分常用的 Java 提前验证已经从虚拟机中除去以形成一个较小的覆盖区域。结果,在配置之前提前验证 J2ME 应用程序就很有必要。在运行时会附加一个检查以确保这个类在提前验证之后还没有改变过。

如何严格执行提前验证或者检查类的正确性依靠的是工具包。CLDC 提供一个称为提前验证的命令行实用程序,它能够进行实际的验证并且可以把一些额外的信息插入到类文件中去。MIDP 使用无线工具包,这种工具包提供一种 GUI 工具,也可从命令行运行这种工具。

部署工作取决于您要部署的平台。应用程序必须以一种适合 J2ME 设备类型的格式进行打包和配置,就如简表定义的那样。

J2ME 简表是什么?

如我们在前面提到的,一个简表定义了受支持设备的类型。例如,移动信息设备简表 (MIDP),定义了蜂窝电话的类。它把一些特定于域的类加入J2ME 配置中来定义对类似设备的使用。已经为 J2ME 定义了两个简表:KJava 和 MIDP 。它们都构建在 CLDC 之上。KJava 和 MIDP 都和 CLDC 及小型设备相关联。

简表被构建在配置的顶部。由于简表是特定于运行应用程序的设备的大小(内存的数量),所以,某个简表是与某种特定的配置相关联的。

在纲要简表上,您可以创建自己的简表,这种纲要简表也称为基础表,它对于 CDC 也是可用的。然而,在本教程和本节中,我们将只重点学习建立在 CLDC 上的 KJava 和 MIDP 简表。

简表 1:KJava

KJava 是归 Sun 公司所有的简表,它包含 KJava API。KJava 简表建立在 CLDC 配置的顶部。KJava 虚拟机,KVM,像标准的 J2SE 虚拟机那样接受相同的字节代码和类文件格式。

KJava 包含一个特定于 Sun 的、运行在 Palm 操作系统上的 API。这个 KJava API 和 J2SE 抽象视窗工具包 (AWT) 有很多地方都是相同。然而,由于它不是一个标准的 J2ME 软件包,它的主软件包是 com.sun.kjava。在以后的教程中开发一些示例应用程序时会学到更多关于 KJava API 的知识。

简表 2: MIDP

MIDP 适合诸如蜂窝电话和寻呼机等移动设备。MIDP 和 KJava 一样,也是建立在 CLDC 之上的,并且提供一个标准的运行时环境,允许在终端用户设备上动态地部署新的应用程序和服务。

MIDP 是一个公共的、为移动设备设计的工业标准简表,它不依赖某个特定的商家。对于移动应用程序开发来说,它是一个完整的、受支持的基础。

MIDP 包含下列软件包,前面 3 个是核心 CLDC 软件包,另加 3 个特定于 MIDP 的软件包。我们将在后面的教程中讨论每个软件包:


MIDP 取代 KJava

正如我们在前面的章节中提及的,KJava 是 Sun 公司所拥有的一个 API。它不作为一种完整的、功能齐全的简表,而是作为一种示范,示范简表如何与 CLDC 一起工作。根据 CLDC 发行说明 (其中包含 CLDC 下载版本):

在软件包 com.sun.kjava 中提供的 GUI 类不是连接限制设备配置 CLDC 的一部分。Java 2 平台袖珍版的正式 GUI 类,将通过 Java Community Process 分别定义并被包含进 J2ME 简表中。

不管这个事实存在与否,KJava 简表已经被早期的采用者广泛使用了。在JavaOne 的开发商会议上,Sun 公司宣称早期 Palm 操作系统的 MIDP 可用性(MID 简表的最初发行版焦点主要集中在无线电话上)。 Palm 操作系统 MIDP 的规格是由 Java Community Process (JCP) 定义的。因此,它是独立于供应商的。当前众多限制中的一个 -- 它将随时间消失 -- 就是 Palm 操作系统的 MIDP 需要最新的 Palm 操作系统,3.5 版。

现在 Palm 操作系统的 MIDP 的规范仍然在随着 JCP 不断发展,其细节也会随时改变。尽管目前还无法确定其发行日期,但是规范一旦出台,将必然减少对 KJava 的需求。

分享到:
评论

相关推荐

    J2ME 移动信息设备简表2.0 PDF 版

    ### J2ME移动信息设备简表2.0 (MIDP 2.0) 主要知识点解析 #### 一、引言与概述 J2ME(Java 2 Platform Micro Edition)移动信息设备简表2.0(MIDP 2.0)是Java平台的一个子集,特别为移动设备如手机和平板电脑设计...

    j2me的一个简单钟表实现

    在Java 2 Micro Edition(J2ME)平台上开发应用程序,特别是在移动设备上,经常会涉及到一些基本功能的实现,比如时间显示。"j2me的一个简单钟表实现"这个项目就是一个典型的例子,它展示了如何在有限的资源和界面...

    J2ME游戏程序开发实例详解.pdf

    J2ME游戏开发通常使用Sun提供的Wireless Toolkit(WTK),这是一个用于创建、测试和调试J2ME应用程序的集成开发环境。WTK提供了模拟器,可以模拟不同厂商的手机环境,有助于开发者在不同设备上测试应用。 4. 创建一...

    J2ME多种示例源码与程序

    J2ME应用程序通常基于MIDP(Mobile Information Device Profile)和CLDC(Connected Limited Device Configuration)。MIDP提供了用户界面组件和网络功能,而CLDC则定义了基础的Java环境。示例中的应用程序可能涵盖...

    Eclipse开发J2ME手机程序

    10. **设备模拟器**: WTK提供的模拟器可以用来测试和调试J2ME应用程序,模拟真实设备的行为,但实际效果可能与真机有差异,因此最终还需要在真机上进行验证。 通过以上知识点的学习和实践,开发者可以掌握使用...

    J2ME中文教程 html 格式

    您可以首先了解 J2ME 的背景并研究 J2ME 的配置和简表。随后,逐步建立您的开发环境,用于开发 J2ME 应用程序。 本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 (CLDC) 和...

    基于J2ME的嵌入式系统应用的总体设计

    MIDlet是J2ME应用程序的基本组成部分,它具有生命周期管理方法,包括startApp()、pauseApp()和destroyApp()方法,用于处理应用程序的启动、暂停和销毁等状态变化。合理管理这些状态可以提高应用程序的性能并减少设备...

    j2me小程序

    标题中的"j2me小程序"指的可能是一些简单的J2ME应用程序,这些程序通常包含基础功能,如欢迎界面和短信发送。在移动设备上,这类小程序有助于提升用户体验,提供基本的交互服务。 **欢迎界面**是任何应用程序的第一...

    j2me手机程序入门 源代码

    通过对这些源代码的阅读和理解,你可以学习到如何组织和实现一个简单的J2ME应用程序。 例如,一个简单的J2ME程序可能包含以下部分: 1. 主类(Main Class):应用的起点,通常包含`public static void main(String...

    j2me 循序渐进

    您可以首先了解 J2ME 的背景并研究 J2ME 的配置和简表。 随后,逐步建立您的开发环境,用于开发 J2ME 应用程序。 本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 ...

    J2ME中文教程(From IBM)

    您可以首先了解 J2ME 的背景并研究 J2ME 的配置和简表。随后,逐步建立您的开发环境,用于开发 J2ME 应用程序。 本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 (CLDC) ...

    Java 2 平台 (J2ME)学习

    您可以首先了解 J2ME 的背景并研究 J2ME 的配置和简表。 随后,逐步建立您的开发环境,用于开发 J2ME 应用程序。 本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 (CLDC)...

    J2ME 中文api以及应用 J2ME 中文api以及应用.rar

    3. **WTK(Wireless Toolkit)**:是Sun Microsystems(现已被Oracle收购)提供的开发工具,用于创建和测试J2ME应用程序。开发者可以使用WTK中的模拟器来预览和调试程序。 4. **J2ME连接框架(JSR-82)**:提供了...

    基于J2ME平台的手机游戏贪吃蛇程序的设计与实现

    - **WTK**:由Sun Microsystems提供的一款免费开发工具包,主要用于模拟真实环境下的移动设备,帮助开发者测试和调试J2ME应用程序。 - **Eclipse**:一个开源的集成开发环境,支持多种编程语言,包括Java。Eclipse...

    J2ME开发教程

    开发者需要熟悉J2ME的配置和简表,这些都是J2ME应用程序能够运行在特定设备上的前提条件。 ### 前台UI与后台线程交互 在J2ME开发中,理解前台UI和后台线程之间的交互至关重要。移动应用程序通常需要一个用户友好的...

    《J2ME应用教程》作者陈旭东—代码

    Java 2 Micro Edition (J2ME) ...通过学习《J2ME应用教程》中的代码实例,开发者能够掌握J2ME的核心概念和技术,进而创建能在多种移动设备上运行的应用程序。这份代码资源是深化理论知识并提升实践技能的重要辅助材料。

    J2ME中程序优化的十个小方法

    在J2ME(Java 2 Micro Edition)平台上开发应用程序时,由于硬件资源有限以及设备的多样化,优化程序性能显得尤为重要。以下就是十个针对J2ME程序优化的小方法,旨在提高程序运行效率,减少内存占用,提升用户体验。...

    J2ME游戏程序开发实例详解

    在选择开发工具时,Sun公司的WTK(Wireless Toolkit)2.0是一个常用的选择,它提供了J2ME应用程序的模拟环境,便于开发者编写、测试和调试代码。开发者需要下载并安装WTK,创建一个新的MIDlet项目,如"Hello World...

Global site tag (gtag.js) - Google Analytics