XXXXXXXX1手持移动设备应用开发习题参考答案.docx

上传人:b****5 文档编号:29715643 上传时间:2023-07-26 格式:DOCX 页数:22 大小:28.24KB
下载 相关 举报
XXXXXXXX1手持移动设备应用开发习题参考答案.docx_第1页
第1页 / 共22页
XXXXXXXX1手持移动设备应用开发习题参考答案.docx_第2页
第2页 / 共22页
XXXXXXXX1手持移动设备应用开发习题参考答案.docx_第3页
第3页 / 共22页
XXXXXXXX1手持移动设备应用开发习题参考答案.docx_第4页
第4页 / 共22页
XXXXXXXX1手持移动设备应用开发习题参考答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

XXXXXXXX1手持移动设备应用开发习题参考答案.docx

《XXXXXXXX1手持移动设备应用开发习题参考答案.docx》由会员分享,可在线阅读,更多相关《XXXXXXXX1手持移动设备应用开发习题参考答案.docx(22页珍藏版)》请在冰豆网上搜索。

XXXXXXXX1手持移动设备应用开发习题参考答案.docx

XXXXXXXX1手持移动设备应用开发习题参考答案

XXXX_XXXX_1_手持移动设备应用开发_习题参考答案

第1章J2ME简介

1.什么是手持移动设备?

答:

本课程所谓的手持移动设备是指能随身携带的小型智能电子设备,通常硬件系统应包含处理机、内存和输入输出设备,而软件系统应包含嵌入式操作系统、可安装或卸载的嵌入式应用软件。

目前要紧的手持移动设备有智能手机、PDA等消费类小型电子设备,也能够包括各类便利式嵌入式电子设备。

2.以智能手机为例的手持移动设备,目前要紧有哪些智能手机手持设备操作系统,各自支持何种开发平台?

(提示:

通过网络搜索查找)

答:

微软公司操作系统:

WindowsMobile开发平台:

C#.net

Nokia公司操作系统:

Symbian开发平台:

SymbianC++

Google公司操作系统:

Android开发平台:

Java

Apple公司操作系统:

IOS开发平台:

Objective-C

ResearchInMotion公司操作系统:

BlackBerry开发平台:

Java

3.简述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类使用过程讲明事件处理过程中事件发生者、事件监听者及事件处理者各是哪个对象或方法?

答:

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,最大值由程序员设置。

能够分为交互和非交互两种类型。

答:

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型对象bais

ByteArrayInputStreambais=newByteArrayInputStream(b);

//建立与bais关联的DataInputStream对象dis

DataInputStreamdis=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.举例讲明如何编程实现打开连接读取数据。

答:

实现打开连接读取数据的程序片断如下:

//创建并打开连接对象,强制转换为相应的连接对象类型

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(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1