技术中心

这里象征着我们的态度和能力

>J2ME技术概述
发布者:中国IT实验室    信息来源:中国IT实验室    发布时间:2012-01-01      浏览次数:6648
分享到:

新浪微博

腾讯微博

QQ空间

豆瓣网

QQ好友

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  什么是 J2ME

  学习J2ME 以前知道什么是J2ME 是非常重要的。J2ME 是SUN 公司针对嵌入式、消费类 电子产品推出的开发平台,与J2SE 和J2EE 共同组成Java 技术的三个重要的分支。J2ME 实际 上是一系列规范的集合,由JCP 组织制定相关的Java Specification Request(JSR)并发布,各 个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK 测试,这样确保兼容性。比 如MIDP2.0 规范就是在JSR118 中制定的。可能接触过J2ME 的开发者会觉得说J2ME 是一系列 的规范不准确吧。因为我们在开发中用到了很多例如CLDC(Connected Limited Devices Configuration)和MIDP(Mobile Information Devices Profile)等内容。

  J2ME平台体系结构

  J2ME 平台是由配置(Configuration)和简表(Profile)构成的。配置是提供给最大范围设 备使用的最小类库集合,在配置中同时包含Java 虚拟机。简表是针对一系列设备提供的开发包 集合。在J2ME 中还有一个重要的概念是可选包(Optional Package),它是针对特定设备提供的 类库,比如某些设备是支持蓝牙的,针对此功能J2ME 中制定了JSR82(Bluetooth API)提供了 对蓝牙的支持。 目前,J2ME 中有两个最主要的配置,分别是Connected Limited Devices Configuration (CLDC)和Connected Devices Configuration(CDC)。他们是根据设备的硬件性能进行区分的, 例如处理器、内存容量等。由于这个标准是在2001 年的时候指定的,而现在移动终端的处理能 力和内存容量发展很快,如果还按照这个标准来评判可能就不准确了。因此我们只是列出标准, 供读者参考。本教程将主要讲解基于 CLDC 的J2ME 平台的相关内容。随着技术和硬件设备的 不断发展,J2ME 开发网将逐步推出基于CDC 的J2ME 平台介绍。

  CDC 的硬件参数:

  2M 以上内存。

  具有网络连接能力,通常为无线网络。

  需要实现 java 虚拟机规范的全部功能。

  32位或者64位处理器。

  CLDC的硬件参数:

  512KB以下内存

  有效能源供应(通常使用电池)

  有限或非持续网络连接

  简单的用户界面

  16位或32位的处理器

  从上述的标准中我们不难看出CLDC主要针对那些资源非常受限制的设备比如手机、PDA、双工寻呼机等。而 CDC 主要面对那些家电产品,比如机顶盒、汽车导航系统等。简表是以配置为基础的,例如Mobile Information Devices Profile (MIDP) 就是CLDC上层的重要简表。与配置的纵向特性不同的是,简表是横向的。下图是 J2ME 体系结构的框图:

   

  MIDlet应用程序的生命周期

  理解 J2ME 的体系结构并不像想象的那么容易,我们觉得读更多的资料帮助也不大,我们 直接迈向J2ME 开发也许会对你理解J2ME 平台体系结构这个重要的概念有所帮助。在MIDP 中定义了一种新的应用程序模型MIDlet,它是被Application Management Software(AMS)管理 的。AMS 负责MIDlet 的安装、下载、运行和删除等操作。在被AMS 管理的同时,MIDlet 可 以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed() 和notifyPaused()实现的

  MIDlet 有三个状态,分别是pause、active 和destroyed。在启动一个MIDlet 的时候,应用 管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候 MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(booleanun conditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的 是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通 知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了 数据。如果unconditional 为false 的时候, MIDlet 可以在接到通知后抛出 MIDletStateChangeException 而保持在当前状态,如果设置为true 的话,则必须立即进入destroyed 状态。下图说明了MIDlet 状态改变情况:

   

  第一个 J2ME应用程序: view plaincopy to clipboardprint?

  <span style="font-size: 12pt;"> /*

  * To change this template, choose Tools | Templates

  * and open the template in the editor.

  */

  package Hello;

  import javax.microedition.lcdui.Command;

  import javax.microedition.lcdui.Display;

  import javax.microedition.lcdui.Form;

  import javax.microedition.lcdui.TextBox;

  import javax.microedition.midlet.*;

  /**

  * @author pengjw

  */

  public class HelloWorld extends MIDlet {

  private TextBox textbox;

  private Form form = new Form("");

  private Command cmd1 = new Command("",Command.SCREEN,1);

  public HelloWorld(){

  super();

  textbox = new TextBox("测试程序","Hello World!",20,0);

  Display dis = Display.getDisplay(this);

  dis.setCurrent(form);

  form.addCommand(cmd1);

  }

  public void startApp() throws MIDletStateChangeException{

  Display.getDisplay(this).setCurrent(textbox);

  }

  public void pauseApp() {

  }

  public void destroyApp(boolean unconditional) {

  }

  }

  </span>

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730