开发J2ME应用程序准则揭秘

开发 前端
本文我们一起看一下在使用J2SE编译J2ME应用程序时调用编译器的方法,最后我们将探究打包和部署,以及在这个过程中提前验证所扮演的角色。

这里向大家描述一下开发J2ME应用程序准则,同其它的Java应用程序一样,您在打包和部署应用程序之前要先进行编译。尽管有了J2ME,您仍然使用J2SE编译器并且需要用适当的选项来进行调用。

开发J2ME应用程序准则

1.介绍

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

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

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

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

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

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

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

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

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

让服务器做大部分的工作。将计算性较强的任务放到服务器上,让服务器为您做这些工作。让移动设备处理界面和最少的计算工作,而让服务器做繁重的工作。当然,您为其开发应用程序的移动设备对设备连接到服务器上的难易程度和频率有重要影响。
谨慎地选择编程语言。J2ME仍然处于成长期,可能还不是最好的选择。根据您的需要,选择其它的面向对象语言,如C++,可能会更好。

4.性能注意事项

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

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

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

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

5.编译注意事项

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

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

6.打包和部署注意事项

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

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

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

【编辑推荐】

  1. J2ME应用程序架构模型详解
  2. J2ME应用程序架构模型
  3. J2ME应用程序内存优化的几种途径
  4. 技术分享 如何识别控制DHTML和JS中的页面元素
  5. 深入学习JavaScript中Function对象语法 
责任编辑:佚名 来源: javaeye.com
相关推荐

2010-09-29 09:54:09

J2ME应用程序

2009-03-12 10:22:27

EclipseJ2MEJDT

2010-09-30 13:39:52

2010-09-30 16:13:13

J2ME应用程序

2010-09-29 09:45:01

J2ME应用程序

2010-09-29 09:19:39

J2ME开发工具

2010-09-29 08:57:04

J2ME前景

2009-06-23 11:30:16

RMSJ2ME

2010-09-29 13:09:48

OTAJ2ME程序

2010-09-30 13:48:10

J2ME游戏引擎

2010-09-29 13:50:31

J2MEJ2SE

2010-02-04 13:15:59

Android J2M

2010-09-29 12:45:50

J2ME

2010-09-29 09:13:48

J2ME开发环境

2009-06-15 15:35:00

netbeansj2me

2010-09-29 09:28:59

J2ME开发环境

2010-10-09 15:40:19

CookieJ2ME

2009-06-08 18:17:00

适应中国网络J2ME连网程序

2009-07-14 18:03:43

Myeclipse J

2010-09-30 13:06:33

Myeclipse J
点赞
收藏

51CTO技术栈公众号