开始之前

这份教程带您了解各种 MIDlet 部署方法。在阅读教程之前,您应该具有 JAVA™ 2 Platform,Micro Edition(J2ME)的基本知识。

关于本教程

在本教程中,您将了解到以下内容:

  • 远程部署。远程部署在本地桌面上开发的 MIDlet。
  • 本地部署。将本地桌面开发的 MIDlet 下载到与其连接的支持 J2ME 的设备。
  • 把 URL 引用的 MIDlet 下载到支持 J2ME 的设备。
  • 通过无线(OTA)方式下载 URL 引用的 MIDlet。
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
 

前提条件

学习本教程需要以下软件:

  • J2ME Wireless Toolkit 2.0
  • Java 2 Platform,Standard Edition(J2SE)1.4
  • 工具包中的示例代码
  • 支持 J2ME 的物理设备
  • 将设备连接到桌面的数据线

教程使用 Motorola/Nextel i85s 手机,可以在 Nextel 购买。

部署挑战

这一节介绍 MIDlet 部署、支持 J2ME 的设备以及其他各种部署类型背后的挑战。

无线挑战

开发人员通常在与应用程序将要部署和运行的平台类似的平台上构建、测试和评估应用程序。已经证明,开发无线 Java 应用程序更具挑战性,因为其开发平台(例如 Solaris 或 Microsoft® Windows®)往往与部署平台(例如移动电话或 PDA)完全不同。因而,虽然模拟器使开发人员能够在开发平台上执行一些测试,但最终他们还是必须在迥然相异的实际无线网络环境中测试和评估应用程序。

支持 J2ME 的电话预览

许多支持 Java 的无线设备已经具备了必要的无线基础设施,支持无线应用程序的部署。表 1 显示了支持 J2ME 的常见无线设备。

表 1. 支持 J2ME 的常见设备

制造商 型号
阿乐卡特 One Touch 556
卡西欧 C452CA
富士通 F503i
东芝 C3001H
京瓷 C3002K
LG Sprint PCS Vision Picture Phone
三菱 D2101V
摩托罗拉 A388
摩托罗拉 i85s
摩托罗拉 i90c
摩托罗拉 i95cl
NEC N2002
诺基亚 3100
松下 C3003P
三星 SCH-X130
三星 Sprint PCS International Phone
三星 Sprint PCS Vision Ready Link Phone
三星 Sprint PCS VisionSM Multimedia Phone
三星 Sprint PCS VisionSM Picture Phone PM-A840
三洋 Sprint PCS Vision Multimedia Phone
三星 Sprint PCS Vision Picture Phone
西门子 C(T)56
索爱 J220a
索爱 K750
索爱 P800
索爱 P802
索爱 P900
索爱 P908
索爱 P910a

要把 MIDlet 部署到某个支持 J2ME 的设备,需要知道设备使用的无线技术。例如,摩托罗拉 i85 系列手机使用 iDEN。摩托罗拉 iDEN 主页(请参阅 参考资料)提供了在这些型号的手机上部署 MIDlet 的有用信息。

MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网

MIDlet 部署-编程知识网  

部署基础

MIDlet 分成两个大类:

  • 本地 MIDlet,也叫做独立 MIDlet,它们在手持设备上执行自己的全部操作,不需要访问无线网络上的资源。示例有:计算器和简单的日程安排程序。
  • 网络 MIDlet 由运行在无线设备部分组件和网络上的组件构成,所以依赖于通过网络对外部资源的访问;例如:一个 Stock MIDlet 有一个在无线电话上的客户机,它与网络服务器进行交互以获得股票信息。

本地 MIDlet 也比网络 MIDlet 容易测试。例如,即使无线电话未连接网络,也能在无线电话上运行计算器程序,而如果没有与实际传输消息的 SMTP 服务器的连接,电子邮件客户机就无法工作。

MIDlet 也可以按它们的部署方式分类:

  • 模拟:模拟器可以部署和运行本地开发的 MIDlet。J2ME Wireless Toolkit 允许您在开发环境中运行本地无线应用程序;JAD 和 JAR 文件位于您自己的系统中(如果使用的 J2ME Wireless Toolkit 位于 c:/WTK23/apps/YourProject/bin 目录下);所以,模拟器提供了一个模拟环境,是 MIDlet 测试的主要平台。
  • 本地部署:采用本地部署时,本地开发的 MIDlet 将部署到通过数据线连接到桌面的支持 J2ME 的物理设备上。
  • 远程部署:采用远程部署时,本地开发的 MIDlet 上传到远程 Web 服务器。
  • OTA 部署:这意味着 MIDlet 通过无线(OTA)方式下载到支持 J2ME 的物理设备。

部署 MIDlet 的四种方式

J2ME 模拟工具

J2ME Wireless Toolkit 提供了完整的模拟环境。要找到它,请按以下方法操作:

  1. 选择 Start > Sun Java Wireless Toolkit 2.3 Beta,此操作将打开 KToolbar 这个模拟工具。
  2. 创建新项目或打开一个现有项目。
  3. 选择 Build。出现 图 1 所示的屏幕。

    图 1. 构建 MIDlet 项目
     MIDlet 部署-编程知识网

  4. 选择 Run。出现 图 2 所示的屏幕。

    图 2. 运行时的 MIDlet 
    MIDlet 部署-编程知识网 

对于其他部署选择,可以把项目导出到一个包:

  1. 选择 Project > Package > Create Package
  2. 如果没有检测到错误,就会创建对应的 JAR 和 JAD 文件。出现 图 3 所示的屏幕。

图 3. 导出 MIDlet 项目
 MIDlet 部署-编程知识网

MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网

MIDlet 部署-编程知识网  

本地部署

如前所述,使用本地部署时,要把在本地桌面上开发的 MIDlet 部署到通过数据线连接到桌面的支持 J2ME 的物理设备。可以通过下载 Motorola Java Application Loader Lite(JAL Lite)把本地 MIDlet 部署到支持 J2ME 的摩托罗拉手机上。JAL Lite 对文件名长度的限制是 16 个字符,要求应用程序的 JAD 和 JAR 文件位于同一目录内,并且不能下载执行网络通信的应用程序。

用数据线把手机连接到桌面,在桌面启动 JAL Lite。

应用程序显示设备上已经安装的 MIDlet。要安装新的应用程序,请单击 Connect,然后再单击 Download。应用程序载入器允许您浏览硬盘并选择一个 JAD 文件。一旦选中了文件,应用程序就开始下载应用程序,并显示进度指示器。

下载完成之后,单击 Disconnect,把手机从数据线断开。浏览手机上可用的 Java 应用程序时,您应可看到刚刚下载的应用程序。请选择它,系统会询问您是否想安装。如果回答是,应用程序即安装,您也就可以开始使用它了。应用程序会一直保存在手机上,直到显式地删除它为止。

MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网

MIDlet 部署-编程知识网  

远程部署

要以远程方式部署无线应用程序:

  1. 把应用程序文件(从 KToolbar 得到的 JAD 和 JAR 文件)上传到远程 Web 服务器。例如,如果项目名称为 CityGuide,就从项目主目录中的 bin 目录(例如 c:/WTK23/apps/games/bin)处上传文件 CityGuide.jad 和 CityGuide.jar。请注意,这两个文件必须放在服务器的同一目录下。
  2. 重新配置 Web 服务器,以便使服务器能够识别 JAD 和 JAR 文件:
    • 对于 JAD 文件类型,选择文件扩展名为 .jad,MIME 类型为 text/vnd.sun.j2me.app-descriptor。
    • 对于 JAR文件类型,选择文件扩展名为 .jar,MIME 类型为 application/java-archive。
  3. 修改 JAD 文件的 MIDlet-Jar-URL 属性,指定 JAR 文件的 URL。例如,在上传到服务器的 games.jad 文件副本中,把 MIDlet-Jar-URL: CiyGuide.jar 改为 MIDlet-Jar-URL:http://YourWebServerAddress:port/pathTo/CityGuide.jar。

要查看应用程序的部署是否正确,请打开普通的 Web 浏览器,输入 JAD 文件的 URL。J2ME Wireless Toolkit 的默认模拟器应出现,远程部署的应用程序应运行于其中。

支持 J2ME 的设备中包含一个 Java 应用程序管理器(JAM),由它负责下载、安装和配置应用程序。J2ME Wireless Toolkit 包含一个示例 JAM,可以在默认模拟器中运行。要查看用户将如何下载和管理应用程序,请打开命令提示符,将当前目录更改为 c:/WTK23/bin,并输入命令:emulator -Xjam

模拟器出现,您将看到 JAM 的主屏幕。主屏幕如 图 4 所示。

图 4. J2ME Wireless Toolkit 的 Java 应用程序管理器 —— 主屏幕
 MIDlet 部署-编程知识网

选择 Apps,屏幕如 图 5 所示。

图 5. J2ME Wireless Toolkit 的 Java 应用程序管理器 —— 应用程序屏幕
 MIDlet 部署-编程知识网

选择 Install 软键,应用程序的 URL 如 图 6 所示,提示您输入包含应用程序 JAD 文件的 Web 页面的 URL。

图 6. J2ME Wireless Toolkit 的 Java 应用程序管理器 —— 安装屏幕
 MIDlet 部署-编程知识网

有一种更快、更简单的起步方式,就是使用这种形式的命令: emulator -Xjam:install=http://yourWebServerAddress:port/yourApp.jad

JAM 下载 JAD 文件中指定的 JAR 文件,并安装应用程序。

请注意这个语法只允许您一次安装一个 MIDlet。要使用一个 URL 支持多个 MIDlet,可以把 MIDlet 放在一个 HTML 文件中,如 清单 1 所示。

清单 1. 有多个 MIDlet 的 HTML

<html>
<head>
<title>Midlets</title>
</head>

<body>

Download midlets:
<p>
<a href="http://127.0.0.1:8080/games.jad">Games.jad</a>
</p>
<p>
<a href="http://127.0.0.1:8080/calc.jad">Calc.jad</a>
</p>
<p>
<a href="http://127.0.0.1:8080/browser.jad">Browser.jad</a>

Thank you.
</p>
</body>

</html>

另外还要注意,在 HTML 文件中提到的超级链接应当指向应用程序的 JAD 文件。JAM 读取 HTML 文档(midlets.html)、解析超级链接,并显示可以下载的 MIDlet 的列表。

现在您可以选择要下载到设备的 MIDlet。JAM 读取 JAD 文件,确定设备是否能够处理应用程序。如果能够处理,就下载并安装 JAD 文件中指定的 JAR 文件。JAM 非常智能化,如果想安装的 MIDlet 在设备上已存在,JAM 会向您发出提示。但它允许您下载 MIDlet 的更新版本。

MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网

MIDlet 部署-编程知识网  

部署由设备 URL 引用的远程 MIDlet

有几种方法可以下载 URL 引用的 MIDlet:

  • 用 HTTP 或 FTP 把 URL 引用的 MIDlet 下载到桌面。可以用 JAL Lite 和数据线,通过数据线把选中的 MIDlet 下载到与桌面连接的 J2ME 设备。
  • 可以用摩托罗拉 iDEN Java Application Loader 下载 URL 引用的 MIDlet。摩托罗拉的 iDEN Web 站点提供了如何成为 iDEN's Developer Program 的成员以及开始下载的详细信息(请参阅 参考资料)。

MIDlet 部署-编程知识网
MIDlet 部署-编程知识网
MIDlet 部署-编程知识网

MIDlet 部署-编程知识网  

通过无线方式下载应用程序

曾经有一段时间,欧洲的无线门户(如 Midletcentral)允许客户通过无线(OTA)方式将应用程序直接下载到手机。无线应用程序的供应最终也进入了北美。例如,Nextel 的客户无需数据线即可下载需要网络的无线应用程序。

OTA 是通过无线网络从 Internet 到无线设备部署无线 Java 应用程序(MIDlet 套件)的方式。用户不需使用数据线把设备连接到桌面,也不必访问服务中心,就可以安装或升级软件。

要利用 OTA,必须给手持设备配备一种机制,利用设备的浏览器(例如 WAP 浏览器)或专门为发现可下载 MIDlet 套件而专门编写的常驻应用程序,从而使设备发现可用于下载的 MIDlet 套件。

Java Wireless Toolkit 2.3 Beta 配备了 OTA 供应功能。要使用 OTA 服务器,请选择 Start > Sun Java Wireless Toolkit 2.3 > KToolbar,启动 KToolbar 应用程序。打开一个现有项目,例如工具包自带的 CityGuide 项目。这次不单击工具栏上的 Run,而是选择 Project 菜单,然后为 OTA 项目选择 Run,如 图 7 所示。

图 7. 用 OTA 运行

XML error: The image is not displayed because the width is greater than the maximum of 500 pixels. Please decrease the image width.

模拟器启动,但是没有立即打开 MIDlet 套件让您选择要启动哪个 MIDlet。相反,模拟器启动自己的应用程序管理软件(AMS),这是用于管理 MIDlet 套件的安装与删除的系统软件。同时,KToolbar 激活内置的 OTA 服务器。请单击模拟器上的 Apps,激活 AMS。

图 8. OTA 供应 —— 选择应用程序
 MIDlet 部署-编程知识网

AMS 的主屏幕列出已经安装的 MIDlet 套件;当然第一次运行时什么也不会有。列表顶端是标记为 Install Application 的项目,如 图 9 所示。

图 9. OTA 供应 —— 应用程序屏幕
 MIDlet 部署-编程知识网

请选择 Install Application。安装程序提示您输入包含 MIDlet Java 应用程序描述符(JAD)链接的 HTML 的 URL。KToolbar 自动生成这个 HTML 文件,并把它放在项目的 bin 目录下,用这个 URL(例如 http://localhost:3114/CityGuide/bin/CityGuide.html)初始化安装程序。参见 图 10

图 10. OTA 供应 —— HTML 中具有 JAD 文件的超级链接
 MIDlet 部署-编程知识网

单击 Menu 并从菜单中选择 Go,启动应用程序安装程序。

URL 的第一部分是 KToolbar 的 OTA 服务器的地址,它实际就是个简化的 Web 服务器。URL 可能与这个示例不同。安装程序并不在意它连接的是什么。例如,如果您想在实际 Web 服务器处测试安装过程,可以修改 URL。

图 11. OTA 供应 —— 启动应用程序安装程序
 MIDlet 部署-编程知识网

安装程序获取 HTML 文件并解析文件,查找以 .jad(JAD 文件的标准扩展名)结尾的链接。您选择 Install 之后,安装程序就下载 JAD 文件,显示 MIDlet 套件的大小、版本和供应商,并询问您是否确定安装此套件。

图 12. OTA 供应 —— 确认屏幕
 MIDlet 部署-编程知识网

在您确定想要继续之后,安装程序获取套件 JAR 文件。下载完 JAR 文件之后,安装程序验证 MIDlet 套件的内容,提示用户确定套件运行所需要的许可。在验证过程完成之后,应用程序即可安装,并随时可供运行。

图 13. 用 OTA 供应运行 MIDlet
 
MIDlet 部署-编程知识网

如果出现错误,将出现 图 14 所示的屏幕:

图 14. OTA 供应 —— 出错屏幕
 MIDlet 部署-编程知识网

开发者计划

最后(但并非最不重要),还有其他方法可使全世界的用户采用您的 MIDlet。几家设备制造商(例如诺基亚和摩托罗拉)和无线运营商(例如 Nextel)提供了开发者计划,可以帮助您推销自己的 MIDlet。

您可注册并使用 Motorola Developer Program 提供的可用工具,为摩托罗拉手机开发 MIDlet(请参阅 参考资料)。

参考资料

  • 参与论坛讨论
  • Java Wireless Toolkit:下载工具包。
  • 支持 J2ME 的电话:得到支持 J2ME 的电话的完整列表。
  • Motorola Developer Program:可以注册并使用 Developer Program 提供的工具,为摩托罗拉手机开发 MIDlet。
  • Motorola phones:得到摩托罗拉手机的更多信息。
  • OTA:了解无线传输的更多内容。
  • J2ME:得到可以让您掌握最新信息的文章和教程的列表。
  • developerWorks 无线技术专区:关注无线世界。
  • Motorola iDEN 主页:提供关于在这些型号的手机上部署 MIDlet 的内幕信息。
  • developerWorks Java 技术专区:关注 Java 阵营的最新事件。

http://www.j2medev.com/Article/Class1/Class11/200609/3057_3.html