分享
 
 
 

谈谈J2ME简表

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

虽然配置为一组通用设备提供了最小的 Java平台,但是应用程序开发者感爱好的是为一个个别的设备生产应用程序,当他们只是使用配置的话,他们编写的应用程序就会有一些欠缺。 配置必须满足所有的设备的最小的要求, 用户界面、输入机制和数据持久性有高度地设备具体性,每一种设备都有自己的用户界面、输入机制和数据存储方法,这些往往不在配置所满足的最小要求的范围之内。

简表为相同消费电子设备的不同的生产商提供了标准化的 Java类库, 事实上,虽然配置规范的开发由 Sun领导,但是许多简表规范仍将继续由非凡设备的供给商领导。 比如说,

Motorola领导了行动电话和呼叫器简表规范的开发,又如 Palm 领导 PDA简表的开发。

现在,五个已知简表已经有了规范, 记住,每个简表的责任都是为了完善配置的不足,下表列出了这五个简表:

简 表 完善配置

Mobile information devices profile (MIDP) 移动电话和呼叫器 CLDC

Personal digital assistant profile Palm和Handspring的PDA 设备 CLDC

Foundation profile 用于所有不需要GUI的CDC设备的标准简表 CDC

Personal profile 替代PersonalJava的Foundation完善的简表 CDC

RMI profile 提供RMI的Foundation完善的简表 CDC

现在我想谈一谈另一个Java类库集,它现在差不多可以被认为是另一个简表了。当Sun为Palm开发第一个KVM时,他们需要一组类来 开发Palm的演示程序。这套类库被封装进 com.sun.kjava程序包, 在 CLDC早期的开发中,这些类被广泛的使用来测试和演示 J2ME。因为 kjava是唯一的答应应用程序开发者使用 J2ME和 KVM开发应用程序的类,所以它就被广泛使用了。甚至到了今天,一个用于 PDA或更非凡一点的 Palm的简表多已经在开发中,许多开发者仍然希望使用 kjava类来开发 PDA应用程序。尽管 kjava类不被支持,并且仅仅用于设计测试程序或演示程序,并且它们将被一个即将到来的简表所替代,但是开发者们仍然热衷于使用它来开发。

MIDP

Mobile Information Device Profile(移动信息设备简表 ,简称 MIDP ),第一个实现的简

表,补充了 CLDC并且提供给用程序语义和控件、用户界面、持久存储器、网络和用于移动电话的计时器、双通道呼叫器和其他无线电设备。 因为 MIDP和 CLDC两者都有引用实现,我们可以使用一个例程来研究一下这个简表。

下面的例子是一个答应用户输入代表想知道的基金报价的代号的例子。应用程序然后通过 HTTP接到一个金融网站,获得基金报价,把价格储存在一个数据库,然后把价格返回给用户。

// 到如需要的J2ME类

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

import javax.microedition.rms.*;

// 扩展MIDlet类来构建我们的自定义MIDlet

public class FundTracker extends MIDlet implements

CommandListener {

file://显示治理者变量

private Display display = null;

file://MIDlet的表单变量

private RequestForm reqForm = null;

file://MIDlet构建器

public FundTracker () {

display = Display.getDisplay(this);

reqForm = new RequestForm("Fund Tracker");

reqForm.initForm();

reqForm.setCommandListener(this);

}

file://开始 MIDlet 应用程序

protected void startApp() {

display.setCurrent(reqForm);

}

file://暂停 Midlet

protected void pauseApp() {

}

file://销毁Midlet

protected void destroyApp(boolean unconditional) {

}

file://通过监听者响应命令

public void commandAction(Command c, Displayable s) {

if (c == reqForm.getExitCommand()) {

destroyApp(false);

notifyDestroyed();

return;

}

if ((c == reqForm.getGetCommand()) &&

(reqForm.getSymField().getString().length() 0)) {

getAndDisplayQuote();

} else

{

reqForm.getMsgString().setText("Symbol required");

}

}

file://储存由#分开的成对的基金字符串和报价字符串

private void storeQuote (String fund, String newQuote) {

file://数据库变量

RecordStore quoteDB = null;

try {

quoteDB = RecordStore.openRecordStore(

"FundQuotes", true);

byte[] data = (fund + "#" + newQuote).getBytes();

int size = data.length;

quoteDB.addRecord(data, 0, size);

quoteDB.closeRecordStore();

}

catch (Exception recordException) {

System.out.println("Unable to store quote and/or

use Fund Quote database.");

}

}

file://通过QuoteService类取回提交的代号表示的基金报价

private void getAndDisplayQuote(){

String fundSymbol = reqForm.getSymField().getString();

if (fundSymbol.length() 0) {

String theQuote = QuoteService.getQuote(fundSymbol);

if (theQuote != null) {

storeQuote(fundSymbol, theQuote);

reqForm.getMsgString().setText(theQuote);

}

else

reqForm.getMsgString().setText("No quote" +

''\n'' + "Check Symbol");

}

}

}

MIDP应用程序称为 MIDlet, 为了创建一个 MIDlet,你必须写一个扩展基本 MIDlet类的类 (就像我们在上面代码段中列出的那样)。 这有点类似常见的 applet或 servlet。 MIDlets独有的东西是把多个 MIDlet组成一个 MIDlet套件的能力。 这就答应 MIDlet在一个单独的 JVM环境中共享资源,比如一个数据库等等。 事实上,我们上面给出的例子还包括一个 MIDlet ( RetrieveQuote,见上段程序),用于取回所报价格。 当MIDlet被请求时, MIDlet通过构造程序

实例化,然后调用实例的 startApp()方法。

在 FundTracker例子中, MIDlet的用户界面或显示是由 Display类的一个实例治理的。 对于每个 MIDlet,只有一个显示治理器实例。 所有可以显示的项目,像屏幕或画布(canvas),通过这个治理器都能够成为可见的。因为行动电话和呼叫器能力的多样化,又因为用于这些设备的应用程序类型的差异, MIDP规范提供了两种类型的用户界面。一个可移植性稍差、明确设备、低水平的应用程序接口,答应图形元素精确的控制和放置。 这个接口类型是用于应用程序特性比较典型的设备非凡设计的,比如电子游戏。 一个可移植性稍好的、抽象的、高级的 GUI应用程序接口,提供来用于商业应用程序。

我们的例程使用的是高级的应用程序接口和典型的用户界面组件 (文本框,列表等等 ),是这类界面通用的。比如说,实际的表单和所有的小组件在一个单独的文件中都已定义。 就像在代码段一中列出的那样,当 MIDlet创建时,一个表单的实例与 MIDlet关联。 在调用 MIDlet startApp()方法的时候,通过 Display对象显示表单。 使用一个用于表单的类,答应我们在我们简单的报价检索应用程序中重新使用这个表单 ( RetrieveQuote )。为了清楚性和风格,我们通过一个单独的类来定义报价服务。 为了演示一般连接器结构的能力,我们的报价服务类通过一个 Connector实例取回报价。

MIDP要求平台设备提供一个机制用来储存简单的数据记录,通过正常的平台事件,比如重新启动和电池更新维护系统的完整性。 MIDP称一个持久数据库为 RecordStore。 在我们的示例中, MIDlet打开并添加一条记录到 " MutualFundQuotes " RecordStore。 正如我们的演示程序,能添加到 RecordStore中的唯一一种类型的记录是字节数组。 相同的 RecordStore是一个资源,它可以通过套件共享。 根据 MIDP规范, 当 MIDlet从平台中删除后,RecordStore也会被从平台中删除。

PDA简表

Palm公司是开发PDA简表规范的领头人, 这个简表也是完善了 CLDC,在相当长的一段时间内,它都将是 kjava类程序包的替代品。 Java规范建议这个 profile至少应当提供两个核心功能片段: 一个用户界面显示工具包,适合于 "有限的尺寸和深度显示 "和一个持久数据存储器机制。 显示工具包应该是抽象窗口工具包的一个子集, 而持久机制将为应用程序、数据、配置/环境信息提供简单的数据存储。

Foundation简表

下面三种简表不是非经常见, 这三种简表的职责都是为了完善 CDC。 Personal和 RMI简表实际上是 Foundation简表的扩展。 Foundation简表的任务是担任一个基础简表,便于以后开发出来的提供图形用户接口、 网络等功能的简表附着在它之上。 除了用于基础简表, Foundation简表还提供完整网络的支持,不管有没有使用图形用户接口。

Personal简表

在当前的规范需求下, Personal简表提供下一代 PersonalJava环境。这个简表允诺,提供互联网连接性和 Web保真度以及一个能够运行 Java applets的 GUI。

RMI简表

回想一下 CDC配置为共享的、固定网络连接信息设备提供最小的 Java环境。 RMI简表将通过提供 Java到 Java的RMI来协助提供更好的网络连接性。 通过使用 J2SE ( 1.2.x或更高版本的 ) RMI,这个简表将答应这些网络设备与其他系统应用程序交互操作 (这个系统不必也运行 J2ME )。

kjava类

正如前面提到的那样, kjava类是

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有