`
weimou66
  • 浏览: 1249468 次
文章分类
社区版块
存档分类
最新评论

KJava简介(J2ME)

 
阅读更多
.KJava简介

Java语言最初是为嵌入式系统设计的一项产品,在Java 2中为了区分各种不同的应用,又细分成了Java 2 Enterprise Edition(J2EE)、Java 2 Standard Edition(J2SE)和Java 2 Micro Edition(J2ME)三种版本,其中J2ME又称作KJava。

在J2SE中,它定义了Java规范的核心类函数库(即Java.*)和扩展类函数库(即Javax.*),它主要定位在客户端的应用程序。J2EE主要定位于服务器端的应用程序,它除了支持J2SE所定义的核心类函数库之外,还增加了一些扩展函数类库,如支持Serverlet/JSP的Javax.servlet.*等。J2ME只支持J2SE所定义的核心函数类库的一部分,此外,在J2ME中还增加了一些支持嵌入式系统的扩展类函数库,如Javax.microedition.*等。

同样是嵌入式设备,它们在运算能力、电力供应等方面还是有很大的差别。Connected Limited Device Configuration(CLDC)规范描述的就是那些运算能力有限、电力供应有限的嵌入式设备,如手机等;而Connected Device Configuration(CDC)规范则描述的是像电视机顶盒这样运算能力较强、电力供应充足的系统。J2ME分别支持这两种不同的配置。在同一种配置下,J2ME又通过Profile来定义与特定嵌入式设备相关的扩展类函数库。

在传统的Java环境中,为了防止程序在传送途中被篡改以及其它一些安全上的考虑,当程序被类别载入器载入后,紧接着要进行Byte Code审核,审核通过以后才允许Java虚拟机执行它。这一操作在PC机上执行从速度上来看没有什么问题,但是在CLDC所描述的这类系统中,要想作完全相同的处理,从处理能力和速度上来看就显得有些力不从心了。为了解决这个问题,程序设计人员需要在程序设计结束之后额外再多做一件事:预先审核。通过预先审核,会在最终的类文件中加入一些特殊的符号,当该程序下载到目标平台上去执行时,可以以较快的速度完成审核操作。

2. Motorola SDK

下面以摩托罗拉A6288型手机为例来具体讲解KJava的程序设计。在摩托罗拉A6288中使用了两颗CPU,一颗是Dragon Ball VZ 33MHz,用于个人数字处理,另外一颗用于通讯的处理。系统为用户预留了约1M的内存空间,支持符合MIDP 1.0规范的KJava应用程序。我们可以到摩托罗拉的官方网站去下载开发工具:CodeWarrior(试用版),下面的内容就是基于这一开发工具。

在CodeWarrior中,它包含了摩托罗拉的SDK,它实现了CLDC和MIDP 1.0。它所实现的CLDC类库有Java.io.*、Java.lang.*、Java.util.*和Javax.microedition.io.*,实现的MIDP类库有Javax.microedition.lcdui.*、Javax.microedition.rms和Javax.micromedition.midlet。

我们在PC环境下编写的嵌入在浏览器中的Java程序叫做Applet,编写的程序必须要从Applet类扩展自己的类。而为手机这类移动信息设备编写的KJava程序叫做MIDlet,程序必须要从MIDlet类扩展自己的类。一个MIDlet程序具备如下的典型结构:

<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>public class HelloWord extends MIDlet
{
HelloWord()
{……}

public void startApp()
{……}

public void pauseApp()
{……}

public void destroyApp(boolean unconditional)
{……}
}


当程序被启动时,startApp()被系统调用。(当程序刚开始运行时有启动过程,程序被暂停后也可以被再次启动)。当程序被暂时停止运行时,pauseApp()被调用。当程序执行结束时destroyApp()被调用。我们可以根据实际情况在各函数中进行相应的处理。

在摩托罗拉SDK中没有AWT或者SWING,因为它们的实现会耗费太多的资源,摩托罗拉SDK只是在Javax.microedition.lcdui中实现了基于LCD的一些比较简单的设计用户界面的功能。SDK中定义了各种Displable类(如Form),程序中当前显示的画面必须是某个Displable的实例,在该实例中可以再放置按钮、文本编辑框、单选框等UI。

3. 举例

下面是用KJava编写的一个可以在A6288型手机上运行的简单的例子。具体程序如下:

<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>import Java.io.*;
import Javax.microedition.lcdui.*;
import Javax.microedition.midlet.*;

public class HelloWorld extends MIDlet implements CommandListener
{

private MainCanvas myCanvas;
private Display myDisplay;
private Command c1,c2,c3;

HelloWorld() 
{
myCanvas=new MainCanvas();
myCanvas.addCommand(c1=new Command("First",Command.SCREEN,1));
myCanvas.addCommand(c2=new Command("Second",Command.SCREEN,1));
myCanvas.addCommand(c3=new Command("Third",Command.SCREEN,1)); 
myCanvas.setCommandListener(this);
myDisplay = Display.getDisplay(this);
myDisplay = Display.getDisplay(this);
}

public void startApp() throws MIDletStateChangeException 
{ myCanvas.setUp("first");
myDisplay.setCurrent(myCanvas);
}

public void pauseApp() { }

public void destroyApp(boolean unconditional) { }

public void commandAction(Command c,Displayable d) 
{ myCanvas.setUp(c.getLabel()); }

class MainCanvas extends Canvas 
{ String ts;

MainCanvas()
{ super();
ts=new String("first");
}

public void setUp(String s)
{ ts=new String(s); }

public void paint(Graphics g) 
{ g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0);
g.drawString("Current is the "+ts,getWidth()/2,60,
Graphics.HCENTER | Graphics.TOP);
}
}
}


程序运行后,可以根据用户选择的不同菜单项显示不同的内容。
分享到:
评论

相关推荐

    看护者 --- 一个用来演示在普通KJava/J2ME手机上也能做复杂应用的程序

    在移动终端应用领域,复杂一点的应用程序,目前在PDA与智能手机上比较普遍,而在普通KJava手机上并不多见. 笔者几年来一直关注移动应用方面,最近一段时间由于工作比较清闲,于是在业余时间里写了这个程序,目的在于演示...

    j2me模拟器 kjava开发必备

    j2me的模拟器 很好用 是kjava开发中必备的小工具 简单 好用

    KEmulator.rar

    模拟运行kjava,j2me 模拟运行kjava,j2me 模拟运行kjava,j2me 模拟运行kjava,j2me

    Java 2 平台 (J2ME)学习

    KJava API -- 用于关联连接有限设备配置 (CLDC) 和使用 CLDC 的移动信息设备简表。之后您将构造一个简单的 应用程序来看看您能用 J2ME 做些什么。您将使用 CLDC 和 KJava 开发一个基本绘图应用程序以及一个小型 ...

    kjava开发手册--介绍j2me开发的一些实践

    kjava 开发的环境配置,相关的api描述,一些最佳的实践等

    J2ME中文教程 html 格式

    本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 (CLDC) 和使用 CLDC 的移动信息设备简表。之后您将构造一个简单的应用程序来看看您能用 J2ME 做些什么。您将使用 CLDC 和 K...

    J2ME_PIG.rar_4 3 2 1_Hearts game java_J2ME_PIG

    牌的大小按下列顺序排列:A、K、Q、J、10、9、8、7、6、5、4、3、2。 1.出牌 (1)每轮只允许出一张牌。 (2)第一局游戏由得到梅花2的一方首先出牌,并且必须出梅花2。 (3)必须先出与首家相同花色的牌,无相同...

    J2ME中文教程(From IBM)

    本教程将向您介绍一些课题如 K 虚拟机 (KVM),和 KJava API -- 用于关联连接有限设备配置 (CLDC) 和使用 CLDC 的移动信息设备简表。之后您将构造一个简单的应用程序来看看您能用 J2ME 做些什么。您将使用 CLDC 和 K...

    j2me 循序渐进

    KJava API -- 用于关联连接有限设备配置 (CLDC) 和使用 CLDC 的移动信息设备简表。之后您将构造一个简单的 应用程序来看看您能用 J2ME 做些什么。您将使用 CLDC 和 KJava 开发一个基本绘图应用程序以及一个...

    一步一步学会配置Kjava开发环境

    一步一步学会配置Kjava开发环境-,WORD,J2ME/J2ME

    J2ME最经典代码源码

    J2ME高手的代码宝库,囊括J2ME经典的算法函数,直接复制就可用。源码带详细注释

    J2ME环境搭建步骤

    J2ME或者JavaMe或者Kjava,3者实际是一回事,提供其环境搭建步骤,希望对初学者有所帮助

    J2ME相关名词解释及概念阐述

    目前JAVA2有三个版本:J2EE(企业版)、J2SE(标准版)、J2ME(微型版) 1、J2SE(JAVA2 Standart Edition) JAVA2标准版 支持所有JAVA标准规范中所定义的核心类函数库和所有的JAVA基本类别。J2SE定位在客户端程序...

    j2me手机游戏代码

    import java.io.*; import java.lang.*; import java.util.Timer; import popup.*; import java.util.Random; import java.util.Vector; import javax.microedition.media.*; public class SwordCanvas extends ...

    (手机电子书k-JAVA)CyberExploere

    (手机电子书)J2ME文件浏览,图片浏览,音乐播放,编辑文本,支持GBK,ISO8859-1,UTF-8,UTF,TEXT,Unicode编码,可以编辑文件,有10种图片效果,有鼠标,支持触屏,打电话,发短信,播放MID,JTS,WAV ,AMR,AWB...

    j2me坦克大战游戏

    自己写的j2me坦克大战游戏,以联想i908的屏幕分辨率为标准的,有红坦克和道具的!

    J2ME笔试 java

    笔试离不开的东西 ccccccccccccccccccccccvvvvvvvvvvvvvvvvv

    java[游戏必备]

    KJava即J2ME(Java 2 Micro Edition),是Sun公司专门用于嵌入式设备的Java软件。以KJava编程语言为手机开发应用程序,可以为手机用户提供游戏、个人信息处理、电子地图、股票等服务程序。J2ME(Java 2 Micro ...

    J2ME在移动设备上的应用.pdf

    J2ME的应用一些手机开发的J2ME应用实例虽然K—JAVA平台已经走向衰落,但作为移动开发的热身平台是一个独一无二的选择

Global site tag (gtag.js) - Google Analytics