XXXX-XXXX-1-手持移动设备应用开发-习题参考答案_第1页
XXXX-XXXX-1-手持移动设备应用开发-习题参考答案_第2页
XXXX-XXXX-1-手持移动设备应用开发-习题参考答案_第3页
XXXX-XXXX-1-手持移动设备应用开发-习题参考答案_第4页
XXXX-XXXX-1-手持移动设备应用开发-习题参考答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《手持设备移动应用开发》习题第1章J2ME简介1.什么是手持移动设备?答:本课程所谓的手持移动设备是指能随身携带的小型智能电子设备,通常硬件系统应包含处理机、内存和输入输出设备,而软件系统应包含嵌入式操作系统、可安装或卸载的嵌入式应用软件。目前主要的手持移动设备有智能手机、PDA等消费类小型电子设备,也可以包括各类便捷式嵌入式电子设备。2.以智能手机为例的手持移动设备,目前主要有哪些智能手机手持设备操作系统,各自支持何种开发平台?(提示:通过网络搜索查找)答:微软公司操作系统:WindowsMobile开发平台:C#.netNokia公司操作系统:Symbian开发平台:SymbianC++Google公司操作系统:Android开发平台:JavaApple公司操作系统:IOS开发平台:Objective-CResearchInMotion公司操作系统:BlackBerry开发平台:Java3.简述Java三个版本的区别联系,以及本课程采用J2ME作为开发平台的原因。答:区别:Java的三个版本分别针对不同的领域。三个版本其基本语法完全相同,只是根据针对的对象设备不同,API库有些差异。联系:J2SE包含了Java基本的核心的元素,是J2EE和J2ME的基础。J2EE是Java的高级版本,在J2SE基础上增加了新的类库,引入了新的技术,主要用于服务器端的程序;J2ME在J2SE基础上删减了部分内容,还引入了专门的API类库。原因:J2ME主要用于移动设备等小型电子设备的软件开发,本课程针对手持移动设备开发。J2ME有专门的API类库。J2ME是手持移动设备开发目前的主流开发平台,通用性强。4.手持设备移动开发中与J2ME技术中Configuration、Profile对应的技术名称是什么?答:Configuration:CLDC(ConnectedLimitedDeviceConfiguration,连接受限设备配置)Profile:MIDP(MobileInformationDeviceProfile,移动信息设备配置简表)5.什么是MIDlet?答:在J2ME技术平台上按照MIDP规范建立的应用程序。MIDlet是应用程序管理最基本的单元。J2ME应用程序必须继承MIDlet,然后重写三个事件函数。MIDlet中包含有启动、停止、销毁三个函数和一个构造函数,MIDlet首先调用不带参数的构造函数然后应用程序管理器根据当前的MIDlet的状态,决定调用启动、停止或销毁中的某一个。【教材习题】p.11一、选择题:2、3、4、5二、思考题:3第2章J2ME开发环境1.什么是手机模拟器?答:一种能在PC机上仿真手机软硬件环境及界面,使得手机软件的编程、调试、运行、测试等开发过程可以在PC机的模拟环境中实现的软件系统。2.简述WirelessToolKit的功能。答:SunJ2MEWirelessToolKit(缩写为WTK)是Sun公司提供的无线开发工具包,是一个包含手机实用工具、类库、文档、实例以及手机模拟器等的开发套件。WirelessToolKit的功能是提供了四种模拟器,利用软件来代替模拟电子设备。这样可以在程序开发成功后不用修改或者仅做简单的修改后就可以将应用程序直接下载到手机上运行该应用程序,简化了开发过程,提高了开发效率。3.简述WTK中四种模拟器名称及功能。答:四种模拟器分别是:Defaultcolorphone用于具有彩色显示屏幕的手机模拟器Defaultgrayphone用于具有单色灰度屏幕的手机模拟器Mediacontrolskin用于具有音频和视频控制功能的手机模拟器Qwertydevice用于具有标准打字键盘的手机模拟器4.请说明构建基于eclipse构架J2ME编程环境软件安装步骤。答:(1)JDK的安装;(2)WTK的安装;(3)Eclipse的安装;(4)加载EclispeME到Eclipse中;(5)加载WTK到Eclipse中;(6)安装Eclipse简体中文语言包。5.请说明MIDlet程序结构及主要方法功能。答:(1)MIDlet项目程序框架结构必须包括有一个MIDlet主类,该类中默认包含构造方法及destoryApp()、pauseApp()、StartApp()等3个事件处理方法。(2)构造方法用于初始化MIDlet;destoryApp()用于终止MIDlet;pauseApp()用于暂停MIDlet;startApp()用于启动MIDlet。当设备产生相应事件时,程序会自动调用相应处理方法。(3)J2ME应用程序必须继承MIDlet,然后重写三个事件方法。相关的一组MIDlet可组合在一起,称为MIDletSuite。一个或多个MIDlet可打包成一个单独的Jar文件,形成一个MIDletSuite。每个MidletSuite中包含继承自MIDlet的类和其他辅助的类,还包含其他的资源。【教材习题】p.29~30一、选择题:3、4、5二、思考题:1、3第3章 CLDC和MIDPAPI简介1.简述CLDC特点。答:(1)CLDC:ConnectedLimitedDeviceConfiguration(即有限连接设备配置),只定义了支持最基本的功能和虚拟机规范的KVM的核心类库。(2)CLDC运行在存储器大小、处理能力和显示能力都受限制的移动信息设备上。主要针对小型设备,如手机、PDA等(3)在CLDC中Java标准版的一些功能不被支持。2.简述MIDP功能。答:MIDP(MobileInformationDeviceProfile,即移动信息设备简表),针对移动电话等,提供了用户界面、网络连接、局部数据存储等增强的功能。【教材习题】p.42一、选择题:4二、思考题:2第4章J2ME的用户界面编程1.简述高层用户界面及底层用户界面的特点?答:用户界面设计分成两大类:高层用户界面和低层用户界面。(1)高层用户界面(抽象描述)高层用户界面是通过高层API类库实现,这类API使用抽象的方法描述用户界面,界面的具体细节依靠不同厂商提供的MIDP实现,因此在界面实现细节上可以不一致,优点是能够在不同设备之间达到高度的可移植性,使用户界面可以适应不同的硬件设备。MIDP中所有高级API类都是Screen的子类。(2)底层用户界面(运行感知)底层用户界面是通过底层API类库实现,这类API在运行时可以感知移动信息设备中如显示屏、输入设备等硬件配置,依据硬件配置情况来实现用户界面,可以更精确控制硬件和更好地发挥硬件性能,缺点是可移植性差,不同的硬件配置需要不同的程序与之对应。2.简述Display类、DisplayAble类、Screen类功能。答:(1)Display类是系统显示设备管理类,提供取得设备属性和显示方法,可以认为是MIDP显示用户界面的系统级逻辑屏幕;(2)Displayable类代表应用程序各自的逻辑屏幕,系统在同一时间内只能显示一个Displayable逻辑屏幕,用户只能和这个Displayable类交互;(3)Screen类是继承自Displayable类的屏幕显示类,这类对象可以直接在系统屏幕中获得显示,且独占整个屏幕,彼此不能同时分享屏幕显示。可选列表(List类)、提示信息(Alert类)、文本框(TextBox类)、表单(Form)直接继承自Screen类。3.简述Display类与Displayable类的区别联系。答:(1)Display类是系统级的逻辑屏幕,Displayable类是应用程序级逻辑屏幕,两者层次不同;(2)一个设备只有一个系统级逻辑屏幕,可以有多个不同的应用程序级逻辑屏幕;(3)Display类负责管理不同应用程序逻辑屏幕,可以决定哪个应用程序逻辑屏幕在前台的系统级屏幕上显示,并且只有一个应用程序逻辑屏幕能在前台显示,其余应用程序逻辑屏幕可以保存在后台等待在适当时刻显示;(4)可以形象地认为,Display类屏幕是实际可以看到的显示设备,而不同的应用程序有各自的屏幕布局,在需要时将各自屏幕布局显示到这个设备屏幕上。4.简述Command类主要功能。答:在MIDP中,Command类代表屏幕菜单命令项,当用户按下一个按钮时,MIDlet可以响应用户的动作。在Sun的J2MEWTK模拟器中,命令按钮被称为softbutton(软键),专门用来提供屏幕菜单命令项,但并不负责执行命令,执行菜单命令须依赖于对应的命令事件处理方法。5.结合Command类使用过程说明事件处理过程中事件发生者、事件监听者及事件处理者各是哪个对象或方法?答:事件发出者:菜单命令对象Command发出事件事件监听者:菜单命令监听接口CommandListener事件处理者:菜单命令处理方法commandAction()6.试说明setCommandListener()方法主要作用。答:在事件处理过程中,为了让监听者与它所监听的对象挂钩,需要通过所谓监听注册的方式将两者联系起来,setCommandListener()方法可以监听Command对象发出的事件,这个方法隶属于Dsipayable类,List、Alert、TextBox、Form等Displayable类型的对象均可调用该方法,建立与监听事件的联系,指定监听什么类型的事件。7.TextBox类与TextField类在使用和功能上有何异同?答:TextBox是Display的子类,TextField是Form的子类。TextBox是一个DisplayAble类,所以它的对象可以直接由Display显示,而且TextBox会占满整个屏幕。而TextField是Item类的子类,所以TextField需要加到Form表单中才能显示,而且不独占一个屏幕。8.什么是Alert类?答:(1)Alert类用于在屏幕上显示信息并可以等待一定的处理时间的逻辑屏幕,可以等待无限长时间的称为模态和反之称为非模态。(2)Alert类是Displayable类的派生类,属于逻辑屏幕类,可以通过取得系统屏幕Display对象获得显示屏,并且独占屏幕,不能与其他Displayable对象同时出现在一个系统屏幕上。9.什么是List类?答:(1)List类是可以提供具有并列关系的多项内容供用户选择的逻辑屏幕。(2)List类是Displayable类的派生类,属于逻辑屏幕类,可以通过取得系统屏幕Display对象获得显示屏,并且独占屏幕,不能与其他Displayable对象同时出现在一个系统屏幕上。10.请简述Form类与item类型组件在编程中的关系。答:(1)Form类是直接从Displayable类继承来的,因此具有屏幕特性,这就意味着会独占整个屏幕;(2)引入Form类的好处是虽然Form自己是独占整个屏幕,但它可以作为容器,包含Item类型的组件,以便进行屏幕布局。Form类中可以包括文本域、进度条、选择组等的Item类型的组件;(3)可以在同一个Form中提供多个Item类组件,但Item类组件不能包含于其他Item类组件,并且另一个Form中的Item类组件也不能同时显示在该Form中,如果必须在多个Form中显示同一个Item类组件,那就必须在下一个Form显示它之前,先将该Item类组件从当前Form中删除,然后才能让该组件显示在新的Form中。11.什么是Gauge类?答:Gauge是一种可以图形化地表示数值范围大小的进度条,可以通过直观的图形来显示或修改一个变量的大小值,最小值是0,最大值由程序员设置。可以分为交互和非交互两种类型。12.简述ItemStateListener接口功能。答:(1)ItemStateListener接口可以接收Form中Item类型组件状态改变产生的事件,因此可以用这个接口来校验用户的输入动作。(2)当窗体中某个部件的状态发生了改变,窗体的ItemStateListener的itemStateChanged方法就将被调用。系统将发生改变的部件的值传递给itemStateChanged方法,在itemStateChanged方法中就可以对部件发生的变化进行响应。13.简述DateField类的功能。答:(1)DateField类可以在屏幕上显示日期和时间(2)DateField类是从Item派生出来的,可以放置在窗体中。14.简述Timer类和TimerTask类功能。答:(1)Timer类对象的主要功能是作为定时器,而由Timer类对象定时执行的任务由TimerTask类对象定义。(2)使用Timer对象的schedule方法可以调度TimerTask任务。【教材习题】p.85一、选择题:6【程序设计】1.掌握教材p.51TickerEample类程序。2.掌握教材p.54Commander类程序。3.掌握教材p.59~60TwoAlerts类程序。4.掌握教材p.59~60Gauge1类程序。5.掌握教材p.74程序片断功能。6.掌握教材p.79~81星空模拟程序。第5章J2ME数据库编程1.什么是RMS?答:(1)在J2ME中定义了一个简单的基于记录的数据记录管理系统(RecordManagementSystem,RMS)。(2)RMS不同于在PC机或者是服务器上运行的数据库管理系统,RMS仅提供最基本的数据管理功能。(3)记录存储机制是由RecordStore类实现。2.什么是记录?答:(1)在RecordStore中存储的每一条数据称为记录(record)。(2)在RMS中每一条记录的数据都存放在一个byte数组中,每一条记录由惟一的recordId来标识。(3)在RMS中,可以在一个打开的RecordStore中添加、删除、检索和修改记录。3.RMS如何监听记录变化?答:RMS使用记录监听接口RecordListener来监视记录的变化。当一个RecordStore中的记录发生变化时,RecordListener就会被触发执行相应的事件处理方法。使用下面的事件处理函数来响应相应的事件:voidrecordAdded()voidrecordChanged()voidrecordDeleted()6.记录存储系统高级操作中4个记录接口对象是什么?各有什么作用?答:4种高级接口分别是:记录枚举接口(RecordEnemeration)、记录过滤接口(RecordFilter)、记录比较接口(RecordComparator)、记录监听接口(RecordListener)。记录枚举接口:可以从记录存储系统中取得符合条件的多个记录,并在这些记录中前后浏览,以便对某条记录操作;记录过滤接口:可以用来过滤出符合条件的数据记录;记录比较接口:对数据记录排序进行比较;记录监听接口:用于监听记录数据增加、删除和改变事件的发生7.请说明为何在增加或修改记录时需要借助DataOutputStream、ByteArrayOutputStream对象,而在获取记录时需要借助DataInputStream、ByteArrayInputStream对象。答:(1)在J2ME的记录存储系统中数据只能以字节数组类型(byte[])保存,但在实际应用中记录类型有多种,如字符型、字符串型、整型、浮点型、逻辑型等。以增加记录为例,方法是publicintaddRecord(byte[]data,intoffset,intnumBytes),从该方法的第1个参数可以看出添加的记录类型必须是byte[],这就要求在使用添加记录方法addRecord()前首先将其他数据类型转换为byte[]型数据,然后才能使用这个方法。这时需要DataOutputStream、ByteArrayOutputStream两个类的对象配合完成这个工作。转换过程的代码片断如下:DataOutputStream、ByteArrayOutputStream这两个类配合可以完成将数据转换为字节型数据的工作,方法如下://首先创建一个ByteArrayOutputStream对象,这个对象可以将得到的数据转换化字节数组型数据输出ByteArrayOutputStreambs=newByteArrayOutputStream();//将ByteArrayOutputStream对象作为参数,创建与这个对象关联的DataOutputStream对象,DataOutputStream对象提供了将各种基本JAVA数据类型转换为数据输出流的方法DataOutputStreamds=newDataOutputStream(bs);//调用DataOutputStream对象的方法writeInt()将int型数据转换为数据输出流,以便传递给ByteArrayOutputStream对象;ds.writeInt();ds.close();//将ByteArrayOutputStream对象中的字节数组数据取出存入字节数组b中byte[]b=bs.toByteArray();(2)同样在获取记录时,直接从记录存储系统中得到的数据是字节数组类型,需要根据实际应用需要转换成相应的其他数据类型,这个转换过程需要DataInputStream、ByteArrayInputStream这两个类的对象配合完成这个工作。转换过程的代码片断如下://从记录存储系统中取得字节数组型数据存入b中byteb[]=rs.getRecord(id);//创建与b关联的ByteArrayInputStream型对象baisByteArrayInputStreambais=newByteArrayInputStream(b);//建立与bais关联的DataInputStream对象disDataInputStreamdis=newDataInputStream(bais);//调用DataInputStream对象的readUTF()将得到的数据转换成UTF格式字符串;dis.readUTF();//dis.readInt();将得到的数据转换成int型数据dis.close();【教材习题】p.119~120一、选择题:1、2、3、4、6二、思考题:6【程序设计】1.掌握教材p.87RecordStoreTest类程序。2.掌握教材p.90RecordAdd类程序。3.掌握教材p.91RecordDel类程序。4.掌握教材p.92~94TestRecord类程序。5.掌握教材p.95~97RecordListenerExample类程序。第6章J2ME网络编程1.javax.microedition.io包在网络编程中有什么作用?答:(1)javax.microedition.io包的目的是实现通用的网络通信和本地I/O。(2)javax.microedition.io里包含了一个类、9个接口和一个异常2.简述Connection接口功能。答:Connection接口提供了网络连接的功能,这是一个通用接口类型,只定义了close方法,没有定义open方法,因为打开接口使用Connector.open()方法。3.举例说明如何编程实现打开连接读取数据。答:实现打开连接读取数据的程序片断如下: Stringurl=”;”//定义需要打开的URL地址 //创建并打开连接对象,强制转换为相应的连接对象类型ContentConnectionconnection=(ContentConnection)Connector.open(url)//创建并打开相应连接对象的输入数据流InputStream_istm=connection.openInputStream();//取得连接对象中数据流的长度intlen=(int)connection.getLength();if(len!=-1) //如果输入数据流长度不为空{byte[]data=newbyte[len];//按输入数据流长度创建字节数组istm.read(data); //从输入数据流中读取数据到字节数组中}istm.close(); //关闭输入数据流connection.close();//关闭连接对象5.Connection支持哪些常见的子接口?答:InputConnection接口、OutputConnection接口、StreamConnection接口、ContentConnection接口、StreamConnectionNotified接口、DatarramConnection接口等。6.为什么在网络连接编程中要采用多线程技术?答:网络连接是有可能堵塞的操作,为了高效运行程序,有必要引入多线程设计。J2ME仍然采用继承Thread类实现线程类,或实现Runnable接口来实现线程操作,调用Thread中的start()方法启动线程操作的方法run()。【程序设计】1.掌握教材p.123~124GetURLContent类程序。第9章J2ME的低级用户界面设计1.可以在一个MIDlet中同时使用高级用户界面API和低级用户界面API吗?答:可以在一个MIDlet交互使用高级用户界面API和低级用户界面API,但是不能同时使用两种类型的API。2.请从继承关系说明为什么Canvas类本质上是一种屏幕类?Canvas类本身又是各种底层用户界面类的什么类?(提示:参考WTKDocumentation)答:(1)从继承关系来看,Canvas类继承于Displayable类,因此本质上也是一个屏幕类。(2)Canvas类是底层界面编程基类,是一个抽象类,编程时必须继承该类并实现其paint()方法。2.在实际编程中通常需要重写Canvas类什么方法?应用程序是否可以直接调用这个方法?说明能或不能直接调用的理由。答:在实际编程中通常需要重写Canvas类的paint()方法;paint方法只能被系统调用,应用程序不能直接调用该方法,用于更新界面,而且每次调用paint()方法都需要传递画图的画笔Graphics,如果用户想要调用paint()方法,只能通过调用repaint()方法间接调用Paint()方法。3.什么是按键事件?什么是指针事件?答:(1)按键事件是由键盘引发的事件,在底层用户界面开发中,我们需要自己来编程处理这类事件。在Canvas类中存在三种处理按键事件的方法,当相关的键盘按下时,调用相对应的方法。这3种按键事件处理方法是:protectedvoidkeyPressed(intkeyCode):处理按键按下protectedvoidkeyReleased(intkeyCode):处理按键释放protectedvoidkeyRepeated(intkeyCode):处理按键重复按下以上方法的参数是键码。键盘的每个按键都有一个与之对应的键码,如:KEY_NUM0,表示数字键0。(2)在使用了指针设备或者触摸屏的移动设备上产生的事件叫做指针事件。相应的事件处理方法:protectedvoidpointerDragged(intx,inty)protectedvoidpointerPressed(intx,inty)protectedvoidpointerReleased(intx,inty)4.什么是游戏动作按键?用什么方法取得游戏按键功能?答:(1)在游戏中,对键盘有一些特殊的要求,需要用键盘来表示朝哪个方向移动,或者用键盘来指示开火等,所以MIDP专门为游戏设计了游戏动作按键,一个键码对应一个游戏动作。MIDP专门为游戏设计的动作按键:UP、DOWN、RIGHT、LEFT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D等。(2)从键盘事件中得到的keyCode按键代码,可以使用getGameAction()方法转变为游戏动作按键,如:UP、DOWN、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D,这样可以判断用户输入按键功能,进而在程序中实现该功能。5.Graphics对象主要作用是什么?Graphics对象中绘制图形的常用方法有哪些?答:Graphics对象提供在Canvas上绘图的能力,绘图可以直接显示在屏幕上,也可以保存在内存中取决于Graphics对象来源:①如果是通过paint()方法参数传入的Graphics对象,那么绘图就直接显示在屏幕上,直接显示在屏幕上的图像无法保存;②如果用Image对象通过getGraphics()获得Graphics对象,那么绘制的图像就绘到内存中,绘制到内存中的图像可以保存。Graphics对象可用于绘制直线、矩形、园、椭圆等几何图形,而且中间还包括矩形、圆绘制图形的填充。还可以绘制文本并设置颜色,字体、线条粗细等。Graphics对象中绘制图形的常用方法有:直线:voiddrawLine(intx1,inty1,intx2,inty2);矩形:voiddrawRect(intx,inty,intwidth,intheight);圆角矩形:voiddrawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight);绘制填充矩形:publicvoidfillRect(intx,inty,intwidth,intheight);绘制填充圆角矩形:publicvoidfillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight);绘制弧线:voiddrawArc(intx,inty,intwidth,intheight,intstart,intangle);绘制填充弧线:voidfillArc(intx,inty,intwidth,intheight,intstart,intangle);6.Graphics对象绘制文本的方法是什么?说明其参数含义。答:调用Graphics对象的如下方法在屏幕上绘制文本:publicvoiddrawString(Stringstr,intx,inty,intanchor)其中参数含义:Stringstr:需显示的字符串intx,inty:文字显示坐标intanchor:文字显示的水平或垂直方向对齐方式7.Image对象的主要功能是什么?从内存的角度来看,Image对象代表着什么样的内存区域?答:(1)可以形象地认为Image对象代表“画布”(Canvas)上的图像区域。(2)从内存的角度来看,Image对象代表着一块与图像数据及方法对应的内存区域。【程序设计】1.掌握教材p.182~183MyCavas类和CanvasHelloMIDlet类程序。2.掌握教材p.184~185CanvasHelloMIDlet2类程序。3.掌握教材p.188~191HappyPush.java程序。4.掌握教材p.196~198ScreenSaver程序。5.掌握教材p.205~210ImageMove程序。第10章J2ME游戏程序设计1.在移动电话上开发游戏的主要有哪些限制?答:(1)屏幕尺寸及分辨率的限制;(2)存储空间的限制;(3)网络速度的限制。2.J2ME游戏程序设计有何特点?答:(1)J2ME游戏程序主程序基本结构与其他MIDlet程序结构相同;(2)游戏MIDlet中可使用Canvas对象绘制图形,对按键的响应功能更加丰富。3.MIDP中提供了Canvas的扩展类是什么?有何功能?答:GameCanvas是MIDP中提供的Canvas的扩展类。主要功能是包含游戏逻辑和图形绘制,实现游戏中编程所需的所有功能,GameCanvas会在计算机的内存中中开辟空间,同时有一个Graphics对象,Graphics对象就像画笔,画面的变化就通过Graphics对象写入内存,除了画面外,GameCanvas类还提供了键盘事件处理,以得到键盘的当前状态。4.在MIDP2.0GameAPI中图层由什么类实现?答:为了便于操控图像,可以使图像中不同的内容位于不同的层面上,这就是图层的概念,如让人物和背景位于不同的图层上。对每一图层可以分别管理、操控。为此,MIDP提供了图层功能,图层由类Layer实现,而多个图层的管理又由LayerManger类负责。不同的图层叠加在一起形成了一个完整的图像。图层中有两个特殊图层:Sprite和TiledLayer,Sprite存放游戏角色,TiledLayer存放游戏背景5.LayerManger类的主要功能是什么?答:由于受屏幕大小限制,图像可能无法完全显示出来,LayerManger类提供了观察窗口ViewWindow,通过移动观察窗口实现图像不同部分的显示。6.在GameCanvas中检测Sprite是否与其他对象发生碰撞,定义哪两种检测模式?答:在GameCanvas中可以通过collidesWith()方法的不同参数的重载形式检测Sprite与Image、Sprite与Sprite、Sprite与TiledLayer之间是否相遇(即碰撞检测)。collidesWith()方法中参数pixelLevel表示检测模式,在MIDP2.0中定义了两种模式:像素模式和边界模式。像素模式用于两个不透明的像素重叠的碰撞检测,而边界模式用于边界相接时表示相遇的情况。7.在MIDP2.0GameAPI中TiledLayer在分网格时,静态索引值和动态索引值分别从什么值开始?答:TiledLayer可以将一个大图像分割成网格状,形成很多小的图像,按照需要将一些小图像组合起来,形成一个完整的图像,TiledLayer在分网格的时候,这些分割成的小图像都有一个索引值,索引时有动态和静态之分,静态索引值从1开始计数,动态索引值从-1开始计数,动态索引值和静态索引值之间存在关联。8.什么是游戏精灵(Sprite)?答:(1)Sprite是Layer类的子类,负责主要角色图层,这个图层由一个个图像组合起来,每一个图像称为一帧,每一帧图像按照一定时间间隔显示出来形成动画;(2)创建帧的方法如下:Sprite(Imageimage,intframWeidth,intframeHeight)(3)帧的顺序也就是帧的索引值从0开始,Sprite提供了切换顺序的方法:voidsetFrame(int

sequenceIndex)

voidnextFrame()

voidprevFrame()【程序设计】1.掌握教材p.216~217KeyEvent类程序。2.掌握教材p.217~218程序。第11章 J2ME的无线消息处理1.WirelessMessagingAPI规范最新JSR版本是什么?答:J2ME用于开发基于无线消息服务的应用程序规范主要有WirelessMessagingAPI1.1(WMA,JSR120)及目前最新版本为WirelessMessagingAPI2.0(WMA,JSR205)。2.WMA支持哪几种无线消息数据服务?各有什么特点?答:WMA支持文本消息、多媒体消息、小区广播等三种无线消息数据服务。其中:文本消息:即我们熟知的手机短信;多媒体消息:即我们熟知的手机彩信,可以传递文本、音频、视频、图片等内容,实质是以二进制形式传递数据消息;小区广播:消息由基站广播,移动终端(如手机)可以接收,这种消息传递是单向的数据传递服务。3.Message接口的哪两个子类分别代表了文本类型和二进制类型的消息?答:Message接口定义了不同类型短消息的基础部分,它的两个子类TextMessage和BinaryMessage分别代表了文本类型和二进制类型的消息。4.掌握WMA的主要组件中类名称、方法及功能。答:WMA的主要组件包括:Message、TextMessage、BinaryMessage、MessageConnection和MessageListener。Message接口定义了不同类型短消息的基础部分,它的两个子类TextMessage和BinaryMessage分别代表了文本类型和二进制类型的消息。调用BinaryMessage的setPayloadData()和TextMessage的setPayloadText()方法可以把有效负载数据添加到数据容器中,然后进行发送。MessageConnection接口是扩展了GCF中定义的Connection接口,MessageConnection接口提供了newMessage(),send()和receive()方法来创建、发送和接受消息对象。MessageListener实现了监听器设计模式用于异步接受消息,当等待消息到来的时候系统不用堵塞。每次有消息到来的时候,平台会调用MessageListener中定义的notifyIncomingMessage()方法。【程序设计】1.掌握教材p.265~271文本消

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论