KJava简介(J2ME)
来源:互联网 发布:windows主题 编辑:程序博客网 时间:2024/05/21 06:26
.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程序具备如下的典型结构:
当程序被启动时,startApp()被系统调用。(当程序刚开始运行时有启动过程,程序被暂停后也可以被再次启动)。当程序被暂时停止运行时,pauseApp()被调用。当程序执行结束时destroyApp()被调用。我们可以根据实际情况在各函数中进行相应的处理。
在摩托罗拉SDK中没有AWT或者SWING,因为它们的实现会耗费太多的资源,摩托罗拉SDK只是在Javax.microedition.lcdui中实现了基于LCD的一些比较简单的设计用户界面的功能。SDK中定义了各种Displable类(如Form),程序中当前显示的画面必须是某个Displable的实例,在该实例中可以再放置按钮、文本编辑框、单选框等UI。
3. 举例
下面是用KJava编写的一个可以在A6288型手机上运行的简单的例子。具体程序如下:
程序运行后,可以根据用户选择的不同菜单项显示不同的内容。
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程序具备如下的典型结构:
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型手机上运行的简单的例子。具体程序如下:
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)
- 理解 J2ME 和 KJava (中文)
- KJAVA
- KJAVA
- J2ME 简介
- j2me 简介
- Kjava/J2ME UI设计实践 --- 兼顾功能强大与操作简单这对矛盾
- 看护者 --- 一个用来演示在普通KJava/J2ME手机上也能做复杂应用的程序
- J2ME游戏API简介
- J2ME(CLDC/MIDP)简介
- J2ME(CLDC/MIDP)简介
- J2ME(CLDC/MIDP)简介
- J2SE, J2ME, J2EE简介
- J2ME入门学习指南(二)-----J2ME简介
- 所谓kjava
- 关于KJava
- 什么是Kjava?
- J2ME 3D技术简介
- SCM应用语团队开发优势
- ERP专业词汇分享
- Google的排名运算法则
- Implementing a Drop Target-实现Drop目标
- Smartphone平台开发技术
- KJava简介(J2ME)
- 腾讯游戏开发人员采访实录
- JSP中的PAGE指令
- 漂亮的blog站点
- 有价值的FLASH资源篇
- 关于视频直播的技术
- 理性回顾在大学生创业中心[SOVO]中跳槽
- JS画圆饼图
- 一个简单游戏框架