资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
第一章1、答案: Java ME的架构分为Java 虚拟机(Java VM)、配置(Configuration)、简表(Profile)和可选包(Optional Packages)。它们的组合取舍形成了具体的运行环境。l Java虚拟机,针对不同的嵌入式设备以及为了满足不同的需要,提供了KVM和CVM两大类虚拟机。l 配置,它是将某一类特定应用范畴的设备的共性提取出来形成的规范。为开发人员提供了一个基础的、能在所有平台上通用的核心API类库。l 简表,它是将某一个特殊行业或领域内的设备的特性提取出来,形成对特定领域的特性的总结,是作为配置的一个补充。l 可选包,独立于前面两者,提供附加的、模块化的和更为多样化的功能。目前标准化的可选包主要包括数据库访问、多媒体、蓝牙等。2、答案:MIDlet的生命周期共有3个状态:活动(Active)态、暂停(Paused)态和销毁(Destroyed)态。l 活动状态:程序处于正常执行状态。当一个MIDlet进入活动状态时,它将获得用于执行任务所需的所有资源。转移到活动状态之后,所需的线程应该被启动。l 暂停状态:程序处于后台运行状态,当一个MIDlet进入暂停状态时,它应该释放所有所持有的资源并停止活动的线程。l 销毁状态:程序进入退出前的处理,该状态结束则程序退出。当一个MIDlet进入销毁状态时,它应该释放所有资源,停止正在执行的线程,并保存持久化的数据。MIDlet定义如下生命周期方法来控制MIDlet的状态:l 默认构造器:默认构造器用来执行基本的初始化操作,此时MIDlet还处在暂停状态,它并没有获得任何所需的资源。l startApp()方法:startApp()方法用来获取MIDlet所需的资源,然后MIDlet将会处于活动状态。l pauseApp()方法:pauseApp()方法用来释放MIDlet所持有的全部资源。l destroyApp()方法:destroyApp()方法用来保存MIDlet的状态并释放MIDlet所持有的全部资源。通常MIDlet应该在被关闭之前进入此状态。第二章2、答案:在Windows的“开始”菜单中选择“程序”|“Sun Java Wireless Toolkit 2.5 for CLDC”|“OTA Provisioning”,将启动AMS的安装管理器。单击“应用程序”菜单所对应的功能键,进入安装应用程序界面,单击“菜单”菜单对应的功能键,在弹出的子菜单中选择“启动”, 单击模拟器中间的“SELECT”按钮,进入填写安装网址的界面,根据具体服务器的IP地址和端口号填写URL地址,单击“菜单”菜单对应的功能键,在弹出的子菜单中选择“转到”子菜单后,单击模拟器上的“SELECT”按钮,将开始获取应用程序安装列表,获取安装列表后,可以选择具体要安装的应用程序,单击“安装”菜单所对应的功能键,将开始下载JAD文件,下载完成后将显示确认安装界面。第三章1、答案:List是显示一组选项的屏幕,用户可以在这些选项中选择一个或者多个选项。List列表有3种形式:单选列表、复选列表和隐式列表。列表的3种类型对应Choice接口中的常量值:l Choice.EXCLUSIVE:单选列表,这种类型的列表一次只能选择一个选项。l Choice.MULTIPLE:复选列表,这种类型的列表一次可以选择多个选项。l Choice.IMPLICIT:隐式列表,这种类型的列表与单选列表类似,只是选项前面没有选择框标记,并且用户的选择和确认是同时进行的。2、答案:Display类有两个最主要的作用:l 控制屏幕的显示。例如,使屏幕显示某个指定界面或者获得当前的显示界面等。l 获得屏幕的属性。例如,屏幕是否是彩色的,背光灯控制以及支持的颜色数量等信息。其中控制屏幕的显示是其主要作用。并且每个MIDlet有且只有一个Display类的实例,该实例负责MIDlet程序中所有的显示控制。所以在创建Display对象时,必须指定该Display实例和哪个MIDlet对象对应,并且使用这个实例在屏幕上显示Displayable类的对象。在使用Display类提供的功能以前,必须首先创建一个Display类的实例,创建该实例的时候只能使用Display类中的静态方法getDisplay()来进行创建,获得Display类的实例后,就可以调用Display类中的各种方法进行显示设备的管理。第四章1、答案:MIDlet中的高级用户界面不允许控制显示在屏幕上的高级用户界面上的组件的外观。然而,在某些MIDlet应用中往往需要对屏幕上显示的内容进行绘制,因此MIDP中提供了低级用户界面的支持。使用低级用户界面的应用程序可以控制如何在屏幕上显示相应的内容以及屏幕上的显示位置,为应用程序提供了充分的控制权。第五章1、答案:RecordStore类的实例不能通过构造函数来创建,只能使用此类提供的两个静态成员方法来创建,这两个方法的定义如下:static RecordStore openRecordStore(String recordStoreName, boolean createNecessary, int authmode, boolean writable)static RecordStore openRecordStore(String recordStoreName, boolean createNecessary)记录存储操作完成后必须要关闭,关闭存储记录的方法非常简单,定义如下:void closeRecordStore()删除记录存储的方法定义如下:static void deleteRecordStore(String recordStoreName)向已经打开的记录存储中添加数据,需要使用addRecord()方法,该方法定义如下:int addRecord(byte data, int offset, int numBytes)从记录存储中读取已有数据,需要使用getRecord()方法,该方法根据记录的id来查询记录。该方法定义如下:byte getRecord(int recordId)修改已经存在的记录存储中的记录数据,可以根据指定的记录id,需要使用setRecord()方法, 该方法定义如下:public void setRecord(int recordId, byte newData, int offset, int numBytes)从记录存储中删除记录可以调用deleteRecord()方法来根据记录的ID来实现。该方法定义如下:public void deleteRecord(int recordId)第六章1、答案:Socket通信是网络通信的基本方式之一,通常由服务器端和客户端两部分组成。服务器端Socket首先要处于等待连接的监听状态,实时监控指定端口,等待客户端Socket连接服务器端的Socket,连接时需要指定服务器的地址和连接端口。当服务器端Socket监听到或者接收到客户端Socket的连接请求,就对客户端Socket的请求进行响应,建立一个新的线程,并把服务器端Socket的描述发给客户端,这样就建立了一个Socket连接。连接建立后,通过输入或者输出流发送或接收数据,而服务器端的Socket继续处于监听状态,等待其他客户端的连接。在数据传输完毕后,客户端会断开连接,这样一个完整的数据传输过程就完成了。总结上述的过程,基于Socket的数据传输的基本步骤如下:1、服务器打开并监听端口2、客户端进行连接3、连接确认并打开输入输出流4、传输数据5、关闭连接2、答案:Socket通信的底层使用的是可靠连接的TCP协议。而数据报(Datagram)连接底层使用的是不可靠连接协议UDP。这两种协议的不同也决定了两种连接的不同。TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。TCP 是面向连接的端到端的可靠协议,并保证传送数据包的顺序,而顺序是用一个响应序号来保证的,这个响应序号告诉接收者发送者期望的下一个包。如果在规定时间内,没有收到关于这个包的确认响应,则需要重新发送此包。TCP 的可靠机制允许设备处理丢失、删除及读错的包。暂停机制允许设备监测丢失包并请求重发。UDP协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。第七章1、答案:基于OBEX协议的通信程序结构和基于HTTP协议的程序一样,也是分为客户端和服务器端。OBEX客户端是通过使用通用连接框架中的Connector类的open(String url)方法来连接OBEX服务器的,其具体语法格式如下:Connector.open(protocol:targetparams);其中,url字符串中的protocol为“irdaobex”,target可以是discover、addr、conn或者name。该方法将返回ClientSession接口对象,该接口继承自javax.microedition.io.Connection,并在此基础上添加了OBEX请求的方法,因此进行红外连接的语句为:ClientSession session=(ClientSession)Connector.open(“irdaobex:/discover”);该代码中连接的target参数为discover,表示设备搜寻附近的红外设备,如果搜索到任何的红外设备在附近,就连接这个设备。ClientSession中提供的Connect()方法可以实现OBEX连接操作,其语法定义如下:public HeaderSet connect(HeaderSet headers) throws java.io.IOException其中,参数headers表示发送到服务器的对象描述信息,返回值为服务器响应对象的描述信息。如果连接成功,服务器会发送响应代码OBEX_HTTP_OK。在调用put()、get()、setPath()、delete()或者disconnect()方法之前,都要先调用HeaderSet类的getResponseCode()方法检查服务器的响应代码是否是OBEX_HTTP_OK。在确认连接成功后,可以调用HeaderSet的setHeader()方法设置要传输对象的各种信息,例如下面代码设置了发送对象的类型和名称:head.setHeader(HeaderSet.TYPE, “text/plain”);head.setHeader(HeaderSet
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号