账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
MIDP应用程序的开发循环
移动电话应用程序设计快速入门(二)

【作者: 黃聰明】2007年05月02日 星期三

浏览人次:【5921】

应用程序开发循环

截至目前为止,对于写一支简单的 MIDP 应用程序想必有一些概念了吧?不过对于如何的封装及部署 MIDP 应用程序则只字未提,底下我们来看看这个过程是如何完成的。利用 MIDP 来开发应用程序时开发循环过程:


编辑( edit )

利用字处理软件输入 Java 源代码,即 .java 的档案。


编译( compile )

利用 J2SE 中的编译程序 javac 将 Java 源代码,即 .java 的档案编译成类别档,即 .class 档。除了编译的功能外,compiler 尚会检查源代码里没有用到非 CLDC 或是 MIDP 以外的套装类别及相关的特性( features ),即属性与方法。


封装及部署( package & deployment )或称 Build (发展)

这个过程包括:


Byte-code verfication 字节码的验证。


为了减轻在移动电话中 JVM 的负荷,此阶段是利用 pre-virifier (先期验证器)处理类别档。


封装成 MIDlet Suite

利用 2SE 中的 JAR 工具将所有的经先期验证过的类别档( pre-verified class files )及应用程序里用到的一些资源文件封装成单一的 JAR 档。这个过程里也会创造出一支 JAD 档及 manifest 档。


测试

最后,利用仿真器来测试程序的执行情形是否达成开发的的目的,一旦测试无误之后,即可利用实际机器来测试了。


这个开发循环的流程图解如(图一)所示。


《图一 MIDP应用程序开发的流程》
《图一 MIDP应用程序开发的流程》

MIDP Suite

所有的 MIDP 应用程序的类别档都必需被封装成单一的 JAR 档,以 KToolbar 的开发情形而言,每一支的项目都会被封装成单一的 JAR 档;由于每一支项目少则一支 MIDP 应用程序,多则数个,这些多个 MIDP 应用程序的集合就是所谓的 MIDP Suite。MIDP Suite 虽然是多个 MIDP 应用程序的集合,不过其组成元素却不是只有 MIDP 应用程序的类别档而已,其构成示素如(图二)。


《图二 MIDP应用程序的构成元素》
《图二 MIDP应用程序的构成元素》

其中,除了与应用程序直接相关的MIDlet 类别档外,尚有共享的类别及一些资源,包括文本文件及图片档。这个 JAR 档未来便可以透过移动电话的所附的连接线与计算机联机用加载移动电话,或是透过网络下载至移动电话,最后成为移动电话里实际可行的应用程序。不管是在实际的移动电话里或是在仿真器里,JAR 档中的MIDlets 最后都变成一道道出现在画面菜单中可以让用户点选的选项。


由 JAR 档的构成里,除了与应用程序相关的一些档案外,尚有二项非常重要的档案:manifest 及 JAD。其中 manifest 是一支用来描述 MIDlet Suite 内容的档案,诸如 MIDlet 的名称、版本及供货商等内容,而 JAD 则是说明里面的每一个执行选项(即程序执行时的菜单选项)、JAR 档案的位置等信息。


manifest

manifest 档案的内容是由一对对的 name-value 的组合,下表是预先定义好的 name-value 对,其中并分成一定要有的 name-value 对及选择性的 name-value 对,参考(表一)。


下面是我们前面那支项目的 manifest档的内容:


MIDlet-1: FirstApplication, /Sokoban.png, HelloMIDlet


MIDlet-2: SecondMIDlets, /ManyBalls.png, FewCommandsMIDlet


MIDlet-Name: FirstApplication


MIDlet-Vendor: Sun Microsystems


MIDlet-Version: 1.0


MicroEdition-Configuration: CLDC-1.0


MicroEdition-Profile: MIDP-1.0


二相对照起来,有二点说明:


1.name-value 之间是以冒号加以分隔。


2.表中所谓的 MIDlet-n,事实上指的是一支支的 MIDlets,其中的 n 会从 1 开始编号,每新增一支 MIDlet 就会新增一列,并自动从上一个编号依序往下递增,依此类推,如果有 n 个 MIDlet,那么就会有 n 行 MIDlet-了:


MIDlet-1: ...


MIDlet-2: ...


...


MIDlet-n: ...




































































选择性 name 用途说明
MIDlet-n 用来描述在 MIDlet Suite 里一支支的MIDP 应用程


式的相关信息。


MIDlet-Name 式的相关信息。
MIDlet-Version MIDlet Suite 的名称。
MIDlet-Vendor MIDlet Suite 版本。
  MIDlet-Icon MIDlet Suite 的提供厂商。
  MIDlet-Description 表示 MIDlet Suite 的小图标,其图形格式是 .png 档。
  MIDlet-Info-URL 描述 MIDlet Suite 的相关信息。
  MIDlet-Jar-URL 描述 MIDlet Suite 相关信息的 URL。
  MIDlet-Jar-Size 让 application manager 知道要下载此 MIDlet Suite 时的 URL。
  MIDlet-Data-Size JAR 档的大小。
MicroEdition-Configuration MIDlet Suite 所需持续数据储存空间(persistent storage)的大小。
MicroEdition-Profile 执行 MIDlet Suite 所需的 Configuration 版本。


执行MIDlet Suite所需的Profile版本。


其中,MIDlet-n 的格式被分成三项:SecondMIDlets、/ManyBalls.png、 FewCommandsMIDlet。manifest 档最后必需包括在 JAR 档里面。

JAD 与Java Application Descriptor


JAD 档案内容的格式与 manifest 档相同,不过使用上的目的却是有差别的。


manifest 档用来封装( packaging ) MIDlet suite,而 JAD 则是用来部署( deployment ) MIDlet suite,特别是透过Over-The-Air 的部署程序时。在 JAR 档下载到移动电话或是仿真器时,Application Management Software 便会透过检查 JAD 档,以便确定 MIDlet suite 是否适合。


JAD 档不需要包括在 JAR 档里面。


JAD 档里一样分成有一些预先定义好的非选择性的及选择性的 name-value 对,除此之外,程序设计师还可以定义属于自己用的 name-value 对。


MIDlet-Name


MIDlet-Verson


MIDlet-Vendor


MIDlet-Jar-URL


MIDlet-Jar-Size


Microedition-Configuration


Microedition-Profile


其中,非选择性部份如下:


MIDlet-Description


MIDlet-Icon


MIDlet-Info-URL


MIDlet-Data-Size


选择性部份:


MIDlet-1: FirstApplication, /Sokoban.png, HelloMIDlet


MIDlet-2: SecondMIDlets, /ManyBalls.png, FewCommandsMIDlet


MIDlet-Jar-Size: 17789


MIDlet-Jar-URL: FirstApplication.jar


MIDlet-Name: FirstApplication


MIDlet-Vendor:Sun Microsystems


MIDlet-Version: 1.0


其中七项非选择性的 name-value 对,就是会被 Application Management Software 检查的项目。以下是 JAD 档的内容:

范例的 manifest、JAR 与 JAD 档案


既然每一支 MIDP 应用程序都要有二个 JAR 与 JAD 档,可是这支程序从头到尾,压根儿都没有碰到这二个档案,既是如此,为什么这一支 MIDP 应用程序可以执行呢?事实上,在 J2ME Wireless Toolkitt 尚未出现前,开发 MIDP 应用程序都是利用命令窗口下达命令的方式来完成,此时每一步骤都需要自己来做,MIDP 应用程序的 JAR 与 JAD 档也是如此,不过我们目前是透过 J2ME Wireless Toolkitt 的 KToolbar 来完成时,这二个档已经都由工具产生完成了!


当你在 Step3. 按下时,manifest/JAD 就已经被产生了!这个档案被自动储存在项目的 bin 目录底下。


当你按下 Build 时,应该会有窗口出现,JAR/JAD 档就是在此阶段结束后自动产生的。


由此可知,所有的必要档案都透过KToolbar 按键后产生,如果程序设计师需要修改这些 name-value 对时,可透过KToolbar 的设定窗口来设定。

在程序里取用 MIDlet suite 的内容


程序设计师想要在程序里取用 MIDlet suite 中的 manifest、JAD 档及用户使用的资源文件时,有二个方法可供使用:


一是javax.microedition.midlet.MIDlet.getAppProperty();二是java.lang.Class.getResourceAsStream ()。


底下我们来看一个例子。这个例子使用的是,事先己定义好的 name-value 对,如果程序设师想要使用自定义的 name-value 对时,应如何处理呢?下面是一个简单的示范,不过其中用到了 Screen 为基础的用户接口的对象,各位如果还不能了解,可以在读完相关章节后再翻回来过一遍。


Step1.准备一张图片档放在项目底下的 res 目录,本例储存在该目录里的图档名称是 eclc_back.png。


Step2.点选,出现窗口。


Step3.点选 Optional 卷标。


Step4.点选后出现新增 name 的设定窗口。


Step5.输入 ImageLocation 后按。


Step6.点选 ImageLocation 右边的位置。


Step7.输入图片的位置及名称。


Step8.按后离开。


《图四 MIDlet suite的程序代码》
《图四 MIDlet suite的程序代码》

MIDlet suite的程序代码

结论与展望


本文在此将告一段落,希望在这二期的说明中,能够带给各位读者朋友们一些关于利用 Java 完成行动通讯程序设计一些入门的观念。


但这只是个起点而非结束。根据 IDC数据显示,到了公元 2005 年,全球的移动电话将超过 14 亿支;而 Gartner Group 的研究也预估,到了公元 2003 年,全球电子商务将有 40% 会透过行动商务来完成。随着移动电话将深入每个人的生活,让具有「无线通信、随身携带」特性的移动电话,伴随因特网的发展,使得行动商务( Mobile e-Commerce )前景无限。行动商务系指消费者藉由电信网络并透过手持式无线通信装置,像是移动电话、个人数字助理等,来进行有形货物或无形劳务的买卖、交换等各项具有货币价值的交易。


藉由撰写移动电话应用程序,让移动电话用户能够透过移动电话的无线通信功能来查询银行帐户余额、汇款、机票等各类票务预约、找停车位、下载音乐,乃至于在线游戏等,都能够为移动电话的用户提供一个极其多样化的服务内容,目前最成功的例子就是邻近日本 NTT DoCoMo 的 i-mode 服务,最近中华电信推出的「全行动生活的 emome」也是一个重视移动电话应用的另一实例。


i-mode 的基本策略就是选择业界标准的 Java 来作为程序语言。DoCoMo 与 Sun双方在 1999 年 3 月 14 日宣布携手合作,并于距离宣布合作后的三个月内,也就是同年的 6 月举行的 Java One'99 会议中,公开试制机种,并针对与会的开发人员执行一些简易程序的 demo。DoCoMo 并 且已于今( 2001 )年的 1 月推出 Java移动电话和 Java 移动电话服务。


除了 DoCoMo 的 Java 移动电话和Java 移动电话服务外,美国 Nextel Communication 也推出以 Java 2 Platform, Micro Edition ( J2ME )的 Mobile Information Device Profile ( MIDP )规格为基础的 Motorola i85s 与 i50sx 移动电话。而国内也已于今( 2001 )年 9 月推出了「太极」二代 A6288 中文双频 GPRS 手机,


这是全球首支结合 GPRS 与 J2ME 跨平台技术的多功能中文 PDA 移动电话,让用户可直接利用 GPRS 上网,下载以 J2ME 为基础的各式应用服务,如实时股市、高画质游戏、日程表工具、收支表等,丰富的动态多媒体特性,充份满足移动电话用户随时扩充移动电话的机能,及无线下载的乐趣,使移动电话用户不再局限于出厂时的原始功能,而可依个人需求来配置具个人化色彩的功能,宛如拥有一支「活的移动电话」。


最后以 Sun 的设计师 David Rivas 的一句话来勉励各位:"Write midlets... Write midlets right now"。其中 Midlet就是利用 J2ME 的 MIDP 规格所实作出来的应用程序( MIDP application ),这也是本文所要谈论的主题。






 


相关文章
行动装置的3D天堂
行动装置的3D天堂
建置MIDP的应用程序
comments powered by Disqus
相关讨论
  相关新闻
» 台达推出5G ORAN小型基地台 实现智慧工厂整合AI应用
» 工研院携手欧洲6G-SANDBOX 助产学研抢进欧盟研发平台
» 经部领军台厂重回MWC 秀5G电信与系统商最隹夥伴实力
» 经济部支持跨国研发有成 台欧双方分享B5G~6G规划
» 宏正锁定新常态4大产业发展 偕兆勤合推AV over IP解决方案


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK8567M20U4STACUKN
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw