您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 3详解J2MEMIDP程序开发流程
《JAVA手机应用程序设计》1/33详解J2MEMIDP程序开发流程MIDlet手机程序运行的基本架构MIDlet手机程序开发流程MIDlet手机程序生命周期MIDP手机程序发布与安装使用混淆器(Obfuscator)WTK的相关配置仿真器的使用使用仿真器执行已开发MIDlet程序《JAVA手机应用程序设计》2/33在进入手机程序设计之前,我们需要说明一个新的名词,那就是在手机上的应用程序名称。我们都知道,在浏览器上执行的Java程序叫做Applet,在PalmOS上执行的Java程序叫做Spotlet,而在手机上执行的应用程序就称之为“MIDlet”(MobileInformationDerice-let)。如果有学习过Java程序设计的朋友,那么对MIDlet的开发就可以称的上是一个简单的差使了。因为同样都是Java的架构,而且MIDlet在类别的使用上却简单了很多。这也就是说,就算没有学过Java程序设计也不需要惊慌,只要学习少数的几个简单类别就可以写出一个MIDlet应用程序了。一、MIDlet手机程序运行的基本架构根据上一章所介绍的知识得知,想要开发手机上的应用程序就是需要架构在CLDC(ConfigurationLayer)与MIDP(ProfileLayer)之上,而WTK中就会符合且包含了JSR为CLDC与MIDP的规范与所需的API函数库。换句话说,想要学会MIDlet程序设计就必须先要深入了解它的基本架构与相关名称。1.MIDletSuit在手机上的应用程序称之为MIDlet,那么何谓MIDletSuit(套件)呢?就是多个MIDlet的集合封装,图1即为MIDlet与MIDletSuit的关系示意图。图1MIDlet与MIDletSuit的关系示意图既然MIDletSuit与MIDlet都可以在手机上执行,那么为何需要将MIDlet集合起来成为一个MIDletSuit呢?这样的想法是基于手机上的资源有限,所以尽可能地将可以共享资源的MIDlet集合起来。而为了达成这样的目标,MIDP中就规范需共享数据或资源的MIDlet必须放在同一个JAR文件中。而这些被封装在一起的MIDlet集合就称之为MIDletSuit。2.应用程序管理软件应用程序管理软件(ApplicationManagementSoftware,AMS)是一个提供有关应用程序软件安装、配置以及移除的工具软件。这样的软件在Windows操作系统中算是基本的功能,因为只要安装一个新的应用程序就会需要经过AMS的记录。由于MIDlet对手机而言也是一个应用程序,因此想要安装、加载并执行一个MIDlet也需要有一个AMS的管理器来加以管理。在MIDP中也提供了这样的管理机制称之为JavaApplicationManager(JAM),根据先前所学的知识,加入JAM之后所形成的架构如图2:《JAVA手机应用程序设计》3/33图2Java应用程序管理示意图一般而言JAM需要具有下列的功能:(1)Retrieval取得MIDlet,在这个功能中还需要有读取、识别、判断MIDlet相关描述的能力,例如:MIDlet的大小、MIDlet所需的版本等。如果手机设备的配备符合MIDlet所需,此时才会真正的下载以取得该MIDlet。(2)Install在设备上安装MIDlet,事实上当MIDlet被下载完成之后就会马上进入安装状态。此时JAM会验证(Verify)MIDlet是否违反设备的安全性策略,通过验证之后就会开始将MIDlet文件转换成设备内部的表示方式。(3)Run调用启动(Launch)MIDlet以便执行MIDlet应用程序的功能,也就是让选择的MIDlet进入KVM中运行。(4)Upgrade具备有可以自动将MIDlet升级成最新版本的能力。(5)Uninstall移除先前所安装的MIDlet。《JAVA手机应用程序设计》4/33虽然应用程序有MIDlet与MIDletSuit之分,但是对于JAM的安装、更新以及移除而言却都是一样的。因为JAM并不允许这三个动作对于MIDletSuit中的任何一个MIDlet单独运行,也就是一次一定要安装/更新/移除一个MIDletSuit的意思。3.MIDlet的组成虽然MIDlet是手机中最基本的应用程序单位,但是它是经由程序编写之后通过某些手续(请参考下一节“MIDlet手机程序开发流程”)所制造出来的文件,那么一个完整的MIDlet应该包含哪些文件呢?虽然在手机上可执行的MIDlet文件为.jar文件,但实际上它还需要配合.jad文件来支持。所以一个完整的MIDlet应用程序是由JAD(纯文本文件)与JAR(压缩格式文件)所组成。(1)JAR该文件(为.jar的文件)封装了MIDletSuit应用程序主体,可以包含MIDletSuit中的每一个MIDletClasses与Resources、CommonClasses、CommonResources以及MANIFEST.MF。(2)JAD该文件(为.jad的文件)就是所谓的应用程序描述文件(MIDPJavaApplicationDescriptor),它可以在真正下载JAR文件之前提供一些信息给JAM来说明JAR的重要属性。如此一来,JAM就可以判断这个JAR是否适合安装在该设备上了。这样的好处是可以节省许多下载的时间(事实上是金钱,因为GPRS的服务大都是计算封包下载流量),不必等到下载之后进行安装时才发现该MIDlet根本不能安装在手机上。另外一个使用JAD文件的理由就是MIDlet程序参数的提供,例如:将MIDlet的程序设计灵活化,在启动时可以读取JAD文件中的一些数据,那么有时候就可以通过JAD文件的修改或更新,来调整JAR文件的运行,而不必进行下载新的JAR文件。这个文件是单纯的文本文件,所以可以使用任何编辑器来开启,例如下列描述文件的内容:MIDlet-1:MyProj3-1,MyProj3-1.png,HelloWorldMIDlet-Jar-Size:1011MIDlet-Jar-URL:MyProj3-1.jarMIDlet-Name:MyProj3-1MIDlet-Vendor:UnknownMIDlet-Version:1.0MicroEdition-Configuration:CLDC-1.1MicroEdition-Profile:MIDP-2.1《JAVA手机应用程序设计》5/33(3)MANIFEST.MF该文件为MIDlet应用程序的属性列表文件,有一些属性的描述会与JAD相同,主要是用来比较封装在JAR文件中的属性与事先查看的JAD内容是否相符。如果被JAM比对出不相符,那么JAM将会拒绝MIDlet程序的安装。在程序编写的过程中,MANIFEST.MF会独立存在并且以文本格式储存,例如下列就是一个MANIFEST.MF文件的内容(这6项属性信息都必须存在JAD文件中):MIDlet-1:MyProj3-1,MyProj3-1.png,HelloWorldMIDlet-Name:MyProj3-1MIDlet-Vendor:UnknownMIDlet-Version:1.0MicroEdition-Configuration:CLDC-1.1MicroEdition-Profile:MIDP-2.1在属性的描述文件中,属性的顺序并不会影响描述的结果,也就是无顺序性的关系。而以MIDlet-开头的属性是MIDP规范用来定义特定MIDlet所专用的关键词,这是因为在MIDletSuit中可以允许开发厂商自行定义属性,但是自定义的新属性绝不能使用MIDlet-来当开头。表1说明MIDlet的属性与其代表意义。表1属性名称说明MIDlet-n其中的n用来标示MIDletSuit中的每一个MIDlet,该值从1开始并以流水号编码,例如:MIDlet-1、MIDlet-2„„。这个属性中包含了3段信息,分别为MIDlet名称、所含的图标以及MIDlet的类别名称MIDlet-NameMIDletSuit的名称,如果只有单独一个MIDlet,那么它会与MIDlet-1中的MIDlet名称相同MIDlet-VendorMIDletSuit的开发或提供的厂商名称MIDlet-Version标示MIDletSuit的版次序号,JAM就是通过这个信息来更新套件,通常以xx.yy.zz或是xx(主要版次).yy(次要版次)来表示MicroEdition-Configuration要求的Configuration规范,目前可以是CLDC-1.0或是CLDC-1.1MicroEdition-Profile要求的Profile规范,目前可以是MIDP-1.0、MIDP-2.0MIDlet-Icon让JAM将该图标文件(.png)与MIDlet做关联,亦即在MIDlet上可以显示该图文件MIDlet-Jar-URL下载MIDletSuit的地址,由于MIDletSuit可以通过OTA方式发布,因此可以在JAD的描述文件中标明下载的地址MIDlet-Jar-Size标明MIDletSuit的JAR文件大小MIDlet-DescriptionMIDlet应用程序的详细说明MIDlet-Data-Size确认MIDlet所需的数据空间,例如设置为24kb,那么当程序运行时即可确保取得24kb的空间。但是规划的太大则有可能被拒绝安装MIDlet-Delete-Confirm用户移除MIDlet时要显示确认信息MIDlet-Delete-Notify用户移除MIDlet要发出通知(需设置一个通知的URL)《JAVA手机应用程序设计》6/33MIDlet-Info-URL查看MIDlet详细说明的联机地址MIDlet-Install-Notify用户安装MIDlet要发出通知(需设置一个通知的URL)二、MIDlet手机程序开发流程凡是想要开发应用程序都会有一个建议的流程,对于一般手机应用程序使用WTK的建立步骤建议为:建立项目、编辑原始码、封装、执行测试以及安装测试。当然,与开发一般PC的应用程序相同,在动手设计之前需要做的软件工程(SoftwareEngineering,包含软件开发技术和软件项目管理)事项也不能缺少。毕竟在软件开发的流程中,程序写作(Coding)与测试(Testing)只是其中的一部分而已,如果不做需求分析(RequirementsAnalysis)、系统分析(SystemAnalysis,SA),怎能做出符合用户需求的应用软件呢?本节名为介绍MIDlet手机程序开发流程,但实际上就是开发第一个手机程序。1.建立项目在WirelessToolkitforCLDC中会将要开发的MIDlet应用程序所需的文件有条理的组织成一个个项目,而一个项目最后的成果就是一个MIDletSuit。项目包含即将用来生成MIDlet软件包的所有文件,包括Java原始码文件、资源文件以及MIDlet描述文件(.jad文件)。WTK一次只能处理一个项目,但是可以允许建立新项目、或开启现有项目。以新建项目为例,请在开启WTK2.5.2之后按下画面中的“新建项目”按钮,此时就会出现一个输入项目名称与类别的对话框(如图3):图3在WTK中建立新项目的画面图3中的“项目名字”指的就是您想要建立这个项目的名称,而“MIDlet类名”则是您的程序类别名称,该名称信息会编写进JAD与MANIFEST.MF中。在J2ME之中,每一个可执行的程序,都可视为一个MIDlet。在输入完名称后请按“产生项目”按钮,此时屏幕上会出现项目的设置画面(如图4)。《JAVA手机应用程序设计》7/33图4项目的设置画面图4的画面也是在WTK中按下“设置”按钮所会出现的画面,在此处的API选择即为选择目标平台上适合使用的API组件。除了各个平台被需使用的API之外,也可以再自行勾选需要的API来使用。在确定好目标平台之后,最后请按下“确定”按钮即可完成项目的建立,建立后的画面如图5
本文标题:3详解J2MEMIDP程序开发流程
链接地址:https://www.777doc.com/doc-633189 .html