4 


使用仿真器

Sun JavaTM Wireless Toolkit for CLDC 仿真器用于在您的台式机上模拟 MIDP 设备。这样您就可以方便地看到您的应用程序在 MIDP 环境中的执行情况,同时也为您提供了一个紧密的开发周期,在您的台式机上即可完成整个开发周期。

仿真器并不代表某个特定的设备,而是提供对其所支持的 API 的正确实现。


4.1 仿真器样机

样机是仿真器实现之上的一个薄层,为仿真器提供特定的外观、屏幕特征和输入控件。Sun JavaTM Wireless Toolkit for CLDC 附带表示不同设备类型的样机。


表 4-1 仿真器样机

名称

屏幕大小

画布大小

颜色

输入

DefaultColorPhone

240 x 320

240 x 289

4096

ITU-T

DefaultGrayPhone

180 x 208

180 x 177

4096

ITU-T

MediaControlSkin

180 x 208

180 x 177

4096

ITU-T

QwertyDevice

636 x 235

540 x 204

4096

Qwerty


 

如果您愿意,您可以创建自己的仿真器样机。有关详细信息,请参见基本自定义指南


4.2 仿真器控制

仿真器的外观和功能就像标准桌面窗口中的一部移动电话。本节介绍如何控制仿真器。描述和图示均以 DefaultColorPhone 样机为例,但所有样机操作方法与其类似。

图 4-1 DefaultColorPhone 仿真器样机

在默认仿真器上,电源按钮位于右上侧,而软按钮位于选择按钮的两侧。

可以使用鼠标单击这些按钮以将其按下。大多数按钮还具有便于使用的键盘快捷键。键盘数字键 0 到 9 与仿真器的 0 到 9 按钮相对应。一些不明显的键盘快捷键如下表中所示。


表 4-2 键盘快捷键

仿真器按钮

键盘键

左软按钮

F1

右软按钮

F2

电源按钮

Esc

选择按钮

Enter


 

文本输入的操作与在许多真实设备上的操作非常相似。多次按下某个数字键,即可获得所需的字母。例如,按下 5 键两次得到字母 K。当您输入文本时,星号键 (*) 用于在大写、小写、数字和符号之间进行切换。屏幕顶端的指示器显示您当前所处的模式。井号键 (#) 用于输入空格。

另外,您也可以只按下键盘上的键来输入文本。虽然这样输入文本很方便,但您必须记住您的用户很可能无法享受这种便利条件。

另一种便利的功能是在文本区域复制和粘贴信息。同时按下 Ctrl+V,可将剪贴板中的文本粘贴到 TextBox 或 TextField。要复制 TextBox 或 TextField 中的内容,请同时按下 Ctrl+C。此操作可将文本字段的完整内容放置在剪贴板。


4.3 设置仿真器首选项

您可以对仿真器的设置进行调整,使其更接近特定设备,或在不同的资源情况下测试您的应用程序。

4.3.1 网络代理

仿真器使用您的台式机网络连接。例如,如果仿真器运行建立 HTTP 连接的 MIDlet,则该仿真器将尝试使用台式机网络设置来建立 HTTP 连接。

如果您的开发计算机受防火墙保护,您可以使用代理服务器建立 HTTP 连接。如果您不能确定,请试着检查您的浏览器设置,查看它是否使用了代理服务器。

如果您正在使用代理服务器,那么您就需要配置仿真器以使用相同的代理服务器。要执行此操作,请选择“编辑”>“首选项”。在“网络配置”窗格上,填写您要使用的代理服务器的名称和端口号。还可以选择希望使用的 HTTP 版本。

如果代理服务器使用 HTTP 基本验证(请参见 RFC 2617),请检查验证并填写用户名和密码。

4.3.2 存储大小

您可以设置或修改指定给每个仿真器的永久存储容量,也可以更改堆栈大小(应用程序的对象所允许的存储容量)。选择“编辑”>“首选项”,然后选择“存储”项。

图 4-2 存储首选项

Ktoolbar“首选项”中的“存储”选项卡显示存储根目录、存储大小和堆栈大小

4.3.2.1 永久存储

仿真器具有永久存储,默认情况下,位于电话样机目录中的 appdb 子目录下。这些文件的扩展名为.db

例如,在 Windows 上,仿真器样机 DefaultColorPhone 的永久存储存储在 workdir\appdb\DefaultColorPhone\manager_storage_settings.db 中。

如果同时运行同一个仿真器样机的多个实例,工具包将为每个实例生成唯一的文件路径。例如,在 Windows 上,DefaultColorPhone 的实例可能具有文件路径名 workdir\appdb\temp.DefaultColorPhone1workdir\appdb\temp.DefaultColorPhone2 等等。



注 - 文件 workdir\appdb\DefaultColorPhone\in.use 会记录标记为使用中的存储根目录的数目。如果仿真器出现故障,您需要删除 in.use 文件。



工具包使您能够为存储文件选择一个不同的位置,并能限制该存储的大小。如果您希望在少量永久存储可用的情况下测试应用程序的性能,可以使用该特性。

要调整永久存储设置,请选择“编辑”>“首选项”,并在左窗格中单击“存储”。在“存储根目录”字段中,输入要用于永久存储的目录的名称。您可以仅输入相对路径,此时您指定的目录将创建在 appdb 子目录中。

默认情况下,您可以使用大小为 1 MB (1024 KB) 的永久存储。您可以输入以 KB 为单位的大小限制。请记住,除了您应用程序使用的空间之外,存储实现还有一些系统开销。例如,如果您输入的永久存储大小为 8KB,则您的应用程序数据和存储系统开销可用大小为 8192 字节。

要删除仿真器的永久存储,请选择“文件”>“实用程序”。然后单击“清除数据库”按钮,清除永久存储。清除数据库不影响已安装的应用程序。

4.3.2.2 堆栈大小

堆栈是用于存储您的应用程序对象的内存。要更改堆栈的大小,请选择“编辑”>“首选项”,然后选择“存储”项(请参见图 4-2)。默认情况下,堆栈大小为 1 MB。可以对最大堆栈大小进行设置,使其更接近模拟真实设备的情况。在“堆栈大小”字段中填写最大堆栈大小(以 KB 为单位)。

4.3.3 调整仿真器性能

仿真器使用台式机的许多资源,包括其显示器和网络连接。与基于台式机的仿真器相比,真实 MIDP 设备的处理器速度通常较低、内存较小、网络连接较慢,而且显示器的类型也可能不同。

Sun JavaTM Wireless Toolkit for CLDC 允许您对真实设备的受限环境进行模拟。虽然仿真器不代表真实设备,但是调整性能设置也为您提供了有用的信息,使您了解到您的应用程序在各种运行时环境中的执行情况。

选择“编辑”>“首选项”,然后在左窗格中单击“性能”。请参见图 4-3

图 4-3 调整仿真器的性能

仿真器“首选项”中的“性能”选项卡设置“图形的基本时延”、“显示刷新”、“启用虚拟机速度仿真”和“启用网络吞吐量仿真”

调整“图形的基本时延”可以改变应用程序调用 Graphics 类中的绘图方法至开始绘图之间所经过的时间。

要更改屏幕特征,请选择一种“显示刷新”类型。如果选择“定时”类型,那么您还需要指定“刷新率”。

要模拟真实设备较低的速度,请选中“启用虚拟机速度仿真”并选择希望的速度。

要调整模拟的网络速度,请选中“启用网络吞吐量仿真”,然后选择速度(以位/秒为单位)。


4.4 暂停和恢复

MIDlet 有一个由 MIDP 规范定义的生命周期。MIDlet 可由设备启动或停止。此外,外部事件(如传入电话呼叫)也会导致设备暂停某个 MIDlet。

仿真器提供了暂停和恢复运行中 MIDlet 的简单机制。这对在应用程序暂停时测试其性能非常有用。

当仿真器运行时,从仿真器窗口菜单中选择 "MIDlet" >“暂停”。运行中的 MIDlet 将暂停,屏幕将显示“正在传入呼叫...”消息。

要恢复操作,请从菜单中选择 "MIDlet" >“恢复”。


4.5 单独运行仿真器

开发期间,您会经常通过按下“运行”按钮或选择“项目”>“通过 OTA 运行”直接从工具包运行仿真器。为了进行测试或演示,您可能希望单独运行仿真器。本节将介绍一些不同的方法。Sun JavaTM Wireless Toolkit for CLDC 安装程序创建的程序组包括用于单独运行仿真器的几个选项。

您还可以通过命令提示符来运行仿真器。有关更多信息,请参见附录 B


4.6 使用第三方仿真器

第三方公司,如设备制造商和无线运营商,有时会创建与工具包兼容的设备仿真器。通过将其他仿真器安装到工具包中,您可以获得在更多实现上运行应用程序的经验。具体过程通常是,首先解压缩或安装第三方仿真器,然后将其目录复制到 workdir\wtklib\devices 中。下次运行工具包时,就可以使用该仿真器了。

以下网址列出了目前可用的部分仿真器:

http://developers.sun.com/techtopics/mobility/midp/articles/emulators/