如何使用 IDE 的内置功能来解决 Java ME MIDP 设备碎片问题
一次编写、随处运行的口号曾驱动了 Java 编程语言的流行,但在 Java Micro Edition (Java ME) 的世界中却并不适用。屏幕大小、颜色深度和内存等设备功能显著不同。您必须选择配置文件、配置和 J2ME API,而且会碰到我们所谓的设备碎片问题。本教程介绍如何使用 IDE 的内置功能来解决 Java ME MIDP 设备碎片问题。
需求
开始之前,需要在您的计算机中安装以下软件:
Java Standard Development Kit (JDK) 版本 5.0 或 6.0
带有 Mobility 包的 NetBeans IDE 6.0
注意:可以使用 Mobility Pack 附带的 Sun Java 无线工具包(Wireless Toolkit)部署此项目。不必使用其他软件来执行本教程介绍的基本概念。但是,如果需要部署到其他平台,我们建议您下载您要调整的适当仿真程序。可以使用以下几个最流行的 CLDC/MIDP 设备平台:
Nokia Series 40 SDKs for Symbian OS
Nokia Series 60 SDKs for Symbian OS
Sony Ericsson SDK 2.2.4 for the Java ME platform
Motorola Java ME SDK v6.4 for Motorola OS Products
如果您不了解 NetBeans Mobility Pack 或 Java ME 开发,建议您在继续本教程之前,阅读 NetBeans Mobility Pack 6.0 for CLDC 快速入门指南。本指南包括有关添加和注册平台仿真程序的章节。
设置应用程序
本例使用一个叫做 Ball Shot 的简单游戏,阐述如何调整设备功能来解决设备碎片问题。
下载 BallShotGame.zip 项目
解压项目并将内容放在 IDE 的 project_home 目录中。
有关将 mobility 项目导入 IDE 中的更多说明,请参阅 Mobility 项目导入指南。
创建自定义配置
解决设备碎片问题的一个策略基于 项目配置 的 NetBeans 使用。这允许您创建一组源码并为要调整的每个移动设备进行定制。
注意保持配置一致,以便仿真程序平台和目标设备与要创建的“项目”配置相对应。
创建项目配置
选择“文件”>“打开项目”(Ctrl-Shift-O)。导航至已解压和已安装 SingleCotopiaGameBallShot 项目文件夹所在的文件夹。
右键单击 SingleCotopiaGameBallShot 项目节点并选择“属性”。
单击页面顶部的“管理配置”按钮。这将打开“管理配置”对话框。
单击“添加”,然后为配置键入所需的名称,然后点“确定”。
为要部署的其他仿真程序重复上一步骤。
创建功能
功能是设备属性,比如屏幕大小、颜色深度、API 支持和音频支持。在项目中创建功能允许您将其与一个或多个支持特定属性或属性组的项目配置相关联。如果将来需要修改、移除或添加配置,只需将配置与实现更改的功能相关联即可。然后,配置将自动与任何与功能相关的代码块相关联。
右键单击 SingleCotopiaGameBallShot 项目节点并选择“属性”。
从“类别”菜单树中选择“功能”页面。
从“项目配置”下拉菜单中,选择与要定义的功能相关联的配置。
如果需要,取消选中标有 使用默认配置值 的框。
单击“添加”按钮。
在“新建功能”对话框中,输入功能的名称,比如 screen,如果 screen 功能已经存在,则单击”编辑“按钮。
输入此功能的值。
使用预处理器块添加特定于配置的代码
预处理器块允许创建、管理和跟踪特定于一个或多个项目配置或功能的代码。此代码仅为您标识的配置或功能启用(或禁用)。针对移动设备最实用的属性是屏幕大小。屏幕大小、颜色深度、API 支持和其他功能的一个有用的参考站点是 Jbenchmark 站点。
在 BallShotImageCreator.java 编辑器窗口中,右键单击实例化 BallShotImageCreator 的源码行 (public BallShotImageCreator() {。
右键单击此行并选择“预处理程序块”>“创建 If/Else 块”。在“可用项目”框中滚动并选择先前定义的功能 screen。
在行 //#if screen 上,添加以下代码:== "240x320"
当活动配置与指令值匹配时,则部署由 //#if 预处理器指令标记的代码。当活动配置与预处理器的值不匹配时,则使用由 //#else 预处理器指令包围的代码。换句话说,如果活动平台具有 240x320 功能,则仿真程序显示 22 像素的球。//#endif 预处理器指令完成预处理器块。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>