日期:2014-05-20 浏览次数:20724 次
J2ME
????? J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。根据SUN的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
J 2ME 在设计其规格的时候,遵循着「对于各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。于是 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 内所定义的核心类别函式库所建立。
与J2SE和j2ee相比,J2ME总体的的运行环境和目标更加多样化,但其中每一种产品的用途却更为单一,而且资源限制也更加严格。为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J2ME的架构分为Configuration、Profile和Optional Packages(可选包)。它们的组合取舍形成了具体的运行环境。
Configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了虚拟机特性和基本的类库。已经标准化的Configuration有- Connected Limited Device Configuration(CLDC)和Connected Device Configuration(CDC)。
Profile建立在Configuration基础之上,一起构成了完整的运行环境。它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和API。CLDC上已经标准化的Profile有Mobile Information Device Profile ( MIDP)和Information Module Profile(IMP),而CDC上标准化的Profile有Foundation Profile(FP)、Personal Basis Profile(PBP)和Personal Profile(PP)。
可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。目前标准化的可选包包括数据库访问、多媒体、蓝牙等等。
J2ME游戏
??? 1.研究背景
游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场的发展。游戏平台从游戏机、电视游戏,到pc游戏,到手机游戏,中间经历了很多的技术的变革。随着新技术的发展和人们生活水平的提高,手机开始逐渐普及,手机以其小巧便捷,方便的特性成为人们的必备通讯工具。而基于手机平台的手机游戏也就拥有了巨大的市场空间,随着3g的开通和应用,手机游戏必将迎来新的一轮游戏热潮!
2.手机游戏概述
手机游戏可以根据游戏本身的不同,而分成文字类游戏和图形类游戏两种。
文字类游戏:
文字类游戏是以文字交换为游戏形式的游戏。这种游戏一般都是通过玩家按照游戏本身发给您的手机的提示,来回复相应信息进行的游戏。举一个简单的例子,目前很知名的短信游戏“虚拟宠物”就是典型的文字类游戏。在游戏中,游戏服务商会给您一些短信提示,比如服务商可能会给你发送如下短信“您的宠物饥饿度:70,饥渴度:20,疲劳度:20,喂食请回复内容为数字‘1’的信息,喂水请回复内容为数字‘2’的信息,休息请回复数字‘3’……”等等,那么,您回复数字“1”之后,游戏会给您回一个信息“您的宠物已经喂食完毕,您的宠物的饥饿度变为20”,如此类推,您便可以通过手机短信的方法来进行游戏了。
文字类游戏主要分文两种
a,短信游戏
b,wap浏览器游戏
a,短信类游戏:
就好像“虚拟宠物”那样。短信游戏是通过玩家和游戏服务商通过短信中的文字的内容来交流,达到进行游戏的目的的一种文字游戏。
由于短信游戏的整个游戏过程都是通过文字来表达,造成短信游戏的娱乐性较差。但是短信游戏却是兼容性最好的手机游戏之一。只要您的手机可以发短信,您就可以畅快的享受短信游戏给您带来的快乐了。
b,wap浏览器游戏:
wap是一种手机拨号上网的网络服务。而wap浏览器游戏就好像我们用电脑上网,并通过浏览器浏览网页来进行的简单游戏一样,也属于一种文字游戏。其进行方法和短信游戏类似,玩家可以根据wap浏览器浏览到的页面上的提示,通过选择各种不同的选项的方法来进行游戏。wap游戏也有短信游戏不够直观的缺点。
综观文字类游戏,其都有着一个共同的特点,即游戏是通过文字描述来进行的。游戏过程中,需要玩家进行过多的想象,使得游戏相对比较单调。虽然目前已经有了彩信等特殊服务可以让这类游戏更加人性化,但是其本质依然无法改变。而且,对于文字类游戏来说,其不低的价格门槛依旧是制约其发展的一大瓶颈。
图形类游戏:
图形类游戏更接近我们常说的“电视游戏”,玩家通过动画的形式来发展情节进行游戏。由于游戏采用了更为直观且更为精美的画面直接表现,因此图形类游戏的游戏性和代入感往往较文字类游戏高。因此广受玩家们的欢迎。
图形类游戏主要分为:
a,嵌入式游戏:
嵌入式游戏是一种将游戏程序预先固化在手机的芯片中的游戏。由于这种游戏的所有数据都是预先固化在手机芯片中的,因此这种游戏无法进行任何修改。也就是说,您不能更换其它的游戏,只能玩您的手机中已经存在的游戏,且您也不能将它们删除。
诺基亚早期手机中的“贪吃蛇1、2”就是嵌入式游戏的典型例子。
手机与游戏的兼容
???? 游戏java是一种程序语言,具体是什么程序语言我们完全没有必要知道。作为游戏一族,我们只需要知道两件事:
第一,您的手机是否支持java,要了解这一点您可以查阅您的手机的说明书,或者直接询问经销商。
第二,您挑选的java游戏是否支持您的手机,要了解这一点,您可以参阅“为什么手机游戏也会有兼容性问题”以及“如何从新浪游戏下载符合您的手机型号的手机游戏”部分。
在这里,有一个误区需要解释,那就是有时候我们说起java游戏,往往第一个想到的可能就是高端的手机配置,事实上这是一个意识形态上大大的误区。因为手机并不是电脑,“配置”这个词对于我们来说根本没有意义。
c,brew游戏
和java类似,brew也是一种程序语言。因此同样,我们也不用知道brew是什么东西,要使用brew,您只需要了解您的手机是否支持它就可以了。目前,只有CDMA的手机才支持brew,但是同时,cdma也支持java,于是为了减小成本,一般的开发商还是愿意选择基于java的游戏进行开发。因此,brew支持的游戏还不是很多。
d,uni-java游戏
uni-java是中国联通刚刚为其手机准备的一个新的通用开发平台,目前还处于开发阶段,还没有基于uni-java的手机推出。但是在不久的将来,uni-java必将是联通的一把利器。
PDA
?????? PDA,英文全称Personal Digital Assistant,即个人数码助理,一般是指掌上电脑。相对于传统电脑,PDA的优点是轻便、小巧、可移动性强,同时又不失功能的强大,缺点是屏幕过小,且电池续航能力有限。PDA通常采用手写笔作为输入设备,而存储卡作为外部存储介质。在无线传输方面,大多数PDA具有红外和蓝牙接口,以保证无线传输的便利性。许多PDA还能够具备Wi-Fi连接以及GPS全球卫星定位系统。 ? ? CLDC ?????? CLDC(Connected Limited Device Configuration,联网的受限设备配置)是用来开发在无线设备上运行的应用程序所要用到的一组最小的 API。CLDC 描述了所有无线移动设备所需的一个最小级别的功能集合。 CDC ???? CDC(Connected Device Configuration)连接设备配置(JAVA) j2me目前的一种配置层是“面向连接的设备配置”层(Connected Device Configuration),它采用典型的Java虚拟机技术。这种全功能的VM包含了基于台式机系统上的虚拟机的所有功能,适用于拥有至少几兆字节内 存的设备。 ? 配置概述(转自:http://blog.csdn.net/gooogledev/archive/2007/05/06/1598274.aspx) ? 简表概述(转自:http://blog.csdn.net/gooogledev/archive/2007/05/06/1598274.aspx) ? ?????? MIDlet 是在支持MIDP 的设备上运行的MIDP 应用。它仅利用MIDP 和CLDC 规范所定义的各. 种API。该应用必须继承MIDlet 类以便让应用管理软件来控制这个MIDlet、从应用描述器中获. 取各种属性,以及对各种状态变化进行通知和请求 add: MIDlet(Mobile Information Devices applet),即移动信息设备小程序. MIDP: 移动信息设备描述(Mobile Information Device Profile,MIDP)是一套Java应用编程接口(Application Programmer's Interfaces(APIs))。它们与有限连接设备配置(Connected Limited Device Configuration,CLDC)一起向诸如蜂窝电话等移动信息设备提供了一个完整的Java应用运行环境。MIDP中含有下列API包:javax.microedition.lcdui--用户界面(UI)API,它为MIDP应用提供了一整套实现用户界面的功能特性;javax.microediton.rms--移动信息设备描述提供了一种让MIDlets永久储存并在以后可以取回数据的机制。javax.microedition.midlet--这个MIDlet包明确定义了MIDP应用,也定义了和应用环境之间的交互。javax.microedition.io--移动信息设备还描述包括基于有限连接设备配置GenericConnection框架的网络支持。 MIDP是向下兼容的,即MIDP2.0的手机能玩MIDP1.0的游戏。 MIDP1.0有容量限制,软件不能超过64K。 MIDlet 是在支持MIDP 的设备上运行的MIDP 应用。它仅利用MIDP 和CLDC 规范所定义的各种API。该应用必须继承MIDlet 类以便让应用管理软件来控制这个MIDlet、从应用描述器中获. 取各种属性,以及对各种状态变化进行通知和请求。 ? ? 蓝牙 ????? 蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。 ? SDK SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。一般而言,SDK即开发 Windows 平台下的应用程序所使用的SDK。 ? ?
API API,也就是 Application Programming Interface,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。其实早在 dos 时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在 DOS 下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将 AH 置为 30h 后调用 INT 21h 就可以得到 DOS 操作系统的版本号。而在 Windows 中,系统 API 是以函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx() 函数。 可以这么说,DOS API 是“Thinking in 汇编语言”的,而 Windows API 则是“Thinking in 高级语言”的。 DOS API 是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么 Windows API 呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念——DLL。
?
?
对于 Java ME 平台,CLDC 为移动电话、双向寻呼机以及类似设备定义了基本配置(Java 语言、虚拟机功能和基本类库)。这些设备具有以下特性:
·总内存量为 128 KB 到 512 KB。
·具有有限电源,如电池。
·可以连接到网络。
·具有相对有限的用户界面,通常只限文本。
CLDC 1.1 是 CLDC 1.0 规范的修订版本,包含很多新增功能(例如浮点和弱引用支持)以及其他增强功能。
Java 规范请求 (Java Specification Request, JSR) 30 中详细指定了 CLDC 1.0 的要求。
JSR 139 中详细指定了 CLDC 1.1 的要求。
j2me是一种使用Java语言进行嵌入式设备编程的技术,但是嵌入式设备的种类过于繁多,至少有几百种之多,为了降低编程的复杂度,SUN公司将所有的嵌入式设备分为了两大类:
1 CDC(连接设备配置)
有稳定的电源供应
设备性能强劲
例如车载设备、机顶盒等。
2 CLDC(连接有限设备配置)
使用电池供电
设备性能有限
其中手机属于CLDC类别。
上面的说法都是从硬件划分的角度来说明CLDC的,下面从程序员的角度来理解一下CLDC的概念。其实对于程序员来说,CLDC主要包含三个部分:
1 Java虚拟机(又称JVM)
这个是所有Java程序运行的基础。对于手机来说,在手机出厂以前,已经固化在手机中了,出厂了以后就不能进行修改了。
2 一套标准的API实现
该标准的API主要包含java.io、java.lang、java.util包以及javax.microedition.io包中的部分。这个是规范要求必须实现的API,也固化在手机中,不能修改。
3 本地方法实现
在标准的API中,很多都是接口,这些就要求厂商在手机中提供真实的实现,而且很多本地方法也要求手机厂商进行实现。
配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定 JVM。虽然还可能在将来定义其他的配置,但当前 J2ME 存在两种配置:
连接限制设备配置 (CLDC) 特别与 KVM 一起用于内存有限的 16 位或 32 位设备。这是用于开发小型 J2ME 应用程序的配置(虚拟机)。(从开发的角度来看)它的大小限制让它比 CDC 更有趣、更具挑战性。CLDC 同时还是用于开发绘图工具应用程序的配置。 Palm 电脑便是一个运行小应用程序的小型无线设备的示例。我们将在 J2ME 配置一章中深入介绍 CLDC。
连接设备配置 (CDC) 与 C 虚拟机 (CVM) 一起使用,用于要求内存超过 2 兆的 32 位体系结构。互联网电视机顶盒便是这类设备的一个示例。虽然稍后我们将在 CDC API 一章中简要介绍 CDC,但它并不在本教程的范围内。
简表定义了您的应用程序所支持的设备类型。特别地,它向 J2ME 配置添加了特定于域的类来定义设备的某种作用。简表建立在配置的顶部。已经为 J2ME 定义了两种简表:KJava 和移动信息设备简表 (MIDP),它们也被建立在 CDLC 上。这两种简表适用于小型设备。
有一种纲要简表,您可以在它的上面创建自己的简表,这种纲要简表也称为基础表,可供 CDC 使用。然而,在本教程中,我们只重点介绍建立在 CLDC 顶部,适用于小型设备的简表。
我们将在后面的章节中讨论上述这些简表,还会使用 KJava 和 MIDP 建立一些示例应用程序。
MIDlet
?
?
?
?
?
?
?
?
?
?
?
?
?
JTWI
《无线领域的Java技术规范》(Java Technology for the Wireless Industry即JTWI,JSR185)正是为了完成“建立一个标准来保证j2me应用程序的跨平台性”这个使命而出现的。
Java Technology for Wireless Industry出现的目的则是为了解决如上两个问题,它是在JSR185中提出的。JTWI并没有提出新的技术,也没有提供新的API。它对J2ME的运行环境作了规范,提供了一个标准的更加严格的运行环境,这有效的减小了API的*并提高了程序的可移植性。JTWI是以一下的规范为基础的
JSR 30 CLDC1.0 提供了基本的语言类库,但是不支持浮点运算。可以用CLDC1.1替代1.0
JSR118 MIDP2.0 提供了图形用户界面、持久性存储、game和多媒体等功能模块的支持
JSR120 WMA1.1 提供了短消息功能的支持
另外MMAPI1.0(JSR135)是JTWI中可选的部分。提供了对多媒体的全面支持,MIDP2.0中的多媒体部分是MMAPI的子集。
JSR185对如下的一些方面进行了规范,实现JTWI的设备必须遵守这些规范
1. 规定了标准应用程序的大小,设备必须支持64K大小的应用程序和5K的JAD文件。持久性存储的大小为30KB,heap空间从MIDP2.0中的128KB提高到256KB
2. 记事功能,这样你可以使用PushRegistry的registerAlarm()方法
3. JSR185对设备的屏幕尺寸作了建议125*125/12bits。设备必须支持JPEG格式的图片。HTTP1.1必须被支持
4. JSR185是基于WMA的,因此设备必须具备短消息发送和接受的能力,JSR185还规定,应用程序在准备发送短消息的时候,当提供了TextField和TextBox组件的时候,应该可以给用户弹出本机电话本可以选择
5. 对移动多媒体进行支持,必须实现对MIDI和单音的支持
如果你想详细了解JSR185的具体内容请参考如下规范
* JSR 185, Java Technology for the Wireless Industry
* JSR 118, MIDP 2.0
* JSR 120, Wireless Messaging Architecture 1.1
* JSR 135, Mobile Media API 1.1
* JSR 135, Mobile Media API 1.1
?
J2ME能做什么(转自:http://blog.csdn.net/gooogledev/archive/2007/05/06/1598274.aspx)