什么是J2ME及其基本慨念

基于J2ME的手机游戏开发 随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的过程。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 如果您曾经http://www.javasoft.com ;网站上查询有关Java 2 Micro Edition 的资料,十之八九会被一大堆的技术名词搞的一头雾水。什么 KVM ,什么CLDC 、CDC 、MIDP ,后面面还冒出了Personal Java 、Embedded Java以及JES 等名词。虽然名为Java 的微小版本,可是它的世界可真是不小,让我们满肚子“见山不是山,见水不是水”的疑惑。的确,在我刚开始接触 Java 2 Micro Edition 的时候,就感觉到这个玩意儿实在越看越让人摸不著头绪。因此在本章中,我舍弃了技术上的细节,希望带大家从宏观的角度来看待 Java 2 Micro Edition 的世界。希望读过本文之后,可以使大家体验“见山是山,见水是水”,一切豁然开朗的感觉。首先,我们必须先对Java 2 Micro Edition 在整个Java 技术之中的定位做个了解。      各种不同版本之Java 程序的开发     如前面所说,各种不同的Java 版本,在其支援的核心类别函式库之完整性以及所支援的 Java 基本型别这两件事情上都有所差异,也就是说,不管您开发的是企业所使用的Java 程序、嵌入式装置上执行的Java 程序、浏览器上执行的Applet ,或是在PC 上执行的应用程序。您都必须在您的电脑上先安装 J2SE ,然後再安装各种版本的核心类别函式库以及额外的扩充类别函式库,如此才能成功地开发各种不同目的的Java 程序。J2SE所提供的Java 编译器(javac.exe)可以帮助我们编译各种不同平台上的Java 程序,而J2SE 所提供的Java 虚拟机器(java.exe)则可以帮助我们在PC 上先行测试这些程序执行结果的正确与否。另外,Java 编译器并不会帮您检查您的程序是否符合各种平台上所支援的核心类别函式库与 Java 基本型别。举例来说,虽然我们在前面说过,Smart Card 版本并不支援boolean 、byte 以外的Java 基本型别,而且该平台也只支援java.lang.* 核心类别,可是当我们在撰写 Smart Card 平台上的程序时,就算在程序码里用了boolean 或byte 以外的Java 基本型别,或者使用了java.lang.*之外的其他核心类别,编译器仍然可以照常帮您编译出类别档。这个时候大家一定开始产生疑惑 --那么这些程序如果放到Smart Card 上头执行的时候,出了问题怎么办 ? 难道不会造成Smart Card 上的虚拟机器执行时发生错误吗 ? 针对这个可能发生的潜在问题,Sun Microsystems 在各种不同版本的开发套件中,有些会内附检查器 (checker)或者预先审核器 preverifier),这两个工具可以帮助您在将程序放到目标平台之前先做好检查和预先审核的工作。检查器会帮您找出类别档之中不合目标平台规格的部分,并提醒你这些地方可能无法在目标平台上执行。因此只要有检查器的协助,您大致上可以确定您的程序可以符合目标平台的规定并顺利执行。 Java Card 的开发套件中就附有检查器。     而某些平台的开发套件则附有预先审核器,预先审核器除了做检查器做的工作之外,还有一项额外的工作,就是减轻目标平台上虚拟机器的负担,要解释预先审核器这个额外的工作,在传统的 Java 程序之中,为了安全上的考量,任何进入执行环境的类别档 (不管该类别档是来自本机或是远端机器 ),都必须先经过Byte Code 审核器(Byte code verifier)的验证,以防止程序在传送途中遭到恶意的修改,而使得 Java 程序在执行时对系统有不良影响。经过审核之後,该类别档才能开始被J 虚拟机器所执行。如果这个审核的动作在一般的 PC 上执行,速度倒是还能够接受,可是一旦放到如 Palm 或是手机这些CPU 较慢、记忆体也比较少的机器上面就显得十分吃力了。为了节省宝贵的 CPU 运算时间(既能省电又能够加速程序执行 ),因此,在程序设计师产生能够让某些特定平台执行的类别档之前,程序设计师必须先在 PC 上使用预先审核器做一些前置的审核工作,预先审核器会在类别档之中加入一些特殊标记或符号。如此一来,当这些程序放到目标平台上执行时,就可以大幅减少在目标平台上做审核时的时间,藉而加速程序的的启动及执行速度。因此在J2ME 之下的程序(Spotlet 、MIDlet),其执行步骤变成因为预先审核的关系,执行时Byte Code,审核器的工作就变少了,也因此从程序载入到开始执行之间的时间因而缩短。 CLDC标准实作和MIDP 参考实作之中就附有预先审核器。     Java 版本的演进     相信熟悉Java 演进历史的人或多或少都听说过,Java 技术一开始并非就叫做 Java ,而是叫做OAK ,而且最早的时候就是为了嵌入式系统而设计的一项产品。後来因为网际网路的发达,而OAK 的诸多特性刚好又适合用在网路上(例如可移植性、编译後程序码很小),因为商标已被注册的关系,因此 OAK 被改名成Java ,从此因缘际会地成了网路上的闪亮巨星,并随著时间越来越成熟,也慢慢地产生了许多非原本预期中的相关运用。   虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。      虽然从Java 1.0 发表之後,Java 就被广泛地使用在桌上型应用程序以及Applet 的开发上,但是,从Java 1.1 开始,Java又回到了它一开始的老路--也就是嵌入式系统方面的应用,在当时Sun Microsystems 发表了Embedded Java 与Personal Java(也有人简称为PJava)这两项规格。其中Embedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而设计; Personal Java 则是为了在能够与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。接著Java 的版本演进到Java 2 ,这时为了再明显区分各种Java 的应用,所以分割出了J2EE、J2SE、以及 J2ME 三种版本。这三种版本的各种特性我们已经在前面已经详细地描述,在此不再赘述。不过请大家记住,由於 Java 2将Java 的应用区分成三大块,使得 Java 程序语言的发展不会再像Java 1.1时如树枝状般扩散出去,这么一来有助于大家对 Java 各种应用的了解,而不会造成今后越发展下去越不可收拾的混乱局面。额外向大家一提的是,后来Personal Java 发展到1.2 版的时候,也采用了一些Java 2 平台上与安全性有关的设计。  Java 2 Micro Edition 概念     J2ME 在设计其规格的时候,遵循著「对於各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。於是 J2ME 先将所有的嵌入式装置大体上区分为两种 :一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA 、手机);另外一种则是运算能力相对较佳、并请在电力供应上相对比较充足的嵌入式装置 (比方说冷气机、电冰箱、电视机上盒 (set-top box))。因为这两种型态的嵌入式装置,所以Java 引入了一个叫做Configuration 的概念,然後把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为 Connected Device Configuration(CDC)规格。也就是说, J2ME 先把所有的嵌入式装置利用Configuration 的概念区隔成两种抽象的型态。      其实在这里大家可以把Configuration 当作是J2ME 对於两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的 Java 程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java 标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库。比方就CLDC 的规范来说,可以支援的核心类别函式库为java.lang.* 、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。区分出两种主要的Configuration 之後,J2ME 接著在定义出Profile的概念。Profile 是架构在Configuration 之上的规格。之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。因此Profile 之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile 里头。Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。      Java 在嵌入式系统上的应用     由于Java 本身最初的设计理念即是针对嵌入式系统,因此将他用在嵌入式系统上真可谓如鱼得水。在这个Linux 开始兴起的时空交会点,网路上出现了一篇关于嵌入式 Linux 与Java 互相配合以造就双赢局面的相关报导,这是由 LinuxDevices.com 的专栏作家 Randy Rorden 所发表的一篇白皮书,名为「 Java 与嵌入式 Linux 合作」。 在这篇文章里头,作者对嵌入式Linux与Java 个别的优点提出他的看法,同时也提出了Java-Linux 平台的构想。有兴趣的读者可以到到下列几个网站参考相关新闻与资料。      1. Java 与嵌入式 Linux 合作白皮书     http://www.ctech.com.tw/d-news/news/linux/89090208.asp ;   2. Java 及嵌入式Linux 合作     http://www.linuxdevices.com/news/NS5973673868.html ;   3. 即将来临的Java-Linux 结合     http://www.linuxdevices.com/articles/AT7102892618.html ;     为何要用Java 撰写PDA 上的应用程序?     由於预期到今後行动通讯时代的来临,所以通讯相关行业变的前景可期,而除了达成行动通讯的主要工具 -- 手机月来越精巧之外,有更多的厂商相继投入PDA 的生产与开发。本来PDA 主要的平台有PalmOS 、Windows CE 以及EPOC ,也不知道曾几何时,开始一大堆公司投入embedded linux 的研发,其中包括国内资策会自己开发的 @ViS 作业系统,互慧科技也有自己的嵌入式作业系统,当然更不用说大陆厂商与韩国厂商了。   这些作业平台的数量比起 PC 来说真不知道要复杂上几倍。对一般使用者来说当然影响比较小,可是对於程序开发者来说,看到这么多不同的程序发展平台,真是让人望之却步。如果每个平台都有自己的程序写法以及函式库,那么光是看上面这些平台至少就要学习五种以上程序的写法。当然,只专精一种平台当然是很好的事情。可是程序设计师不禁要说 :”如果我们写出来的软体可以在不经过修改原始码的情况下就能够在这些平台上执行,那不是更完美吗?” 对程序开发者来说,这样的投资报酬率当然是最大的。      要在那么多平台上开发程序,对程序设计师来说的确是一个很大的挑战,如果要把所有的时间和精力放在软体的可用性上,那么相对地很多时候我们根本没有那么多时间撰写各种平台的程序。要解决这个问题,一般来说程序设计师会选用一个可以跨平台的Framework 来达成至少source code level 的跨平台(例入Qt 就能做到)。不过在本篇文章中我们要介绍的则是更终极的解决方案 ?Java ,利用Java 的”write once, run anywhere”特性,我们可以真正达到程序只要写一次,拿到任何平台上都可以执行(当然前提是必须要PDA 的厂商也要实作出该平台的Java Virtual Machine 才行)。利用Java 来做PDA 上的程序当然有其缺点,最广为人知的可能就是执行效率的问题, Java 在执行速度这个议题上一直让人诟病。   不过笔者认为,随著技术的发达,将会有更快更省电的PDA 专用CPU 出现,因此效率上的问题其实是可以忽略的。更何况,当 Sun 在设计J2ME 的时候,也用了很多方式企图加快Java 在PDA 上的执行速度(例如预先审核)。
J2ME程序开发基础详解与示例代码 J2ME是Java平台的一个子集,专门用于开发嵌入式设备和移动设备上的应用程序。J2ME(Java 2 Platform, Micro Edition)是一种用于开发移动设备上的Java应用程序的平台。本文对J2ME程序开发的基础知识进行了详细讲解,并提供了一个简单的计算器应用程序示例。以上示例演示了一个简单的计算器应用程序,用户可以输入两个数字并点击计算按钮,应用程序将计算结果显示在界面上。下面是一个简单的J2ME程序示例,演示了如何创建一个简单的计算器应用程序。三、J2ME程序开发步骤。 阅读详情

相关推荐

J2ME开发基础全接触:从入门到精通

本文还有配套的精品资源,点击获取 简介:Java 2 Micro Edition (J2ME) 是Java平台的一个子集,专为嵌入式系统和移动设备等物联网应用设计。本教程全面覆盖J2ME开发的基础知识,包括架构、开发环境、核心组件、用户界面、数据存储、网络编程、设备特性和性能优化等关键内容。开发者将学习如何利用MIDP和CLDC等技术,创建具有丰富功能的移动应用程序。本教程...

weixin_30798867的博客 1780

J2ME 百科

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

sliven ' s blog 935

编译KVM(J2ME CLDC)

要毕业了,这是自己在学习过程中写的文档,仅供参考。文档中参考了书籍和网络资料,没能全部注明。 email: jinfuz@163.com

J2ME开发入门(老java游戏)

一.文件下载 链接:https://pan.baidu.com/s/1JLTE8UagTVYNVNanQmhysA 提取码:iarr 1.WTK2.5.2,32位的 2.eclipse,老版本的,新版不知道什么问题,不能新建J2ME项目 3.eclipseme,J2ME插件 4.jdk1.8,32位,因为WTK只有32位 二.安装 1.jdk直接安装就行 2.WTK也能直接安装 3.eclipse直接解压出来就能运行 4.eclipseme 点击help - install new software 点

u011727804的博客 4700

卷积码和Turbo码

通信原理相关博文目录:目录我们常在移动通信中遇到的卷积码就是一种非分组码,卷积码和信号处理中的卷积运算有关系吗?是不是就是信号处理中的卷积运算,先看看编码器的编码原理再说:下面是一个比较实用的卷积码编码器:它有三个移位寄存器D0,D1,D2和三个模2加法器,以及一个旋转开关组成,编码前,先将各级移位寄存器清零:现在假设输入的信息码元是1101:当输入的第一个码元为1时,三个模2加法器计算的结果都为...

Reborn Lee 2万+

低成本实现webhook接收端[python]

Webook本质上也是API,只不过是反向调用,即前端不主动发送请求,完全由后端推送。简单来说,Webhook是一个接受HTTP POST或是GET,PUT,DELETE的URL,一个实现了Webhook的API提供商就是在当事件发生的时候会向配置的URL发送信息,与请求-响应式不同,使用Webhook可以实时接收到变化。Ps:Webhook可能会发出大量的请求,确保接受的URL不被泄露或者应用能及时处理这些请求。

锡城小凯的博客 1万+

Java手机技术 之 J2ME及其基本慨念

如果您曾经http://www.javasoft.com ;网站上查询有关Java 2 Micro Edition 的资料,十之八九会被一大堆的技术名词搞的一头雾水。什么 KVM ,什么CLDC 、CDC 、MIDP ,后面面还冒出了Personal JAVA、Embedded Java以及JES 等名词。虽然名为JAVA的微小版本,可是它的世界可真是不小,让我们满肚子“见山不是山,见水不是水”的

624

AD20 Channel-Offset Error 解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言AD20 PCB相同电路模块ROOM格式复用时出现 Channel-Offset Error 解决办法一、问题现象二、解决办法 前言 AD20 PCB相同电路模块ROOM格式复用时出现 Channel-Offset Error 解决办法 一、问题现象 我们经常在使用Room格式快速布局相同模块电路时出现以下问题, 二、解决办法 相同模块电路PCB布局复制的过程网上有很多,这里不再做赘述,步骤都差不多,只说问题根源; 1:.

m0_47201213的博客 7634

J2ME及其移植

J2me及其移植   1. 简介 1.1 系统结构 Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。   JAVA ME的架构分为Configuration、Profile和Optional

ydhua1988的专栏 2838

Temporal Fusion Transformer(TFT)与扩散模型融合:时间序列预测新范式

本文探讨了Temporal Fusion Transformer(TFT)与扩散模型融合的时间序列预测新范式。该融合方案利用TFT强大的特征提取与可解释性,为扩散模型提供精准的“导航图”,从而在噪声数据中实现鲁棒预测,并原生支持不确定性量化,输出完整的概率分布与置信区间,为金融、能源等领域的风险决策提供更可靠的依据。

weixin_29096377的博客 292

ASP.NET Core Identity + Mysql(实战一)——注册登陆

在进行实战之前,我们先来了解一下Identity。 ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格、登录和用户数据存储。简单的来讲包括: 1.用户数据存储(使用任意你喜欢的关系型数据库,从sqllite到mysql、sqlserver等等,由Entity Framwork 支持) 2.登陆、注册外加身份认证(基于coo...

weixin_40359716的博客 1399

J2ME

  J2ME(Java 2 micro Edition)是一种高度优化的Java运行环境,针对市面上的大量消费类电 子设备,例如Papers、cellularphones(蜂窝电话), screen-phones(可视电话?)、digital set-top boxes(数字机顶盒)、car navigation systems(汽车导航系统)等等。 J2ME技术在1999年的JavaOne De

iseeiconquer的专栏 2609

第4章-07-将WebDriver获取的Cookie传递给Requests

在使用Selenium WebDriver获取了浏览器的Cookies之后,你可以将这些Cookies传递给requests库,以便在后续的HTTP请求中使用这些Cookies。这样做可以让你模拟浏览器会话,使得请求看起来像是从之前使用Selenium WebDriver控制的浏览器发出的。

黑夜开发者的博客 693

J2ME-Loader快速入门:如何在5分钟内运行第一个J2ME游戏

J2ME-Loader是一款强大的Android平台J2ME模拟器,让你能够在现代安卓设备上重温经典Java ME游戏。本指南将带你快速掌握J2ME-Loader的安装与使用,无需复杂配置即可畅玩怀旧游戏。 ## 📱 准备工作:获取J2ME-Loader 要开始使用J2ME-Loader,首先需要获取应用程序。你可以通过以下两种方式之一: 1. **直接安装**:从可靠来源下载J2ME-L

gitblog_00168的博客 1121

Python 爬虫实战:亚马逊 + eBay 商品信息跨平台抓取(价格 / 销量 / 评价对比)

亚马逊和 eBay 是全球知名的电商平台,拥有海量的商品信息。对于消费者来说,比较不同平台上的商品价格、销量和用户评价可以帮助他们找到性价比最高的商品。对于商家而言,了解竞争对手的商品信息有助于优化自身的产品策略和定价策略。然而,手动在两个平台上逐一比较商品信息是非常耗时且低效的。因此,开发一个能够自动抓取并对比这两个平台商品信息的爬虫工具具有重要的实际意义。

yansideyucsdn的博客 618

华为OD机试 - 城市聚集度(Python/JS/C/C++ 2025 A卷 200分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1132

如何学好J2ME

     现在工作很忙,最近没有时间写技术文章了。因此今天谈谈自己学习J2ME的一些心得。希望对大家有所帮助。同时欢迎大家谈谈自己的感受!具备良好的java语言基础,不要还没有学习java语言就拿起一本J2ME的书来看。这样效果并不好,相反如果你有良好的java语言基础的话,J2ME就显得比较容易掌握!如果你决定开始学习J2ME了,那么首先你应该清楚J2ME的体系结构是什么样的。当你真

mingjava的专栏 4220

精雕软件(JDpaint) 5.5 绿色版

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

J2ME-Loader 开源项目教程

J2ME-Loader 是一个开源的 Android 应用程序,旨在模拟和运行 Java 2 Micro Edition (J2ME) 应用程序和游戏。该项目由 nikita36078 开发,并在 GitHub 上托管。J2ME-Loader 提供了一个用户友好的界面,使用户能够在现代 Android 设备上体验旧的 J2ME 应用和游戏。 ## 项目快速启动 ### 安装步骤 1. **克...

gitblog_00210的博客 1588

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

J2me平台

             Sun凭借最新的Java技术试图将其进一步实现为开发者的目标平台,然而Java平台自身却分成了三种平台:Standard版、Enterprise版和Micro版。Micro版,也就是所谓的J2ME,从问世伊始就专门设计为供内存量小和处理能力较低的移动设备作为Java开发平台使用。从表面上看,这样做对那些希望提升应用程序的移动计算能力的开发者来说是一件好事。然而,“移动

冷枫@优快云 2715

Camera2Demo

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

J2ME的现状与发展

SUN中国工程研究院 软件技术中心 王刚摘要本文简要介绍了J2ME的有关概念和现状、MIDP2.0的最新特点,并对J2ME的竞争对手、J2ME应用程序的兼容性以及其在Web Services中的应用做了阐述和分析。什么是J2ME?当JAVA平台发展到JAVA 2的版本以后,为了适应不同级别计算机硬件的开发需要,JAVA平台形成了三个主要分支:Java 2, Standard E

优快云_document的专栏 3347

J2ME简明教程上

    第一章 J2ME开发简介 目标: 掌握J2ME的基本概念 了解CLDC特性 对手机开发有整体上的认识 1.1 J2ME基本概念 手机上的应用软件经历了3个阶段: z 仅提供基本通话功能 z 简单的应用程序(电话簿) z 网络功能(WAP) 使用人群的增长,手机厂商依然闭门造车,导致2个问题的出现: z 没有开放的平台,各自的软件不能相互使用。 z 访问Inter

创业的程序员 2157
上一篇: Java 理论与实践:垃圾收集简史
下一篇: Java 理论与实践:线程池与工作队列
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值