深入理解CLDC和MIDP

深入理解CLDC和MIDP

作者:陈跃峰

Email:cqucyf@gmail.com

版权所有,未经允许严禁转载!

 

       在J2ME编程中,接触最多的两个基础概念就是CLDC和MIDP了,但是即使学习了J2ME很长时间的人,对于这两个概念的理解还是很模糊,这里就说一下我对于这两个概念的理解。

       首先先了对于J2ME进行一个简单的回顾,J2ME是一种使用Java语言进行嵌入式设备编程的技术,但是嵌入式设备的种类过于繁多,至少有几百种之多,为了降低编程的复杂度,SUN公司将所有的嵌入式设备分为了两大类:

l         CDC(连接设备配置)

n         有稳定的电源供应

n         设备性能强劲

例如车载设备、机顶盒等。

l         CLDC(连接有限设备配置)

n         使用电池供电

n         设备性能有限

其中手机属于CLDC类别。

       上面的说法都是从硬件划分的角度来说明CLDC的,下面从程序员的角度来理解一下CLDC的概念。其实对于程序员来说,CLDC主要包含三个部分:

l         Java虚拟机(又称KVM)

这个是所有Java程序运行的基础。对于手机来说,在手机出厂以前,已经固化在手机中了,出厂了以后就不能进行修改了。

l         一套标准的API实现

该标准的API主要包含java.io、java.lang、java.util包以及javax.microedition.io包中的部分。这个是规范要求必须实现的API,也固化在手机中,不能修改。

l         本地方法实现

在标准的API中,很多都是接口,这些就要求厂商在手机中提供真实的实现,而且很多本地方法也要求手机厂商进行实现。

       只有手机在低层实现了这些API,我们才可以很方便的在J2ME程序代码中进行调用,而CLDC1.0和CLDC1.1要求的实现不同,这个就要求在编程的过程中特别需要注意,不要在只支持CLDC1.0的手机程序中调用CLDC1.1的API。

       对于CLDC API还可以这样理解,CLDC其实就是对于J2SE的精简实现,只实现了其中最基础的功能。所以CLDC API和J2SE中的API比较类似。

       但是在实际的手机中,只支持CLDC这样的基础API还是远远无法满足实际的手机编程的需要的,所以在CLDC API的基础之上,SUN公司又提供了专门针对手机功能的API——MIDP(移动信息设备简表) API。

       如果说CLDC API是一类嵌入式设备必须支持的基础API的话,那么MIDP就是为了使手机编程更加通用,而要求手机厂商在实现的时候必须支持的一套基础API。该组API的包名均以javax.microedition开头。

       在MIDP第一个版本,也就是MIDP1.0实现中,要求必须支持如下几个包:

n         javax.microedition.midlet——MIDlet类包

n         javax.microedition.lcdui——界面类包

n         javax.microedition.rms——持久存储类包

另外还有javax.microedition.io包中的一部分类。

       在MIDP第二个版本,也就是MIDP2.0实现中,除了兼容MIDP1.0的实现以外,不仅扩充了很多已有类的功能,还增加了几个包:

n         javax.microedition.lcdui.game——Game API,MIDP2.0游戏变成扩展

n         javax.microedition.media——多媒体类包

n         javax.microedition.media.control——多媒体控制类包

n         javax.microedition.pki——数字签名类包

正因为有了CLDC和MIDP,我们在进行手机程序编程时,才只需要去查阅手机支持的CLDC和MIDP的版本分别是多少,然后就可以知道都提供了那些类和接口的支持。如果没有这些实现的话,恐怕你就需要在变成以前,一个一个去查阅手机都支持那些类和接口了,所以说CLDC API和MDIP API在很大程度上实现了手机对于API的通用支持。

但是随着手机功能的增强,手机厂商发现仅仅支持CLDC和MIDP还是不够的,所以SUN公司为了满足手机厂商的这种要求,又推出了很多套API,因为这些API不要求手机厂商必须支持,所以叫做可选包(Option Package)。例如常见的可选包有:

l         MMA(Mobile Media API)——移动媒体API,实现对于多媒体编程更深入的支持

l         WMA(Wireless Message API)——无线信息API,实现对于短信息编程的支持

l         Location API——定位API,实现对于位置服务的支持

l         M3G(Mobile 3D Graphics)——移动3D图形API,实现对于手机3D编程的支持

当然,还有很多其他的实现,这里就不再累述了。

最后,由于可选包越来越多,而且支持可选包的手机越来越多,SUN公司想统一手机对于CLDC、MIDP和一部分可选包的支持,所以又推出了JTWI(Java Technology for the Wireless Industry)来规范手机对于各种API的支持。

深入探索JavaME应用程序开发:源代码实战指南 本文还有配套的精品资源,点击获取 简介:JavaME,即Java Micro Edition,是专为嵌入式与移动设备设计的Java技术分支。它允许开发者利用一系列API和平台创建跨平台兼容的应用程序。本文介绍了JavaME的核心组件和关键技术点,包括KVM、CLDC、MIDP、MIDlets、UI设计、网络编程、资源管理、打包签名、设备适配和调试测试等,旨在通过剖析源代码,... 阅读详情

相关推荐

自己写的测试手机CLDC版本和MIDP版本

自己写的测试手机CLDC版本和MIDP版本,只有几行代码,但对于PPC手机来说还是有点用处。在多普达818上测试过,可以运行,使用移动的百宝箱虚拟机。

在J2ME/MIDP中实现图像旋转(一)

J2ME是标准版java(J2SE)面向手机、PDA等各类移动和嵌入式设备的缩减版本,是一种获得众多厂商的支持和广泛使用的移动设备开发平台。图一展示了J2ME技术的体系结构。它分为三层:虚拟机层,配置层,和简表层。   配置层(Configuration)通过对功能的描述,把千差万别的嵌入式设备进行了功能的说明和分类。它把运算功能有限、内存较小、电力有限的设备,定义在CLDC(有限连接设备配置)规

particle_1979的专栏 937

从零搭建PIC MCU开发环境:MPLAB IDE与HI-TECH编译器安装破解全攻略

本文详细介绍了从零搭建PIC MCU开发环境的完整流程,包括MPLAB IDE 8.85的安装配置、HI-TECH C编译器的安装与破解,以及PICkit3编程器的使用技巧。通过清晰的步骤说明和常见问题解决方案,帮助开发者快速搭建稳定的PIC单片机开发环境,适用于PIC16/18系列MCU开发。

weixin_29188997的博客 294

kvm文档翻译-第二章

说明 翻译KVM的文档,只是为了个人学习以做记录.如果有翻译不周到的地方,请指出,我会修正的. 为何翻译该文档 此KVM不是目前特别火的Kernel-based Virtual Machine(一个开源的系统虚拟化模块).而是一个JAVA 的虚拟机.是J2ME cldc 的一个实现.其源码的难度比hotspot简单多了.因此,想通过研读KVM,以加深对hotspot的理解 KVM简介 KVM KV...

qq_26000415的博客 5742

Windows下OpenMBEE项目MMS部署失败经历及改正

在Github里找到了上面的第一份文档,下载了MMS源代码(不知道为什么这个代码跟上面操作克隆得到的MMS代码不一样?好像是因为Gradle的版本问题,我本地之前已经安装过7.6.4的Gradle了,于是我找到gradle-wrapper.properties文件。后面在VScode中运行了一下依然是报这个错误,我在VScode终端直接执行。不知道为什么依然没什么用。打开“Windows PowerShell”。(如果是第一次运行它,将看到更长的输出)导航到要克隆存储库的文件夹,例如,

Yo_lan_da的博客 1869

别再写前端了!用Gradio 3.x + HuggingFace Spaces,5分钟把你的Python算法变成网页应用

本文介绍如何利用Gradio 3.x和HuggingFace Spaces快速将Python算法转化为网页应用,无需前端开发经验。通过5行代码和简单的Git命令,即可实现专业级Web界面部署,大幅提升算法展示效率。特别适合算法工程师和数据科学家快速分享模型成果。

weixin_33443333的博客 332

NetBeans 6.0 CLDC/MIDP 开发快速入门指南

<br />(源自:http://www.netbeans.org/kb/60/mobility/quickstart_zh_CN.html)<br />  NetBeans 6.0 CLDC/MIDP 开发快速入门指南<br />本文档介绍使用 NetBeans IDE 6.0 创建 Java™ Platform、Micro Edition(Java™ ME 平台)、Mobile Information Device Profile (MIDP) 应用程序的基础知识。本文档旨在于帮助您尽快入门。 <br

有家客栈 君子不器 542

易灵思FPGA-软件Efinity和Modelsim联仿设置

文章目录前言一、modelsim破解过程二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智

qq_35221855的博客 5368

深入了解Java中的嵌入式开发

深入了解Java中的嵌入式开发

一起coding,一起嗨。 2973

【数学模型】灰色关联分析

数学模型-灰色关联分析

suic009的博客 1万+

RK3588工业开发板实战:如何用IgH EtherCAT主站精准控制伺服电机(附完整代码)

本文详细介绍了如何利用RK3588工业开发板和IgH EtherCAT主站实现伺服电机的精准控制。从硬件选型、实时内核配置到EtherCAT主站安装和核心代码实现,提供了一套完整的工业自动化解决方案,特别适合需要高精度运动控制的场景。

pca5navigator的博客 972

J2ME(CLDC/MIDP)简介

名词梳理  在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照:    J2ME(Java2 Platform, Micro Edition) Java2平台微型版    CLDC(Connected, Limited Device Configuration) 连接受限设备配置    CDC(Connected Device Configuration)连接设备配置    MID

sunrock的专栏 2966

宇树G1开发实践--PPT汇报(遥控版)

本文介绍了一种基于遥控器交互的机器人演示控制系统。系统通过DDS中间件接收遥控器信号,采用位掩码边沿检测技术实现按键精准响应,将不同按键映射为播放控制命令(暂停/重播、跳转、跳过等)。核心交互逻辑包含主播放循环、命令处理和暂停机制,支持播放过程中的实时控制。与自动顺序播放版相比,该系统显著提升了演示灵活性,适用于需要人机互动的演讲场景。使用前需确保网络连接和设备安全,并熟悉按键功能映射。该系统实现了专业级的人机协同演示体验。

m0_47999117的博客 680

J2ME(CLDC/MIDP)简介(转)

名词梳理 在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照:J2ME(Java2 Platform, Micro Edition) Java2平台微型版CLDC(Connected, Limited Devic...

cuankuangzhong6373的博客 421

【定位模块项目实战】正态分布变换(NDT)定位及建图(依赖高精度点云地图和三维激光雷达的定位方案)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、正态分布变换(NDT)定位解决的主要问题二、正态分布变换(NDT)定位的核心思想三、NDT算法流程1.多元正态分布概念2.网格化并计算正态分布参数3.变换参数和最大似然四、使用C++实现NDT配准参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对依赖高精度地图和激光雷达的定位技术–正态分布变换(NDT)定位做个简单的介绍,具体

qq_35635374的博客 4412

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CLDC/MIDP的基本结构

粗略的说j2me把设备分为两类,一种是联接设备( connected device),一种是有限联接设备(Connected, Limited Device)。前一种对应于那些有电源的,电力充裕,较大的设备。例如:电视机,冰箱等,后一种对应于主要使用电池,小型的设备,例如:手机,pda等。这里我主要只涉及第二种,有限联接设备(Connected, Limited Device)。sun把J2me的...

babala_234的专栏 386

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

J2ME(cldc/midp)简介

http://www.builder.com.cn/2003/0710/91106.shtml 名词梳理 在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照: J2ME(Java2 Platform, Micro Edition) Java2平台微型版CLDC(Connected, Limited Device Configuration) 连接受限设备配置 CDC(Connec...

weixin_34353714的博客 266

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

J2ME(CLDC1.1/MIDP2.0)简介

名词梳理 在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照: J2ME(Java2 Platform, Micro Edition) Java2平台微型版CLDC(Connected, Limited Device Configuration) 连接受限设备配置 CDC(Connected Device Configurati...

weixin_33690963的博客 285

J2ME (CLDC/MIDP) 简介

[b]名词梳理[/b]   在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照:      J2ME(Java2 Platform, Micro Edition) Java2平台微型版      CLDC(Connected, Limited Device Configuration) 连接受限设备配置      CDC(Connected Device Config...

冨彗雙脩 垂裕後崑 326

Java手游编程之MIDP图形设计篇

本文通过一个简单的MIDlet手游程序示例,简要介绍了MIDlet图形编程,以期能对开发者深入理解MIDP图形编程和开发复杂的手机游戏有所帮助。   一. MIDLET图形   1、MIDlet 图形简述   移动信息设备描述(Mobile Information Device Profile ,MIDP)定义了一套应用编程接口(API),用于运行在MIDP容器中的MIDlet应用程序。这套API本身是建立在有限连接设备配置(Connected Limited Device Configuration ,C

iqifenxia的博客 602

CLDC API和MIDP API源代码下载地址(包含各个版本)

CLDC API源代码:http://www.sun.com/software/communitysource/j2me/cldc/download.xmlMIDP API源代码:http://www.sun.com/software/communitysource/j2me/midp/download.xml通过研究这些源代码,可以辅助你理解或者更好的使用这些API提供的功能。

曹浩洋的专栏 879
上一篇: 思考:关于Blog中文章的版权问题
下一篇: 深入理解Canvas类的使用(一)
java2000_test
博客等级 码龄19年 10粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值