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)。
可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。目前标准化的可选包包括数据库访问、多媒体、蓝牙等等。
开发工具开发Java ME程序一般不需要特别的开发工具, 开发者只需要装上Java SDK 及下载免费的 Sun Java Wireless Toolkit 就可以开始编写Java ME程式,编译及测试, 此外目前主要的IDE(Eclipse及NetBeans)都支持 Java ME 的开发,个别的手机开发商如Nokia及 Sony Ericsson 都有自己的SDK, 供开发者在开发出兼容于他们的平台的程序。
J2me的技术体系
要想从事J2ME的工作需要掌握的知识结构如下,该内容参考了人民邮电出版社沈大海编著的<J2ME手机游戏开发与项目实战详解>一书
手机游戏概述
1.1游戏概述
1.2手机游戏类型
1.2.1硬件划分
1.2.2 软件划分
1.3 手机游戏开发平台
1.4 使用J2ME开发手机游戏
J2ME MIDP1.0技术详解
3.1 J2ME概述
3.1.1 什么是J2ME
3.1.2 J2ME体系结构
3.1.3 第一个J2ME程序
3.1.4 MIDlet应用程序的生命周期
3.2 通过Command CommandListener处理手机功能键
3.3 J2ME开发环境
3.3.1使用Eclipes搭建J2ME开发环境
3.3.2使用JBuilder搭建J2ME开发环境
3.4 MIDP 高层窗口设计
3.4.1 TextBox
3.4.2 Alert
3.4.3 List
3.4.4 Form与Item
3.4.5 总结
3.5 MIDP 底层窗口设计
3.5.1 底层窗口类Canvas
3.5.2 使用绘图对象Graphics
3.5.3 在底层屏幕中处理任意手机按键
3.5.4 使用底层屏幕实现精灵吃豆游戏
3.6 在底层屏幕中实现游戏动画
3.6.1 使用线程实现动画
3.6.2 使用定时器实现动画
3.6.3 通过双缓冲技术实现动画
3.6.4 精灵动画的实现
3.7 游戏进度的保存—记录管理系统(RMS)
厂商手机平台开发
4.1 设备专用库介绍
4.2 Nokia平台的安装
4.3 Nokia新增API
4.3.1 全屏幕底层屏幕类FullCanvas
4.3.2 多边形与颜色半透明 (加入实例 陈万飞 江涛那些例子
4.3.3 图片的镜像与旋转 (假如实例 通过镜像实现人物的动画
4.3.4 声音
4.3.5 手机震动与背景灯
4.4 Moto平台的安装
4.5 索爱平台的安装
中国移动手机游戏开发规范
5.1 手机游戏运营与手机游戏运营商
5.1.1 手机游戏价值链概述
5.1.2 中国手机游戏运营商
5.2 对于内容提供商的要求
5.2.1 游戏界面规范
5.2.2 游戏菜单规范
5.2.3 游戏按键规范
5.2.4 游戏内存要求
5.2.5其他
手机游戏策划与像素画制作
6.1一款商业化手机游戏开发流程
6.2 手机游戏策划
6.3 手机游戏美术--像素画
完整游戏项目设计详解
7.1 《疯狂水果》策划案
7.2 像素图准备
7.3 游戏进度和游戏菜单的实现
7.4 游戏时间的控制和图像绘制模块的实现
7.5 游戏按键处理与碰撞检测
益智类(PUZ)游戏—《疯狂扫雷》的实现
8.1 《疯狂扫雷》策划案
8.2 像素图准备
8.3 使用底层屏幕实现游戏菜单
8.4 游戏逻辑控制模式
8.5 递归算法在扫雷中的应用
射击类(FPS)游戏—《异度风暴》的实现
9.1 《异度风暴》游戏策划案
9.2 像素图准备
9.3 使用setClip方式实现滚动菜单
9.4 飞行的实现
9.5 使用定时器(Timer)和向量(Vector)实现子弹
9.6 FPS游戏完整代码
动作类(ACT)游戏—《都市历险记》的实现
10.1 《都市历险记》策划案
10.2 像素图准备
10.3 动态游戏菜单的实现
10.4 地图编辑器和游戏地图的实现
10.5 处理人物的跳跃和碰撞
10.6 ACT游戏完整代码
角色扮演类(RPG)游戏—《六指琴魔》的实现11.1
《六指琴魔》策划案
11.2 像素图准备
11.3 RPG游戏地图的实现与优化
11.4 RPG游戏人物的实现
11.5 RPG游戏对话的实现
11.6 NPC 处理
11.6 使用A星算法实现NPC寻路
11.7 场景切换
11.8 回合制RPG游戏战斗画面的实现
11.9 RPG 游戏完整代码
JTWI开发技术详解
JTWI 介绍
12.1 MIDP 2.0 新增功能
12.2 MIDP 2.0 Game API 介绍
12.2.1 GameCanvas的使用
12.2.2 使用Sprite实现精灵图层
12.2.3 使用TiledLayer 实现网格图层
12.3 使用Game API实现《小猫钓鱼》
12.4 WMA
12.5 蓝牙
12.6 JSR 184 3D
12.7 MMA
J2ME网络编程与网络游戏的实现
13.1 网络游戏模型
13.2 使用Tomcat搭建网络游戏服务器端 JSP简介
13.3 一个简单的客户端与服务器端通讯的实现
13.3.1 服务器端实现
13.3.2 客户端实现
13.4 一个J2ME网络游戏《商品大赢家》的实现
13.4.1 服务器端实现 使用HTTP协议
13.4.2 客户端实现
使用Socket Java网络编程基础
游戏优化与游戏移植技术
14.1 让你的游戏快起来
14.2 去掉所有能去掉的冗余
14.3 游戏移植工作的注意事项
14.4 游戏特殊效果处理
手机游戏商业发布
15.1 发布游戏要准备的项目
15.1 录制游戏视频
15.2 制作游戏介绍文档和PPT
15.3 整理Demo版jad jar
15.4 寻找发布渠道
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游戏是否支持您的手机,要了解这一点,您可以参阅“为什么手机游戏也会有兼容性问题”以及“如何从新浪游戏下载符合您的手机型号的手机游戏”部分。
在这里,有一个误区需要解释,那就是有时候我们说起java游戏,往往第一个想到的可能就是高端的手机配置,事实上这是一个意识形态上大大的误区。因为手机并不是电脑,“配置”这个词对于我们来说根本没有意义。
c,brew游戏
和java类似,brew也是一种程序语言。因此同样,我们也不用知道brew是什么东西,要使用brew,您只需要了解您的手机是否支持它就可以了。目前,只有cdma的手机才支持brew,但是同时,cdma也支持java,于是为了减小成本,一般的开发商还是愿意选择基于java的游戏进行开发。因此,brew支持的游戏还不是很多。
d,uni-java游戏
uni-java是中国联通刚刚为其手机准备的一个新的通用开发平台,目前还处于开发阶段,还没有基于uni-java的手机推出。但是在不久的将来,uni-java必将是联通的一把利器。
3G
随着国家3g牌照发放的临近,手机游戏市场再度成为业界关注的焦点。上周,业界相关人士表示,中国手机游戏市场经过几年的市场培育,市场开发已渐成熟,3g时代的到来将使我国手机游戏市场规模将大幅度增长,一场手机游戏盛宴有望上演。3g时代的到来,网络带宽的速度将大幅提升,那么手机游戏带给用户的将又是一种全新的体验,大家体验越来越好的时候,这个经济一定会越来越热。因此可以预见3g时代到来的时候,手机游戏一定会成为主流之一。从手机游戏的几年发展不难看出,从简单内置的手机游戏到下载类游戏,再到联网游戏、多人联网游戏,最后发展到跨平台联网游戏,手机游戏产业正不断升级,随着3g时代的到来,对于手机游戏来说,意味着更强的终端表现力、更快的传输速度,全新的体验将使它吸引更多的用户加入进来。
为什么流行J2ME?J2ME最吸引人的地方,就在于其针对的平台计算能力有限。这并不是受虐。运算速度、可用内存、以及最终生成字 节码尺寸的限制使得J2ME应用通常比较小巧玲珑。以早期支持J2ME的设备为例(比如Jordan手里的那部手机,zengke的就算了),可用的Heap不过200k,最终生成的代码(包含各种资源文件,如图片)不得超过64k,这就使得面向这种平台开发的J2ME应用规模基本上不会超过一个人的 能力范围。这样可以有效避免协作、过程等等令人不胜其烦的软件工程概念的引入,从而使开发人员重新回归到编写代码的乐趣中去。