J2ME笔记(2)--MIDP

 

MIDPMobile Information Device Profile,移动信息设备简表)位于CLDC基础之上,为开发者提供了应用程序模型、图形用户界面、数据持久性存储等功能,目前最新的版本是MIDP 2.0JSR 118)。在介绍MIDP的主要内容之前,先浏览一下移动信息设备上的软件运行环境,从中你可以了解到CLDCMIDP的关系,以及他们位于整个软件运行环境的位置,如图1-4所示。

从图1-4可以看出,整个软件环境由三部分组成:MIDP兼容的应用程序、OEM(原始设备制造商)应用程序和本地应用程序。位于图左侧的CLDCMIDPMIDP兼容的应用程序是我们关注的重点。OEM应用程序通常都使用了OEM自己提供的类,而这些类并非标准的,因此在不同OEM之间,这些应用程序不具备可移植性。如果想开发面向更多移动信息设备的应用程序,应该避免使用OEM类。本地应用程序一般由汇编语言或者C/C++语言开发,它们可以使用更为强大的接口来访问操作系统的资源和服务。

1应用程序模型MIDlet

MIDP引入了全新的应用程序模型MIDletMIDlet是应用程序的主类,被应用程序管理软件(Application Management SystemAMS)管理。多个MIDlet可以组成MIDlet套件,以Jar包的形式发布。与Jar文件一起发布的还有一个文本文件Java应用程序描述符(Java Application DescriptorJAD)。JAD文件的作用在于描述MIDlet套件的基本信息,AMS安装MIDlet套件的时候可以首先解析JAD文件的内容读取套件信息,比如,比较CLDCMIDP的版本,看套件是否和目标设备的软件运行环境兼容。下面的代码框架描述了MIDlet的基本结构。

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

public class HelloMIDlet extends MIDlet {

       

    public void startApp() {

    }

   

    public void pauseApp() {

    }

   

    public void destroyApp(boolean unconditional) {

    }

}

本书的第2章将详细地讲解MIDlet的生命周期、开发步骤及发布方式。

2图形用户界面

MIDP作为J2ME平台的第一个简表引起了业界巨大的关注。原因在于它提供了图形用户界面,使开发者为目标设备开发应用程序成为现实。MIDP没有采用J2SE平台的AWT/Swing作为移动终端设备的用户界面组件,主要原因在于AWT/Swing需要的空间远远超出了移动终端设备的承受范围,同时移动终端设备的显示方式和用户交互方式也不适合AWT/Swing,毕竟AWT/Swing是针对桌面电脑设计的,而桌面电脑是使用鼠标和标准键盘与用户交互的。

MIDP提供了一套适合移动终端设备的标准用户界面组件。它们设计非常小巧,层次清楚,大大缩短了开发MIDP应用程序的周期。MIDP的用户组件和事件处理机制有高级和低级之分,一般类似于菜单列表这样的界面通常使用高级组件的List完成,与之对应的高级事件处理机制通过CommandCommandListener完成。需要对界面的像素进行控制的时候则需要使用低级组件Canvas来制作。使用高级组件有助于提高程序的运行效率和可移植性,但是会失去对界面的控制,降低界面的表现能力。图1-5 列举了使用CustomItemList开发的MIDP应用程序界面,模拟器为WTK2.2自带的DefaultColorPhone

 

1-5  MIDP图形用户界面示例

3章将详细地介绍MIDP的图形用户界面。

3记录管理系统

记录管理系统(Record Management SystemRMS)是MIDP的一个子系统。为开发者提供了数据持久性存储的解决方案,应用程序的数据可以在MIDlet多次调用之后依然保持不变,即使重新启动设备或者更换电池也不会造成数据丢失。MIDP 2.0还允许在不同MIDlet套件之间共享记录存储数据。如果开发者想在应用程序中提供游戏最高分记录、用户自动登录等功能,那么RMS是首选的解决方案。本书的第4章将详细介绍记录管理系统。

4游戏开发包

MIDP 1.0最成功的应用领域就是游戏,但是对游戏开发的支持并不是很出色。因此MIDP 2.0引入了专门的游戏开发包javax.microedition.lcdui.game.*。游戏API针对动画增加了游戏专用的控制,采用框架实现对精灵、冲突检测、层和平铺层(tiled layers)的管理,减小了游戏开发的难度,缩短了开发周期。本书的第5章将详细介绍游戏开发。

5音频子系统

MIDP1.0并没有提供对多媒体的支持,甚至是音频功能都没有。因此,诺基亚等厂商在自己的移动电话上实现了对多媒体的支持,如Nokia UI API可以支持音频播放。这样带来的负面影响就是API的分裂,降低了应用程序的可移植性。MIDP 2.0提供了一个音频子系统,它是MMAPIMobile Media APIJSR 135)的子集。音频子系统支持单音生成和8比特WAV文件的播放,填补了MIDP对多媒体支持的空白。

6安全模型与Push注册

MIDP 2.0提出了安全模型的概念,这不同于CLDC的安全结构。应用程序访问敏感API将受到安全模型的限制,需要用户授权后才能进行下面的操作。MIDP 2.0还支持PUSH注册,因此激活MIDlet的方式不在局限于用户手动,还可以通过时钟或者入站连接自动激活MIDlet。本书的第7章将详细讲解MIDP安全模型和PUSH注册机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值