J2me的基本概念

J2ME自学教程:从入门到实战 本文还有配套的精品资源,点击获取 简介:J2ME(Java Micro Edition)是Java平台用于嵌入式和移动设备开发的重要组成部分。本教程涵盖了J2ME开发的各个方面,从基础概念到高级编程技巧。通过循序渐进的章节,初学者将掌握J2ME的环境搭建、MIDlet开发、用户界面设计,以及设备特性的理解和利用。本教程旨在帮助学生从零开始构建自己的J2ME应用程序,为移动世... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 本文主要介绍J2me的基本概念。因为注意到国内的java站点介绍J2me的还比较少,所以就写了本文。如果有什么不妥的地方,欢迎您email我,讨论商榷。 如您要转贴,请保留原出处,并勿做删改。谢谢。 1.名词 这里我列出一些常见的关键词,方便与下文参照.具体解释见后文. J2ME(Java2 Platform, Micro Edition) CLDC(Connected, Limited Device Configuration) MIDP(Mobile Information Device Profile) KVM(The K Virtual Machine) 2.背景 随着无线应用与嵌入式系统的愈来愈受到人们的重视,SUN也推出了J2ME来迎合这一趋势.(实际上道也不能算是新推出,熟悉Java历史的人都知道,java原先本是为了开发消费性电子产品而研制的.谁知,无心插柳柳成荫,因在网络应用上的出色表现而流行,以致现在的J2EE、EJB等等,发展地越来越庞大。这次实质是杀了个回马枪。至于表现如何,还得拭目以待)sun认为,未来的信息设备将比我们今天的更为customizable 和 personal。这一点我们已经可以从手机和pda的流行程度看出。所以为了开发面向这些设备的applications。sun推出了J2ME(Java2 Platform, Micro Edition)。 3.j2me的基本结构 j2me把设备分为两类,一种是联接设备( connected device),一种是有限联接设备(Connected, Limited Device)。前一种对应于那些有电源的,电力充裕,较大的设备。例如:电视机,冰箱等,后一种对应于主要使用电池,小型的设备,例如:手机,pda等。这里我只涉及第二种,有限联接设备(Connected, Limited Device)。 3.j2me的基本结构 sun把J2me分为两个部分:configuration 和 profile。 configuration包括虚拟机(virtual machine),核心的类库与API。configuration层定义一个java虚拟机的特性与java类库的最小子集。也就是说,configuration层提供了开发人员一个最基础,最核心的Java平台。就像我前文提到的,j2me把设备分为两类,一种是联接 设备(connected device),一种是有限联接设备(Connected, Limited Device)。对应这两种设备就有了两种J2ME configuration。分别为CDC(Connected Device Con-figuration )和CLDC(Connected, Limited Device Configuration)。这里请注意,CDC使用经典的javaVM,而CLDC使用的是KVM(The K Virtual Machine)。 注:kvm是sun为使用16/32位RISC/CISC微处理器或控制器,并其可用内存为160kb~512kb 的的设备而开发的。 Profile层也包含一组API,主要针对于特定的某一族系的设备而定义。profile层在特定的configuration层上实现,而我们程序员则负责在特定的profile上编写应用程序。对于手机,pda等Connected, Limited Device。它们的profile层称为MIDP(Mobile InformationDevice Profile)。于是MIDP与CLDC合在一起就构成了一个完整的J2ME架构。 顺便说一句,对于MIDP上的应用程序sun也有独特的叫法,它们被称为MIDlet。你是不是觉得有点眼熟。想想java中的applet。 ┌───────┐┄┄┄┄┄┄┄ │MIDlet │ 应用程序 ├───────┤┈┈┈┈┈┈┈ │ MIDP │ proflie层 ├───────┤┄┄┄┄┄┄┄ │J2ME核心API │ configuration层 ├───────┤ CLDC │ KVM │ ├───────┤┈┄┄┄┄┄┄ │特定的硬件 │ └───────┘ 图1 J2ME的CLDC&MIDP架构 4。深入理解CLDC 本节的部分内容译自J2ME White Paper,比较枯燥,但请记住,毕竟,正确的观念重于一切。 CLDC的目的 ·为小型的,且资源有限,Connected Limited的设备定义一个标准的Java平台。 ·允许动态的向这些设备发布内容与应用程序。 ·方便第三方软件厂商与开发者向这些设备移植内容与应用程序。 CLDC的范围 ·Java语言与虚拟机的特性 ·核心Java类库(如java.lang.*, java.util.*) ·输入/输出 ·对网络的支持 ·对安全性的支持 ·对国际化的支持 CLDC不包括的范围(即由MIDP解决的) ·对应用程序life-cycle的管理(就是指一个应用程序是如何安装,运行,删除的) ·UI界面(User Interface) ·Event处理 ·高级应用程序模式(这里指用户与应用程序的交互)。 CLDC的安全性 低端的基于虚拟机的安全性由下载时对class文件的审核(verification)步骤来保证。(如果你写过并编译过MIDlet程序,就会知道这一步是必须的。这里有一个概念就行了,我会在以后讲述如何创建MIDlet程序时,详细介绍具体的步骤)。 基于应用程序的安全性通过使每个应用程序分别运行在相对独立的封闭环境中来保证并且处于被保护的系统package中的类不能被应用程序重载(overridded)。 对于Java语言支持的特殊的方面 CLDC总的来说是与Java语言完全兼容的,但需注意以下几点: 不支持浮点数据类型(即没有float和double)(这实际上主要是由于CLDC所面向的设备,其硬件因其内存限制或是基于安全性的考虑不支持浮点运算) 不支持类实例(class instance)的终结(finalization),即不存Object.finalize ()方法。(注:finalization指的是java中提供的有别与garbage collection的另外的一种对象清理方法。具体可参看侯捷老师译的Bruce Eckel的《Thinking in Java 第二版》,可以在www.jjhou.com中下载) 有限的错误处理,即大部分Java.lang.Error的子类都未被支持。与此相反,CLDC包括了相当完备的异常(exception)类。 对于Java虚拟机(Java Virtual Machine)支持的特殊的方面 实质上CLDC在其严格的内存限制下达到了对Java虚拟机相当程度的兼容性。不过还是有下列不同点。 ·不支持浮点数据类型(没有float和double) ·不支持JNI (the Java Native Interface ) ·不支持用户自定义的Java级的类载入器(class loaders ) ·没有反射(reflection)特性(注:reflection指java通过java.lang.reflect提供的,可以对类的能力进行分析的功能。常用来对类的结构进行检查,在JavaBeans上有广泛运用可参见Gary Cornell的Core Java2 volumeI,II,机工有出中译本) ·不支持线程组(thread groups)或守护线程(daemon threads) ·不支持类实例(class instance)的终结(finalization) ·没有弱参考(weak references)(注:weak reference提供了一种解决指向已经被garbage collector清除的对象的方法。在Java2中被介绍。具体请参考java.lang.ref API文档,和sun网站上关于Reference Objects和Garbage Collection的文章。) ·有限的错误处理(error handling) 4。深入理解CLDC (part II) 本节的部分内容译自J2ME White Paper,比较枯燥,但请记住,毕竟,正确的观念重于一切。 类文件审核过程(classfiles Verification) CLDC要求其下层的虚拟机能够辨别并拒绝非法的class文件。但由于CLDC本身面向小内存消耗的小型设备这一前提。其类文件检测机制与J2SE中定义的标准类文件审核机制还有所不同。请注意看下图: MyApp.java │ ↓ ┌───┐ │Javac │┄编译器 └───┘ ↓ MyApp.class ↓ ┌──────┐ │preverifier │┈预审核器 └──────┘ ↓ MyApp.class │ ↓download... ┌────────┒ │ ┠┄┄KVM运行环境 │┌──────┐┃ (目标设备) ││ verifier │┃ │└──────┘┃ │ ┃ │┌──────┐┃ ││ │┃ ││interpreter │┃ ││ │┃ │└──────┘┃ ┕━━━━━━━━┛ 图2 CLDC/KVM中类文件的审核过程 请注意CLDC中的预审核(preverification)过程。这是CLDC区别于通常的类文件审核过程的关键。如上图所示,当源程序被编译后,必须被预审核器预审核,然后才能被下载到目标设备上去。之所以有这一步骤,主要是为了减轻KVM中审核器的负担,加快审核速度。就像我前文提到的,这是出于对CLDC支持的硬件的考虑(毕竟手机和PDA并没有我们PC机那样奔腾的“芯”呀!^-^)。这里记住这个概念就行了。具体的操作方法我会在以后讲述编写MIDlet程序时介绍。 类文件格式 sun要求通过Jar(compressed Java Archive)给Java应用程序打包,这里也不例外。所以如果你想把你的MIDlet程序下载到设备上运行,你就得先用jar打包。具体的操作方法我会在以后讲述编写MIDlet程序时介绍。 CLDC的类库 如果不严格的说,CLDC的类库是J2SE的一个小的子集,有以下这种近似关系成立,即J2SE包含CDC包含CLDC。但要注意CLDC并未完全包含于J2SE,它还包括一 些专门针对无线设施的类。所以可以把CLDC的类库简要划分为两部分:从J2SE继承的类和CLDC专有的类。 (1)从J2SE继承的类 这部分包括三个package,即java.lang,java.util和java.io。注意即使这些从J2SE继承的的类,也是大大“缩了水”的。例如java.util的类与接口由J2SE的47个缩减到10个。另外两个也有相应缩减。 系统类 From java.lang: Object, Class, Runtime, System, Thread, Runnable, String, StringBuffer, Throwable 数据类型类 From java.lang: Boolean, Byte, Short, Integer, Long, Character 容器类(container class) From java.util: Vector, Stack, Hashtable, Enumeration I/O 类 From java.io: InputStream, OutputStream, ByteArrayInputStream, ByteArrayOutputStream, DataInput, DataOutput, DataInputStream, DataOutputStream, Reader, Writer, InputStreamReader, OutputStreamWriter, PrintStream 日期与时间类 From java.util: Calendar, Date, TimeZone 附加的实用类 java.util.Random, java.lang.Math 异常类(Exception Classes) From java.lang: Exception, ClassNotFoundException, IllegalAccessException, InstantiationException, InterruptedException, RuntimeException, ArithmeticException, ArrayStoreException, ClassCastException, IllegalArgumentException, IllegalThreadStateException, NumberformatException, IllegalMonitorStateException, IndexOutOfBoundsException, ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException, NegativeArraySizeException, NullPointerException, SecurityException From java.util: EmptyStackException, NoSuchElementException From java.io: EOFException, IOException, InterruptedException, UnsupportedEncodingException, UTFDataformatException 错误类 From java.lang: Error, VirtualMachineError, OutOfMemoryError (2)CLDC专有的类 这里sun提供了javax.microedition.io包。用它来提供与外界沟通的桥梁。(注:就像在J2SE中我们利用java.net.*)注意,所有的连接都由javax.microedition.Connector创建。例如:你可以打开一个http连接通过 Connector.open("http://www.chinajavaworld.com") javax.microedition.io的接口包括: Connection, InputConnection, OutputConnection, StreamConnection, ContentConnection, DatagramConnection, StreamConnectionNotifier 这里再说明一点,实际上你也可以看出,CLDC所包括的类库,并不足以开发应用程序。例如,没有UI界面的支持等。这也正是CLDC的设计理念。CLDC本身就从未想过要解决所有的问题。这些问题要靠其上层的Profile-MIDP来解决。例如javax.microedition.lcdui就是定义在MIDP中的UI包。 计算机世界开发者俱乐部 http://www.dev-club.com
J2ME开发基础全接触:从入门到精通 本文还有配套的精品资源,点击获取 简介:Java 2 Micro Edition (J2ME) 是Java平台的一个子集,专为嵌入式系统和移动设备等物联网应用设计。本教程全面覆盖J2ME开发的基础知识,包括架构、开发环境、核心组件、用户界面、数据存储、网络编程、设备特性和性能优化等关键内容。开发者将学习如何利用MIDP和CLDC等技术,创建具有丰富功能的移动应用程序。本教程... 阅读详情

相关推荐

从CPU视角看PCIe:深入理解x86/ARM平台上BAR、MMIO和PIO的地址翻译与访问机制

本文深入探讨了CPU如何通过BAR、MMIO和PIO机制访问PCIe设备的配置空间,详细解析了x86和ARM平台在地址翻译与访问路径上的差异。重点分析了PCIe配置空间中BAR寄存器的作用与探测机制,以及操作系统如何管理PCIe资源,为开发者提供了性能优化与调试的实用技巧。

weixin_30175731的博客 325

J2ME简介

一 J2ME是什么? 简单的说,就是一种开发平台,是SUN推出的对嵌入式、消费类电子产品推出的开发平台,与J2SE 和J2EE 共同组成Java 技术的三个重要的分支。 深一步说,是一种规范集合。规范的名称是Java Specification Request(JSR),由JCP发布。我们通常会看到许多文档提到JSR118之类的,就是指这个。 摘自SUN的网...

weixin_34301132的博客 169

重构工业交互体验:响应式数据可视化大屏解决方案

从智慧园区到数据中心,从水务监控到风力发电场景,HT 通过 2D/3D 组态技术与响应式布局机制,让数据以更灵活、更精准的方式呈现场景动态 —— 这正是 HT 技术在工业可视化领域的核心价值。例如,在智慧楼宇监控系统中,HT 引擎可实时渲染建筑结构、设备状态与数据流,同时确保画面在不同尺寸屏幕上的一致性。以某工业数据中心大屏为例,HT 通过暗红色主调搭配工业元素,结合粉色与黄色点缀,打破传统深蓝色大屏的视觉定式,同时通过矢量图形确保色彩在不同亮度下的辨识度 —— 这正是 HT 技术在视觉设计上的独特优势。

Hightopo的博客 890

J2ME的基本概念

本文主要介绍J2me的基本概念。转自中文JAVA网www.cn-java.com,希望对初学J2ME或打算学J2ME的朋友有所帮助。我也正在学习,可以多多交流!1.名词这里我列出一些常见的关键词,方便与下文参照.具体解释见后文.J2ME(Java2 Platform, Micro Edition) CLDC(Connected, Limited Device Configuration)MIDP(

我为JAVA 1145

Unity 佳能SDK 及数据获取

3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中。1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你。2. 将SDK这两个文件放到 Unity Plugins文件夹。

我知道你很急,但是路要一步步走 1479

ubuntu linux虚拟机安装部署openclaw详细教程(安装、问题处理)

本文详细介绍了在Ubuntu系统下安装OpenClaw AI助手的完整流程及常见问题解决方案。主要内容包括:1) 通过GIT、Node.js等基础环境配置;2) 使用官方脚本或源码编译两种方式安装OpenClaw;3) 配置向导中的关键选项说明;4) 针对systemctl服务启动失败等常见错误的处理方法。文章特别强调了权限管理、网络依赖和访问配置等易错环节,提供了修改service文件等具体解决方案,帮助开发者顺利完成部署并实现Web UI访问。教程实操性强,适合本地和云服务器环境部署参考。

少说,多做 2034

J2ME 百科

J2ME 百科 J2ME(Java2 microEdition)是一种高度优化的Java运行环境,针对市面上的大量消费类电子设备,例如Papers、cellularphones(蜂窝电话),screen-phones(可视电话?)、digital set-top boxes(数字机顶盒)、car navigationsystems(汽车导航系统)等等。 J2ME

sliven ' s blog 935

C#上位机+TensorFlow Lite 轻量化AI模型部署实战(工业级完整版,低算力工控机首选)

工业自动化轻量化AI部署指南:C# + TensorFlow Lite实战 摘要:本文针对工业自动化领域机器视觉部署的痛点,提出基于C#和TensorFlow Lite(TFLite)的轻量化解决方案。该方案完美适配低算力工控环境(J1900/2G内存),具有以下核心优势:1)极致轻量化,模型体积仅KB-MB级;2)CPU深度优化,单帧推理≤15ms;3)零环境依赖,纯C#部署;4)工业级稳定性,7×24小时运行。教程涵盖从环境搭建、模型转换到C#封装的完整流程,特别提供YOLOv8等工业常用模型的TFLi

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1031

J2ME基本概念

本文主要介绍J2me的基本概念。因为注意到国内的java站点介绍J2me的还比较少,所以就写了本文。如果有什么不妥的地方,欢迎您email我,讨论商榷。如您要转贴,请保留原出处,并勿做删改。谢谢。1.名词这里我列出一些常见的关键词,方便与下文参照.具体解释见后文.J2ME(Java2 Platform, Micro Edition) CLDC(Connected, Limited Device

black_ben的专栏 1212

电磁场仿真软件:COMSOL Multiphysics_(17).时域与频域分析

时域和频域分析是电磁场仿真中非常重要的两种方法,每种方法都有其独特的应用场景和优势。时域分析适用于瞬态响应和宽带信号的分析,而频域分析则适用于稳态响应和窄带信号的分析。在COMSOL Multiphysics中,通过合理设置物理场接口、材料属性、边界条件、网格划分和求解器,可以高效地进行这两种分析,并通过傅里叶变换将时域结果转换为频域结果,进一步拓展仿真应用的范围。合理的性能优化措施,如网格划分优化和并行计算,可以显著提高仿真的效率和准确性。

kkchenjj的博客 1978

【Unity 反向运动学插件】Final IK 一套完整的IK解决方案

Final IK是Unity中一套完整的反向运动学解决方案,提供多种IK算法(CCD、FABRIK等)和功能模块,包括全身IK、VR驱动、武器瞄准、视线跟随等。其核心是通过数学方法计算关节旋转,使末端骨骼精确到达目标位置。系统支持多约束求解、旋转限制、动画烘焙及交互系统,采用模块化设计,兼顾性能与扩展性,适用于动作游戏、VR等需要高质量角色控制的场景,是Unity生态中最成熟的IK工具链之一。

2403_88403568的博客 1007

J2me的基本概念(转)

本文主要介绍J2me的基本概念。因为注意到国内的java站点介绍J2me的还比较少,所以就写了本文。如果有什么不妥的地方,欢迎您email我,讨论商榷。如您要转贴,请保留原出处,并勿做删改。谢谢。1.名词这里我列出一些常见的关键...

cuankuangzhong6373的博客 265

Open3D 计算点云法向量的夹角【2026最新版】

计算法向量的夹角,博客长期更新,本文最新更新时间为:2026年3月7日。

点云侠的博客 3131

J2ME学习笔记(一)

           首先我像声明的是对J2ME我的确很外行,而且因为工作和此没有关系,所以肯定会有很多很多让高手们看起来很弱智的东西,呵呵,希望大家不要bs就好。同时希望高手也来指点一下小弟。呵呵。    个人兴趣,看看j2me的东西。其实也主要是为了帮一个兄弟完成他的毕业设计。呵呵,不知道他每天在US忙些什么东西,反正只知道我一问他就会告诉我他要去上班。。算了,不管他了。直接等他回

北漂的鱼 1418

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

★(转)J2ME学习笔记(一)

    首先我像声明的是对J2ME我的确很外行,而且因为工作和此没有关系,所以肯定会有很多很多让高手们看起来很弱智的东西,呵呵,希望大家不要bs就好。同时希望高手也来指点一下小弟。呵呵。    个人兴趣,看看j2me的东西。其实也主要是为了帮一个兄弟完成他的毕业设计。呵呵,不知道他每天在US忙些什么东西,反正只知道我一问他就会告诉我他要去上班。。算了,不管他了。直接等他回来再说咯。    目前已经

!Java 1876

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

J2ME Study

J2ME基本知识:1) 什么是J2ME?   当JAVA平台发展到JAVA 2的版本以后,为了适应不同级别计算机硬件的开发需要,JAVA平台形成了三个主要分支: J2SE :Java 2, Standard Edition,是为台式机而设计的,主要运行在Linux, Solaris, 或Microsoft Windows等操作系统上。 J2EE:Java 2, Enterprise Edi...

松松 238

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

j2me的基本介绍⑴

作者:Ding   Email:wu_yi_ding@yahoo.com 本文主要介绍J2me的基本概念。因为注意到国内的java站点介绍J2me的还比较少 ,所以就写了本文。如果有什么不妥的地方,欢迎您email我,讨论商榷。 如您要转贴,请保留原出处,并勿做删改。谢谢。 1.名词 这里我列出一些常见的关键词,方便与下文参照.具体解释见后文. J2ME(Java2 P

houyajin的专栏 518

BlackBerry J2ME 编程指南(二)

作者: 王志 刚  5J2ME简表5.1J2ME简表是什么?如我们在前面教程中提及的,一个简表定义了受支持设备的类型。例如,移动信息设备简表(MIDP),定义了蜂窝电话的类。它把一些特定于域的类加入J2ME配置中来定义对类似设备的使用。已经为J2ME定义了两个简表:KJava和 MIDP。它们都构建在 CLDC之上。KJava和 MIDP都和 CLDC及小型设备相关联。简表被构建在配置的顶部。由于简表是特定于运行应用程序的设备的大小(内存的数量),所以,某个简表是与某种特定的配置相关联的。在纲要简表上,您

BBturials的专栏 2446

[转载]J2ME开发入门专题系列之一:J2ME概述

J2ME开发入门专题系列之一:J2ME概述我们将从定义 J2ME 开始,从最简单的J2ME 是什么开始讲起。然后讨论它的总体架构并学习 J2ME 目标设备。作为架构讨论的一部分,我们将提供有关简表和配置的概述。同时我们会简要介绍...

congji3817的博客 201
上一篇: Velocity 的应用示例
下一篇: 10年编程无师自通
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值