《java程序设计之网络编程》

上传人:ldj****22 文档编号:56897334 上传时间:2018-10-16 格式:PPT 页数:27 大小:596.50KB
返回 下载 相关 举报
《java程序设计之网络编程》_第1页
第1页 / 共27页
《java程序设计之网络编程》_第2页
第2页 / 共27页
《java程序设计之网络编程》_第3页
第3页 / 共27页
《java程序设计之网络编程》_第4页
第4页 / 共27页
《java程序设计之网络编程》_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《《java程序设计之网络编程》》由会员分享,可在线阅读,更多相关《《java程序设计之网络编程》(27页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计之网络编程,重庆大学计算机学院 电子邮件:,教学课件,第19章 J2ME概述,J2ME是JAVA2的微型版本,只支持JAVA标准规范中所定义的核心类函数库的子集。J2ME定位于嵌入式系统的应用上,主要内容,19.1 J2ME概述 19.2 J2ME技术架构 19.3 MIDP应用程序开发,19.1 J2ME概述,J2ME是JAVA2的微型版本只支持JAVA标准规范中所定义的核心类函数库的子集。比如,J2ME CLDC的规范之中,只支持java.lang.*,java.io.*,以及java.util.*的类函数库。并加入了一些支持嵌入式系统的扩展类函数库,如:javax.mei

2、croedition.io.*类函数库。但是并不支持所有的JAVA基本类。,19.1.1 J2ME技术架构,J2ME最基本的规范制定在JSR-68(Java规范编号第68号),在此规范里头定义了J2ME的技术架构,19.1.2 Configuration,于是J2ME 先大致将所有的嵌入式设备大体上区分为两种:一种是资源有限 ;另外一种则是资源相对无限的设备 J2ME把运算能力有限、电力有限这类的嵌入式设备称做Connected Liminted Device(可连接外界、资源有限的设备。,规定这类型的设备如果要能执行Java程序,则必须满足某些特定条件(CPU速度、内存、联机速度),这些必须

3、满足的条件就定义在 Connected Limited Device Configuration(CLDC)规范之中。 另外一种设备则称为Connoced evice(可连接、资源相对无限的设备),这种设备要能够执行Java程序的规范则定义在 Connected Device Configuration(CDC)规范里面。,19.1.3 Profile,Profile是架构在Configuration之上的规范。所以每种Profile都会声明它是根植于哪种Configuration的。之所以有Profile的出现,是为了要更明确的区分出各种嵌入式设备之上的Java程序该如何开发,以及它们应该具

4、有哪些功能。因此Profile中定义了与特定嵌入式设备非常相关的扩充类库。,通常Java程序在各种嵌入式设备上的用户界面该如何呈现就是定义在Profile上的(例如MIDP之中的LCDUI,Liminited Configuration Device User Interface).Profile之中也是定义了程序该如何和用户或设备产生互动(例如程序的生命周期,如何接受来自用户的信息)。Profile之中定义的扩充类库是根据底层Configuration内所定义的核心类库所建立,为了更符合特殊设备的需求,Profile会在Configuration之中的类增加新的方法,或是让方法抛出新的异常。

5、,19.1.4 Optional Packages,除了Configuration 与Profile之外,在J2ME规范之中还定义了厂商选择性实现(Optional Packages,选择性包)。所谓的厂商选择性实现,通常是一些本身具有独立价值的API,厂商可以依据自己的需求,选择性实现其中某些Optional Packages规范。,19.1.5 J2ME工业标准JTW1,JWTI(Java Technology for Wireless Industry)是一个综合性的规范,其目的是为了确保J2ME软件的可移植性。所以JWTI规范出了规范无线通讯平台(特别是手机)所必须支持的J2ME标准之

6、外,也对既有规范中模糊不清的地方予以加强。,为了解决上述问题,进一步提高J2ME应用程序的可移植性,Sun Microsystems以MIDP2.0规范为核心,设计了JTWI规范。未来的无线通讯平台将不会支付和MIDP2.0规范,而且必须要符合JTWI规范。 JTWI主要分为两个部分:规定平台必须支持的API、统一的应用程序执行环境。,19.1.6 JINI技术,JINI是一种可以连接各种java平台的技术。不同java平台的程序经由JINI,能够彼此连接在一块,彼此分享对方的资源。其中,CLDC需要Gateway才能与JINI连接,原因在于他们没有RMI功能。而CDC可以实现RMI Opti

7、onal Packages 以取得RMI功能。Smart Card 平台由于其特性使然,并没有经由JINI与其他Java版本的应用程序做沟通,只是在JINI所造成的广大分布式环境中作为认证用。,Jini 基础建设的核心包含以下几个部分: Discovery Protocol:提供了如何让网路上任何种类的资源加入联盟的方式。 eXtended RMI :Jini的元件彼此沟通时所使用的机制。 Distributed Security:定义了Jini 联盟成员的使用权限。 Lookup Service:用来展现联盟中的所有成员,以及帮助使用者寻找网路资源,或者负责提供联盟中的资源给使用者用。,19

8、.1.7 Personal java,Personal Java是正规java版本的一个分支,其目的是能够让pda或手机执行java程序,目前在PocketPC或Symbian OS上都可以开发Personal Java应用程序。 Personal Java规范并不属于J2ME的CLDC或者是CDC,虽然最后它将会够归到CDC的Personal Profile融合,但是目前其规范还是继续在发展中。之所以有这种情况,是因为长期以来已经有许多围绕着Personal Java的规范所实现出来的商业产品。,19.2 MIDP应用程序开发,这里讨论的J2ME无线应用开发主要是基于CLDC/MIDP的开发

9、,其应用程序可运行于移植有KVM的手机、PDA等,这类设备由MIDP定义,即移动信息设备(MID),可看作垂直应用市场。 MIDP应用程序的运行可以在模拟器上进行,也可以把应用程序通过IrDA、RS232或OTA等方式之一下载到目标设备上运行,通常情况下都是在模拟器上运行。,本部分采用的开发环境是Sun公司的J2ME Wireless Toolkit 2.2,大家可以在Sun公司网站上免费下载。其中,包含了程序运行需要的模拟器。当然,大家也可以采用其他功能更强大的开发工具,比如:Jbuilder、Eclipse等可视化开发工具。J2ME Wireless Toolkit的安装非常简单,只需要大

10、家根按照提示一步一步的安装。,19.2.1 新建并运行MIDP程序,第一步:我们通过开始菜单,启动J2ME Wireless Toolkit 2.2工具集中的KtoolBar 第二步:然后点击New Project按钮,在弹出的输入框中输入Project Name为HelloWorld,MIDlet Class Name为Hello。 第三步:点击Create Project,开始生成项目,工具会弹出MIDP配置简表。,第四步:这里接受生成的默认值(以后还可以修改)点击OK,工具提示我们把写好的Java源程序放到WTK_HOMEappsHelloWorldsrc目录之下 第五步:用程序编辑器编

11、辑程序Hello.java,并保存到WTK_HOMEappsHelloWorldsrc目录之下。 第六步:保存好了之后,点击Build按钮,工具会为你编译程序。 第七步:再点击Run按钮,会弹出一个手机界面,显示程序运行结果。,19.2.2 综合示例,/应用程序生命周期,和J2SE一样,包java.lang.*是默认加载的 import javax.microedition.midlet.*; /MIDP用户界面 import javax.microedition.lcdui.*; public class Hello extends MIDlet implements CommandList

12、ener private Display display; / 引用MIDlet的Display 对象 private TextBox textBox; / Textbox 显示一条消息 private Command cmdExit; / 设定按钮用于退出MIDlet public Hello() / MIDlet构造程序 display = Display.getDisplay(this); cmdExit = new Command(“Exit“, Command.SCREEN, 1); textBox = new TextBox(“My First MIDlet“, “Hello, J

13、2ME!“, 50, 0); textBox.addCommand(cmdExit); textBox.setCommandListener(this); / 必须要实现的接口,被应用管理软件调用来启动MIDlet public void startApp() display.setCurrent(textBox); public void pauseApp() / 必须要实现的接口 public void destroyApp(boolean unconditional) /必须要实现的接口 /检查一下是否选择了退出命令 public void commandAction(Command c

14、, Displayable d) if (c = cmdExit) destroyApp(false); notifyDestroyed();,import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Test extends MIDlet implements CommandListener private TextBox textbox; / Textbox 显示一条消息 private Display disp; / 引用MIDlet的Display 对象 private Com

15、mand cmdExit; / 设定按钮用于退出MIDlet private Command cmdOK; / 确定按钮 private Alert alt; / 信息提示对象 public Test() super(); disp = Display.getDisplay(this); / 获得当前MIDlet的Display对象 cmdExit = new Command(“退出“, Command.SCREEN, 1); / 新建两个控制按钮 cmdOK = new Command(“阅读“, Command.OK, 1); textbox = new TextBox(“请输入待阅项目序

16、号:“, “, 40, 0); / 新建文本框 textbox.addCommand(cmdExit); / 添加控制按钮 textbox.addCommand(cmdOK); textbox.setCommandListener(this); / 开始侦听命令 ,protected void startApp() throws MIDletStateChangeException alt = new Alert(“登鹳雀楼“);/ 开始运行时显示信息,新建信息框对象 / 设置显示字符串 alt.setString(“作者:(唐)王之涣“); alt.setType(AlertType.INF

17、O); / 设置为普通阅读信息框 alt.setTimeout(Alert.FOREVER); / 信息窗口在按下DONE键后才能进入下一页面 disp.setCurrent(alt, textbox); / 显示信息窗口 protected void pauseApp() protected void destroyApp(boolean arg0) public void commandAction(Command arg0, Displayable arg1) if (arg0 = cmdExit) / 按下退出键时停止运行 destroyApp(false); notifyDestroyed(); if (arg0 = cmdOK) / 按下阅读键后阅读对应信息 TextBox textbox = (TextBox)arg1; / 得到用户输入的内容 String sInfo = textbox.getString();,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号