J2ME开发入门
基于J2ME技术的移动游戏开发平台
华南理工大学硕士学位论文基于J2ME技术的移动游戏开发平台姓名:***申请学位级别:硕士专业:计算机应用指导教师:***20050501第二章.J2.Ug平台分析低配置设备高配置设备2.1,2配置概述配置将运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。
虽然还可能在将来定义其他的配置,但当rillJ2.\_iE存在两种配置,CLDC和CDC。
连接限制设备配胃(CLDC):与虚拟机KVM一起,用十内存有限ff勺【6位或32位殴备。
这是用于开发小型J2ME应用程序的配置(虚拟机)。
从游戏程序员的角度看,它的大小限制让它比CDC更具挑战性。
CLDC同时还是用于开发绘图工具应JE{=j程序的配置。
目前许多支持1J2,h1E技术的手机便是个运j亍小应用程序的小型无线设备的示例川。
连接设备配置(CDO:与虚拟机CV;I一起使用,用于要求内存超过2兆的32位体系结构。
互联网电视机顶盒和某些PDA便是这类设备的一个示例I71,目前,己上市的手机跨越CLDC和cDC两个配置舰范,有些智能手机的硬件配置甚至超越了CDC规范。
第一二章12ME平台分析的移动设备从手机到PDA,而这些移动设备的硬件差异也比较的大。
要作为可移植的移动游戏开发平台,J2ME存在许多不足之处。
2.2J2ME平台缺陷从上面论述可以看出,处理芯片、显示尺寸等硬件因素造成了手机设备具自‘较大的差异性。
显示尺寸的不同将使应用程序无法通用在不同设备中,比如说某些功能菜单显示1i了.某些功能按钮显示不了等等。
囚此,这一差异性使得丌发人员不得不针对具体的各种手持设备进行开发,在一种设备中调试通过的程序,还要在另外一种设备中进行调试。
如果希望应用程序具备更好的通用性,那么自然要研究更多的手机,这样就造成了开发成本的提高[81。
无论是移动游戏电好,普通的J2ME应用程序MIDLet也好,它可能运行在KVMtCLBC配置)上,或CVM(CDC配置)上,而这两个平台对程序丌发有不毕南理工大学硕士学位论文同的要求。
T1_J2ME平台结构及平台搭建
1.1移动开发基础1.1.1 移动设备操作系统(1)Symbian目前Symbian的最新版本为Symbian9.0(2)Windows Mobile最新版本为2005年5月发布的Windows Mobile 5.0(3)Palm OS使用Palm OS的代表性的Palm m505、Palm m500、Palm III、Handspring Tero 90(4)Linux典型代表是摩托罗拉在智能手机A 760和三星i519 等1.2 什么是J2ME实际上是一系列规范的集合,由Java Community Process (Java社区组织,简称JCP)制定并发布相关的Java规范请求(Java Specification Request,简称JSR),各个厂商按照规范在自己的产品上进行实现,但是必须要通过TCK(Technical Compatible Kit,兼容性测试包)测试来确保兼容性。
目前Java2平台已经正式划分为3个部分:J2S E—Java 2 平台标准版(Java 2 Platform Standard Edition),其被使用范围最广,用于我们通常使用的台式机桌面应用。
J2E E—Java 2平台企业版(Java 2 Platform EnterPrise Edition),被广泛应用于服务器上,包括JSP、Servlet、EJB以及目前炙手可热的Web Service等技术。
J2M E—Java 2平台微型版(Java 2 Platform Micro Edition),被使用在资源受限,小型消费性电子设备上,如电视机顶盒、无线电话和掌上电脑等。
1.3 J2ME的平台结构。
J2ME定义的移动Java平台分为4层:主机操作系统配置简表厂商可选包1.3.1 配置配置规范定义了硬件所必须具备的能力,例如硬件至少具备多少ROM(Read Only Memory只读存储器)、RAM(随机存储器random access memory),CPU的时钟周期最少应该是多少,连接网络时频宽至少要多宽。
《J2ME程序设计》课程教学大纲
《J2ME程序设计》课程教学大纲一、课程基本情况开课单位:计算机与信息工程系课程编码:适用专业:软件修课方式:必须总学时:68学时考核方式:考试教材:《J2ME移动应用开发》郝玉龙北方交通大学出版社 2006.9教学参考书:《精通J2ME无线编程》,林胜利,中国铁道出版社,2004年二、课程的性质、任务和目的本课程是计算机软件专业的一门专业基础课程,重在培养学生的移动设备实践开发能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念保持同步。
通过本课程学习,学生应该了解并掌握J2ME技术基础,CLDC与MIDP基本概念,熟练应用J2ME技术开发基于移动设备的应用系统或游戏系统,并了解移动增值业务系统的开发基础。
学习本课程学生应达到如下要求或能力:1、掌握J2ME技术基础以及CLDC与MIDP的基本概念2、熟练应用J2ME技术编写简单应用软件系统3、熟练应用J2ME技术编写简单游戏4、了解无线增值业务(如SMS)应用系统的开发三、课程的主要内容和学时分配(一) 主要内容第1章 J2ME概述 2学时1.1 J2ME简介1.2 J2ME架构1.3 技术规范第2章 Hello World 2+2学时2.1 第一个实例2.2 J2ME程序开发流程2.3 代码解释2.4 JBuilder 9的配置2.5 使用JBuilder 9开发Hello World第3章 MIDlet和MIDlet Suite 4+2学时3.1 MIDlet概述3.2 MIDlet的打包3.3 MIDlet的生命周期3.4 MIDlet的安全管理第4章 MIDP用户界面——高级API 6+2学时4.1 MIDP用户界面概述4.2 高级API详述4.3 开发实用程序第5章 MIDP用户界面库——底层API 8+4学时5.1 Canvas类概述5.2 设备及屏幕属性5.3 基本作图属性设置5.4 基本图形操作5.5 剪切区操作5.6 输入处理5.7 多线程5.8 定制Item5.9 开发实用程序第6章 MIDP游戏编程 6+4学时 6.1 游戏API概述6.2 GameCanvas类6.3 LayerManager和Layer6.4 Sprite6.5 TiledLayer6.6 游戏设计第7章 MIDP网络编程 8+4学时 7.1 通用连接框架7.2 输入输出流7.3 HTTP协议7.4 使用HttpConnection编程7.5 Socket编程7.6 无线消息传递7.7 PushRegistry7.8 网络安全和MIDlet的签名认证第8章永久存储 4+2学时 8.1 永久存储概述8.2 RMS基础8.3 账务管理程序附录A J2ME开发基本环境设置 2+2学时 A.1 获取软件包A.2 软件包安装与配置A.3 J2ME网络资源附录B CLDC概述 2+2学时 B.1 CLDC的目标和功能B.2 CLDC 1.1与CLDC 1.0的区别B.3 CLDC的安全要求B.4 CLDC中虚拟机的变化B.5 CLDC中的类库附录C MIDP概述 2+2学时 C.1 MIDP的范围和软硬件要求C.2 MIDP的包概述C.3 MIDP的部署-Over-The-Air (OTA)C.4 MIDP程序的效率Borland认证课程介绍(二) 学时分配四、课程教学基本要求及重点1.J2ME概述了解J2ME的基本概念,开发架构以及采用的规范,掌握J2ME开发所需基本条件以及开发环境所需软件基础。
郭克华J2ME移动开发实战教学视频讲义02
些初始化代码写在构造函数或 startApp 里面,这个策略将在后面的程序中体现出来。
手机模拟器的上方,有一个
菜单,如图所示:
x3x
J2ME 移动开发实战教程
在
菜单中选择“暂停”,会发现控制台打印如下信息:
再在
菜单中点击“恢复”,控制台又会打印:
最后,你可以在
菜单中选择“退出”来关掉模拟器,也可以点击模拟器右方的
【2-1】详解 MIDlet 结构
〖实例需求〗
javax.microedition.midlet 中只包含一个 MIDlet 类,MIDlet(Mobile Information Devices let)是手机上运行的 J2ME 应用程序,即移动信息设备小程序。理论上讲,手机应用程序都
J2ME 移动开发实战教程
“手机电源开关”按钮关掉模拟器。
值 得 一 提 的 是 , 调 用 notifyPaused 函 数 可 以 手 工 让 程 序 进 入 暂 停 状 态 ; 调 用
notifyDestroyed 函数可以手工让程序销毁。
读者可以自行进行测试。
综上所述,MIDlet 的生命周期如图 2-1 所示:
构造函数(自动)
2:三个普通函数:
这些函数体现了 MIDlet 的生命周期: 1:当 MIDlet 运行时,startApp 函数会自动调用,应用程序进入运行(Active)状态,此 时程序正在运行中; 2:在 MIDlet 运行时,你可以通过一些手段让 MIDlet 暂停,此时,pauseApp 函数自 动调用,让程序进入暂停(Paused)状态; 3:当 MIDlet 消亡时,自动调用 destroyApp 函数。 以上三个函数都是自动调用的。接下来的两个函数可以人为调用: 1:人为调用 notifyPaused 函数,MIDlet 立刻进入暂停(Paused)状态,MIDlet 持有的所 有资源暂时被释放,但它随时可能被运行; 2:人为调用 notifyDestroyed 函数,MIDlet 立刻进入销毁(Destroyed)状态,MIDlet 被
J2me-lecture02
MIDlet基础 基础
JAD属性的说明 属性的说明
如果JAR manifest 未提供下列属性,JAD 描述文件中则 必须提供:
MIDlet-<n> — 略 MicroEdition-Profile — 略 MicroEdition-Configuration — 略
MIDlet基础 基础
JAD属性的说明 属性的说明
mainifest.mf
MIDlet-1: HelloWorld 01, HelloWorld .png, HelloWorld MIDlet-2: HelloWorld 02, HelloWorld 02.png, HelloWorld 02 MIDlet-Name: HelloWorld MIDlet-Version: 1.0 MIDlet-Vendor: Unknown MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1
MIDlet基础 基础
�
MANIFEST文件— 用来描述MIDlet Suite的配置,如:名称,版本,开发商等; JAD 描述文件为纯文本文件,文件扩展名为.mf. JAD文件 JAD 描述文件为纯文本文件,文件扩展名为.jad; 说明具体的运行配置,以及Jar文件所在的位置的信息.
MIDlet基础 基础
Example of MANIFEST文件 文件
MIDlet基础 基础
MANIFEST 属性的说明
可选属性: 可选属性
7.
8.
9.
10.
11.
MIDlet-Push-<n> — 与javax.microedition.io.PushRegistry 有关, 详见Push 章. MIDlet-Install-Notify —向此URL 发送一个POST 请求,报告此 MIDlet Suite的安装状况,比如是全新安装还是升级安装. MIDlet-Delete-Notify — 向此URL 发送一个POST 请求,报告此 MIDlet Suite的删除状况. MIDlet-Delete-Confirm — 当用户选择删除MIDlet Suite 时,将给 予用户的提示信息. 应用程序专用的任何属性 — 不以"MIDlet-"或"MicroEdition-"开 头
基于J2ME的移动电子海图显示系统开发
Co n ce L mi d n e td i t De ie e vc Co f u ai n n g rt i o
阶段性研 究成果之一
中 图 分 类号 :6 2 4 文 献标 识码 : U9. A 收 录 日期 :0 1年 1 21 0月 2 6日
概念。Po l rfe是架 构在 C ni rt n之上 i of ua o g i
的规格 , 为了要更 明确地区分出各种 嵌 是
码) ,由 q a k y在海 图瓦片库 中检索到 ude
到 查询 的应 用 . 源自J M 是 为 机 顶 盒 、 动 电话 和 P A 入式装 置上 Jv 程 序该如何开发 以及 它 2E 移 D aa
o— 手机 已经不再仅仅是一种通信工具 , 而是 入 式 装 置 利 用 C n 集 通 信 、 乐 、 公 等 于 一 体 的 移 动 电 子 f uao 的 概 念 区 娱 办 i r in g t
Jv Pa o . i d i  ̄ M ) aa l r M c E io 2 E 2 t m f m tn
( ) 二 服务器端设 计。 服务器端 的设计
主要是解决处理来 自客户 端的访问请求 ,
< sr t— o f > ]t s e n g u i
这样 , 在应用程序 中就可 以直接引用
( ) 一 客户端设计 。 客户端需要解决的 检索海 图瓦片 , 并向客户端反馈 响应 。主 cat hr数据源, 获取 与数据库的连接。 主要 问题是客户端程序 与应用 服务器 之 要的组成部 分有数据库 连接池 的配置和 检索海 图瓦片并 向客户端做 出反馈
于J2ME的个人信息管理系统的开发
息管 理 工作 的效 率 , 证 信 息 的准确 和 规 范 。 少 相关 保 减 人员 的 工作 量 。 使个 人 管 理 工作 真 正做 到科 学 、 理 的 合 规划 , 系统 、 高效 的实 施 。 进 入 2 世 纪Байду номын сангаас以来 . 所 不 在 的计 算 将 打破 传 统 意 1 无 义 上 的 计算 机 概 念 : 用 更 方便 、 带 更 方便 、 能 更 使 携 功 多样 化 的各 种 具 有计 算 机功 能 的设 备 大 量 出现 .并 且 在需 要 时 .可 以 随 时通 过无 线 方式 连 接 到移 动数 据 通
I r aeD slydsly i t i p i a; pv a p p bi Se o ul n0 c
(i l =Dsl . t. l (l l d p y i a g D p yl sa p ye 培 a t ;
p bi vi tr p 0{ u l odaat p c A
1 6
福
建 电
脑 个 人信 息管 理 界 面如 图 2 :
21 0 1年第 1 2期
T xB xt e eto(He oMI lt, H l D I” 2 6 O; eto =n wT xB x” l De” ” el MI P , 5 , ) l o
dslysturn(; i a . C ret) p e t
用软 件 。 目的是 为 了便 于 记 录 、 踪和 管理 各种 个人 T okt 其 跟 o li这个 新 的环 境就 可 以满 足我 们 的需 要 了 。然后 信息 。一个 功 能完 整 、 作 简便 、 面 友好 的个 人 信 息 我们 编 写一 个 最简 单 的程 序用 来验 证 这个 环 境是 否 可 操 界
《手持移动设备J2ME应用开发》第4章
4.1.1Display类的常用函数
Displayable中MIDP1.0就定义的函数有: boolean isShown() void addCommand(Command cmd) void removeCommand(Command cmd) void setCommandListener(CommandListener l) Displayable中MIDP2.0新添加的函数有: String getTitle() public void setTitle(String s) Ticker getTicker() public void setTicker(Ticker ticker) public int getWidth() public int getHeight() protected void sizeChanged(int w,int h)
处理高级别事件
所谓的高级别事件,就是指在处理高级界面上的控件时候 需要处理的事件。每一个高级界面的Dislayable对象都有 一个相应监听器,该监听器用来监听控件是否已经被触发 了相关的事件。本小节仅仅介绍Command对象的事件开 发,其他控件的事件开发将结合相关小节的具体内容再进 行详细介绍。 要处理按钮高级别事件,程序必须继承一个命令监听器接 口类CommandListener类,具体操作如下所示: public class HelloWorld extends MIDlet implements CommandListener{ }
<MTSE1.0>
按钮、菜单编程基础
在介绍事件开发之前首先了解基本的Command(命令)编 程。Midlet的javax.Microedition.lcdui包提供了一个命令 Command类,用来进行屏幕上按钮的相关开发, Command对象既可以显示为一个与键盘特定键相关联的 按钮,又可以作为屏幕菜单的一个菜单项。由于手机程序 功能有限,因此并没有提供像Windwos程序一样的菜单控 件,而是当屏幕需要显示多个按钮的时候,自动生成一个 菜单供用户选择使用。 创建一个新的Command对象需要调用Command对象的构 造函数,构造函数的的语法如 下所示: new Command(Labels,Type,Priority);
J2ME程序开发全方位基础讲解汇总
一、J2M E中需要的J a v a基础知识现在有大部分人,都是从零开始学J2M E的,学习J2M E的时候,总是从J a v a 基础开始学习,而且现在讲J a v a基础的书籍中都是以J2S E来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2M E中用到的和不需要的J a v a基础知识做一个简单的说明:J2M E中使用到的J a v a基础知识:1、J a v a语法基础:包括基本数据类型、关键字、运算符等等2、面向对象的思想:类和对象的概念,继承和多态等等。
3、异常处理4、多线程J2M E中没有用到的J a v a基础知识:1、J D K中j a v a c和j a v a命令的使用2、J a v a基础中的很多类在J2M E中没有,或者类中的方法做了大量的精简。
所以建议在J2M E中熟悉类库。
3、A p p l e t、A W T、S w i n g这些知识在J2M E中根本使用不到。
简单说这么多,希望学J2M E的朋友们能少走一些弯路,不足之处希望大家积极指正和补充。
二、J2M E中暂时无法完成的功能列一些J2M E中暂时无法完成的功能,希望大家能积极补充:1、在手机中不更改代码实现移植,主要指游戏。
2、动态修改按钮文字。
3、在C a n v a s上接受中文输入。
4、操作本地资源、例如地址本、已收短信息等。
5、制作破坏性的手机病毒。
6、其他等待大家来补充。
三、J2M E的跨平台性J2M E技术源于J a v a,所以也具有J V M的优势,可以在支持J a v a的平台上进行移植,但是现在的J2M E技术在跨平台上却做的很糟糕,我们来简单看一下原因:1、手机的屏幕尺寸不一:这个主要在界面制作上。
如果你使用的是高级用户界面,比如你做的是应用开发或者用户登陆、用户注册这样的通用功能时,一般没有什么问题。
如果你使用的是低级用户界面,比如你做的是游戏,那么你就需要考虑这个问题了。
2、厂商的扩展A P I不统一:例如N o k i a的扩展A P I类库U I系列,在别的手机上或者没有实现,或者包名不同等等。
J2ME MIDP v2.0 开发综合实例 - 闻怡洋
J2ME MIDP v2.0 开发综合实例作者:闻怡洋 2004/02/08 /版权说明:本文版权属于作者闻怡洋,在未经过作者允许的情况下禁止以下行为:●在互联网上转载本文。
●在任何盈利性杂志或是盈利性行为中使用本文。
关键字:J2ME MIDP 实例开发编程 MIDlet WTK综合实例文章目录第 1 章预备知识21.1《J2ME MIDP 1.0/2.0 无线设备编程指南》参考书介绍21.2开发工具介绍21.3SunONE Studio 4 ME 的配置2第 2 章综合实例介绍32.1实例讲解思路32.2功能介绍32.3界面介绍3第 3 章程序设计53.1界面间的转换53.2类静态图53.3程序启动序列图73.4通过 WEB 下载产品清单序列图7第 4 章程序实现74.1准备工作84.2AboutBox 类的实现104.3ProductDb 类的实现114.4ProductLoader 类的实现144.5HttpLoadForm 类的实现174.6ListForm 类的实现204.7AntiJPMainForm 类的实现224.8AntiJP 类的实现244.9程序的执行26第 5 章结束语27第 1 章预备知识1.1《J2ME MIDP 1.0/2.0 无线设备编程指南》参考书介绍我编写了一本名为《J2ME MIDP 1.0/2.0 无线设备编程指南》的参考书(此参考书即将由北大出版社出版)。
参考书的内容集中在利用MIDP在CLDC设备上进行开发方面,内容覆盖了开发环境的建立、界面开发、多媒体播放、数据库存储、网络开发。
参考书的内容包括了:●WTK 开发包的使用,也包括MIDP 开发的其他工具和其他手机厂商提供的开发包介绍。
●程序基本开发知识,介绍MIDlet 程序的生存周期,如何使用菜单命令。
●低级界面开发与作图知识,MIDP v2.0 对此部分有较大改进。
●高级界面开发知识,MIDP v2.0 对此部分有较大改进。
J2ME浏览器开发流程
J2ME 浏览器的流程按照老的习惯,我们首先都要分析我们需要什么,有什么用,和怎么去实现它J2ME浏览器主要功能就是让大家能通过现有的无限网络,实现资源的共享和传播。
3G 4G世代的到来更为我们开发各种快捷高效的浏览器带来了动力。
这也是我们开发J2ME 浏览器的潜在的市场。
1,开发JA V A 的程序,我们先还去去设置下我的电脑属性中的环境变量。
具体操作略。
2.网页浏览器,包括五个部分,菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。
1菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。
主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。
2。
.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。
3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。
4.浏览器选项卡模块实现在同一个窗体中显示多个页面。
5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。
需求分析本模块要实现的功能模块包括:菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。
1.菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。
主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。
2.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。
3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。
4.浏览器选项卡模块实现在同一个窗体中显示多个页面。
5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。
Java进阶篇:RMS从入门到精通系列之一
Record Management System是J2ME的一个重要的子系统,目的是实现应用程序本地数据的持久性存储。
目前支持文件系统的移动信息设备还有限,因此Record Management System是J2ME开发人员实现本地数据存储的首选途径。
本文的目的就是全面的介绍Record Management System的知识。
顾名思义Record Management System是管理数据的系统,Record是系统中最重要的实体。
在移动设备存储空间存储的并不是字段,而是字节数组。
Mobile Infomation Device Profile(MIDP)规范中并没有规定什么样的数据才能存储为记录,事实上记录是任何可以被字节数组表示的数据,例如图片、文本等。
Record Management System的职责是存储和唯一标识记录,而表示数据的任务是由应用程序来完成的,因此J2ME的开发人员往往要花费更多的精力来处理存储空间中的数据。
这样做的目的是简化MIDP的实现,使得J2ME的子系统尽量的小巧、灵活。
毕竟移动信息设备的存储空间和处理器的能力都有限。
Record Store是一系列记录的有序集合,记录是不能单独存在的,必须属于Record Store。
Record Store保证记录的读写操作都是原子的,数据不会被破坏。
在API中Record Store是由javax.microedition.rms.RecordStore实现的,关于RecordStore的具体操作在接下来的文章中会有详细的介绍。
MIDP规范中说明移动信息设备要提供至少8K的非易失性存储空间给应用程序来实现数据的持久性存储。
但是不同的设备提供的空间并不相同。
如果MIDlet suite使用了Record Management System,那么它必须在MANIFEST文件和JAD文件中通过设置MIDlet-Data-Size来说明它所需要的最小的数据存储空间,单位是字节,例如MIDlet-Data-Size:8192。
Motorola J2ME SDK 说明书
B Motorola J2ME SDK 安裝Motorola J2ME SDK Motorola J2ME SDK 目錄結構 Motorola J2ME SDK 內含的輔助開發工具 撰寫並編譯MIDlet 執行MIDlet 對MIDlet 除錯 Motorola J2ME SDK 對中文的支援B-2本附錄將為大家介紹如何使用使用命令列模式與批次檔,加上Motorola J2ME SDK 來開發Motorola iDEN、i85s 手機程式。
由於台灣在資訊通訊基礎建設方面無法滿足這兩款手機的需求,因此這兩款手機並沒有在台灣發售的打算。
但是有鑒於可能會有開發這兩款手機的需求,因此特別將本篇納入,僅供需要的人參考。
安裝Motorola J2ME SDKM otorola J2ME SDK 無法單獨取得,而是附在CodeWarrior for Java 之中。
只要您安裝了CodeWarrior for Java,就很自然地也安裝了Motorola J2ME SDK。
Motorola J2ME SDK 位於【CodeWarrior for Java 安裝目錄】\Java_Support\MotoSDK\之下。
Motorola J2ME SDK 目錄結構M otorola J2ME SDK 之後,其目錄結構如下圖:MotoS DIK附錄B Motorola J2ME SDKB-3B in 目錄之下含有使用Java 所撰寫的組態工具、除錯代理人,以及模擬器。
也含有預先審核器及模擬器啟動器。
而Bin\resources 之中放的都是目的平台的控制檔與影像檔。
BinBin \resourcesd emo 目錄下放置了範例程式的原始碼與其二進位檔。
De mo\midle tsd ocs 目錄下放置了使用說明書以及類別函式庫參考文件。
docsDocs \AP IB-4s criptsMotorola J2ME SDK 之中內附許多有趣的範例,它們位於demo/midlets/目錄底下。
J2ME搭建
(4)正确完成了以上步骤,可以说这个平台已经搭建完毕了,有些菜鸟可能会问这个j2me_wireless_toolkit是干什么的,其实它的作用就和JB
UILDER差不多,用来编译你写的JAVA程序,但它本身不提供编辑等功能,所以你得用记事本或其他文本编辑软件写程序,使用方法见附录4
21%7C%E7%8A%E2%1D%B6LZ%E2%F1%F
B0%E3%7B%1F%F6%E3%9A%3E%E4%1D%
2B%FD%FB%CD%5C%D6%2BO%FB%F6%89
%7F%D8j%3E%96%8C%98L%C0%03%15%
86%D3%FEt%81%1Bf%8F%DD%B6%02%D
注册信息:
用户名:allyfeng
序列号:PLkvtJRKbzplqIXRqyb0czF969w=
附录2:注册机使用方法
这里我推荐使用JBLicenseGenW.exe
使用简单,装好JBUILDER后使用,可以注册J7,J8。先生成注册码,在SAVE一下就行。
对于那些先用试用版注册码,后来再替换的方法我没试过。
载入该文件便可。
注册码:
-----BEGIN BLOCK-----
%C5%17%DE%9B%00%00%02I%DE%DAL%
2C%B2%F7%9DE%80C5%A6%E5%AF%7C%
A7%06%05%D1%B1%B5%0A%955L%87%E
5%E6%5B%8C%0D%01%A9%EE%EB-%A9%
来你就可以开发了。
郭克华J2ME移动开发实战教学视频讲义24
郭克华J2ME移动开发实战教学视频讲义第24章案例4:赛车游戏郭克华所有作品由ChinaSEI独家发布。
网址为:对应视频可在上下载。
本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错,请多包涵。
在不盈利的情况下,欢迎免费传播。
版权所有.郭克华本讲义经过修正、扩充,连同视频,由清华大学出版社出版。
详细可查询/49067,/product.aspx?product_id=20742080第24章案例4:赛车游戏【本章导读语】前面的篇幅中,我们讲解了GameAPI中的一些重要知识,主要阐述了基于游戏画布开发过程中的若干问题。
本章我们将利用赛车游戏,来深入探讨Sprite以及游戏图层的应用。
读者千万要注意,我们的游戏案例比实际项目简单,主要是为了让大家对学过的知识进行复习,并能够灵活的运用知识点,达到举一反三的目的。
关于游戏项目开发,另有专著论述。
【24-1】赛车游戏的实例需求在本章中,我们将制作一个赛车游戏系统,该系统由1个界面组成。
系统运行,出现如下界面,如图24-1所示:图24-1 初始界面该界面右下角有一个按钮:开始游戏。
选择这个命令按钮,出现如图24-2的界面:J2ME移动开发实战教程图24-2 游戏界面该游戏具有如下功能:1:用户操作的车是屏幕中间的车(称为用户车),可以用“上下左右”键让其在屏幕中移动。
开始时,用户车在屏幕正中央。
初始分数是100分。
用户车对应的文件名为mycar.gif,效果如图24-3所示:图24-3 用户操作的车对手车辆文件名为:enemy.gif如图24-4所示:图24-4 对手车辆外观2:在赛车时,用户车可能会遇到对手的车辆,对手车辆随机出现。
如果用户车辆和对手车辆相撞,则扣1分。
分数在屏幕上方显示出来。
但是,用户可以用“上下左右”键来避开对手车。
3:在屏幕右下方有一个命令按钮:暂停游戏。
点击按钮,暂停游戏;命令按钮变为:开始游戏,如果再点击按钮,游戏继续进行。
(J2ME入门一)Eclipse配置J2ME开发环境
第一步:Java环境配置1、安装JDK从/下载j2sdk-1_4_2_07-windows-i586-p.exe(我下的是这个,现在应该有新的版本了)安装到指定路径,如:c:\j2sdk-1_4_2_07配置环境变量:(我的电脑->属性(右键)->高级->环境变量->系统变量中配置环境变量)java_home: c:\j2sdk-1_4_2_07path: %java_home%\bin;(可以在path值的最前面加) CLASSPATH: .;%java_home%\lib\tools.jar;%java_home%\lib\dt.jar2、验证JDK是否配置成功在开始->运行->cmd里面写入java和javac分别进行测试看是否成功。
或者写一小的java程序进行测试。
第二步:安装eclipse从/下载eclipse-SDK-3.1-win32.zip和NLpack1-eclipse-SDK-3.1.1a-win32.zip(语言包,可以汉化)解压缩eclipse-SDK-3.1-win32.zip即可解压缩NLpack1-eclipse-SDK-3.1.1a-win32.zip,会得到features和plugins两个文件夹,把里面的文件分别拷贝到eclipse中相应的目录下即可。
第三步:安装J2ME SDK(WTK)WTK提供了运行J2ME应用程序所需要的库以及模拟器等,通过它可以进行程序的编译、校验、运行。
从/下载j2me_wireless_toolkit-2_2-windows.exe安装到指定路径,如:C:\WTK22第四步:安装用Eclipse开发J2ME程序的插件用Eclipse开发J2ME程序的插件是eclipseme,可以从/下载eclipseme.feature_1.5.0_site.zip打开eclipse,打开菜单help(帮助)->sofeware updates(软件更新)->find and install…(查找并安装)打开的界面如下图:点next(下一步),从new archived site…(新建已归档的站点)搜索到要安装的eclipseme.feature_1.5.0_site.zip打开的界面如下图:点finish(完成)。
13-J2ME-Java程序设计与实践教程(第2版)-杨丽萍-清华大学出版社
Java程序设计与实践教程—清华大学出版社
当startApp()方法被调用的时候 MIDlet进入active状态, 即运行状态。
在 active状态调用 destroyApp(boolean unconditional) 或pauseApp()方法可以使得 MIDlet进入destroyed或者 pause状态。
destroyApp(boolean unconditional)方法被调用时, AMS通知 MIDlet进入destroyed状态。
MIDlet三个状态:pause、active和 destroyed
Java程序设计与实践教程—清华大学出版社
13.1.2 MIDlet程序的生命周期
图13-2 MIDlet状态图
Java程序设计与实践教程—清华大学出版社
13.1.2 MIDlet程序的生命周期
启动MIDlet时,应用管理软件会先创建一个MIDlet实例并 使其处于pause状态
Java程序设计与实践教程—清华大学出版社
13.1.1 J2ME简介
2.J2ME体系结构
Java虚拟机 配置层(CLDC或CDC) 简表(MIDP)
图13-1 J2ME体系结构框图
Java程序设计与实践教程—清华大学出版社
13.1.1 J2ME简介
2.J2ME体系结构 KVM (Kilobyte virtual machine ):J2ME应用程序虚拟机 配置层(CLDC或CDC):KVM和Java类库的最小集合。 CLDC(Connected Limited Devices Configuration,有限连 接设备配置):第一个面向小型设备的Java应用开发规范, J2ME核心配置之一,可支持一个或多个profile。其目标为面向 小型的、网络连接速度慢、能源有限且资源有限的设备,如手 机,PDA等。 CDC(Connected Devices Configuration,连接设备配置): 主要用于运算能力相对较佳、电力供应相对充足的嵌入式装置 (如冷气机、电冰箱、电视机机顶盒)。 移动信息设备简表MIDP(Mobile Information Device Profile): 定义于CLDC上层, 补充了CLDC配置,并且提供应用程序语义和控 件、用户界面、持久存储器、网络和用于移动电话的计时器、双 通道呼叫器和其他无线电设备。MIDP应用程序被叫做MIDlet,所 有的MIDlet都包含扩展类javax.Microedition.midlet的主要类。
用手机入门J2ME
[J2ME预备知识]我会的东西也不多。
但我会把我会的东西教给你。
如果有说的不好的地方,也请高手指出,不吝赐教。
万分感谢。
J2ME,一般的书上都会有一大堆的名词,比如1995年sun公司创建的java语言的三大分支之一,适用于嵌入式设备,J2ME配置分为CDC和CLDC,CLDC上层的重要简表是MIDP 等等。
其实我们这里学习的J2ME简单的来说,就是手机jar软件。
比如QQ,UC浏览器,Classtraslator,Classeditor,minicommander等等。
不过对于UC和QQ这种大型软件,是公司开发的。
个人开发周期太长了。
通常我们改软,就是在别人制作好的软件的基础上修改。
(改软最高技术个人觉得是,电脑端是halo,手机端是jamsin,Disjamsin的字节码,学习JVM代码)而J2ME就是制作软件。
在新手阶段,CLDC,MIDP,Java历史,发展等等我们都不用了解太多。
我们可以从简单的源码开始学习。
J2ME的学习不象一般的改软,几天之内就能学会一种改软方法。
J2ME的学习,通常以月为单位。
一,两个月才会有成效。
同时学习J2ME也很苦。
不象大家想的那样,挥手就可以做出一个软件。
很多时候调试一个软件的一个很小的bug都得花上很长的时间。
J2ME大部分时间不是在开发软件,而是在调试软件。
也只有在调试时,发现错误,才能提高我们。
所以是否学习J2ME希望大家慎重的考虑。
如果兴趣不是很大,或者不能坚持下去,建议不要学。
因为花了大量的时间,结果只会一点,半途而废,还不如不学。
其实不会有时也是一种幸福。
还有,总是听别人说,我英语不好,不适合学习J2ME。
我可以很明确的告诉大家,在新手阶段,以及编程爱好者阶段,J2ME的开发和英语一点关系都没有。
到是和数学的逻辑思维有关系。
当然,如果后期想做个合格的程序开发员,英语还是得补的。
毕竟“出来混,迟早都要还”。
当然,后期的英语,以及基础的知识由大家自己补,这系列教程都是入门教程,只是带大家入门的。
J2ME MIDP手机游戏开发第5章 音频与视频处理
5.2 以独占方式播放声音
5.2.1 知识准备:了解Mobile Media API类
Manager createPlayer ( 2 6 ) close setLoopCount 方法 方法 方法 Mobile Media API (MMAPI) 为多媒体开发提供了一个强大,可扩 (管理器) Manager类是Media API接口中最重要的类,Manager类用于创建各 ① 充以及简单的接口。他有一套规范的播放和录制 语法: public void static close(); setLoopCount Player createPlayer(String (int count); locator) audio或 video 种不同类型的 Player 对象, Player 对象用于播放音频。 Player 创建 提供 语法: ② 说明:关闭播放器释放资源。 说明:设置播放循环次数。 public public static static Player Player createPlayer(java.io.InputStream createPlayer(String locator) 的接口。 接口用来播放各类格式饿多媒体内容。 Controllable 接口用于 说明:该方法用于从指定的位置获取数据,创建一个 ( 参数说明: 3stream,String ) deallocate count 为播放次数,当 方法 type) count 为-1接口由于集成了 时,为无穷循环播放。 Player对象 Mobile Media API 接口由两个包组成,分别: 协助对象获取一个 Control接口, Player 语法: ( 7实例。 ) start public void方法 deallocate static Player (); javax.microedition.media 包和 Controllable 接口,因此可以通过条用继承自 Controllable 接 Data Player Control 参数: 说明:释放被其占用的稀有资源,例如声音设备。 语法: createPlayer(java.io.InputStream locator void start 是位置字符串。 (); stream,String type) (数据源) (播放器) (控制器) javax.microedition.media.control 包。 口的 getControl ()方法来获取自己的 Control接口,以便用来 返回值:一个 说明:该方法用于从一个输入流创建一个 ( 说明:声音开始播放。 4控制媒体播放。 ) prefetch Player 方法对象实例。 Player 对象实例。 Media 包中包含 Control 接口、Controllable 接口、 Player接口、 异常: 参数: 语法: ( 8PlayerLinstener ) stop NullPointerException stream void 方法 prefetch 是媒体数据的输入流。 ();Manager 当locator type 为空时抛出此异常 为数据源类型。 接口和 类。 Control 包中包含了所有 Control 接口是一个用来协助 Player 的接口,用于控制音调和音量。 返回值:一个 说明:获取稀有资源,例如声音设备,尽量减少播放延时。 语法: void MedilaException stop Player (); 对象实例。 从指定的数据源位置无法创建 Player 实 控制 接口。 的 Control 接口、 ToneControl 接口和VolumeControl 他有两个子接口,分别是 ToneControl 接口和VolumeControl 接 提供 (5例,抛出此异常。 说明:声音停止播放。 ) realize 方法 接口用于控制序列音的播放,VolumeControl 口。 ToneControl java.io.IOException 语法: void realize与指定数据源连接出现问题,抛出此异常。 (); 接口用于控制播放的音量。 图5-1 Mobile Media API 体系结构图 SecurityException 未获得创建Player实例的安全许可,抛出此 说明:获取播放信息,但是并不获取播放资源。 异常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Profile-Personal
在当前的规范需求下,
Personal简表提供下 一代 PersonalJava环境。这个简表允诺, 提供互联网连接性和 Web保真度以及一个能 够运行 Java applets的 GUI。
Profile-kjava
kjava类是最初提供的一个供测试用的类,在 Palm 设备上运行早期的 KVM和配置版本。 它们将被 PDA简表代替。 kjava类扩展了 CLDC并且提供一 个图形用户接口、 Palm数据库访问,简单集合类 和一个三角法计算器。 kjava应用程序被称作 spotlet。 事实上,一个应用 程序可以由很多 spotlet组成,但是在任何时间只 有一个 spotlet可以显示在 Palm屏幕上。
CDC & CLDC
此图描述了 CDC 和 CLDC 之间的关系。同时该图也揭示了它们与整个 J2SE API 的关系。 CDC 是加上一些额外类的 J2SE 的子集。而 CLDC 是 CDC 的子集。
KVM
KVM是用于 J2ME平台最小的虚拟机,并且是用于CLDC 配置的虚拟机。可是J2ME应用程序并不一定非要使用 KVM, J2ME技术可以使用任何虚拟机,不过至少应当有 KVM这样 的功能。 为了满足基于KVM的设备一般只有狭小的内存空间和有限的 处理能力的事实, KVM使用 C编写 (它不是现有的VM的改 进)。 KVM是模块化的,它是由模块构建的,当某个模块实现了预 先设定的目标后,就可以很容易地把这一模块卸载。 可选的 某块包括: 大的数据类型 ( long、 float和 double ),多维数 组、类文件验证等。 Kilo Virtual Machine来源于Sun研究院的"Spotless"工程
profile
profile定义了一整套J2ME应用程序可用的
API类而且专门针对给定配置创建。 Sun推出了2种可用的参考J2ME profile: 基础(Foundation) 移动信息设备profileMIDP(Mobile information Device Profile)
Profile-Foundation
主要用于CDC配置,因而其虚拟机几乎等同于标准 的虚拟机。这意味着,使用基础profile的开发人员 必须访问完整实现的J2SE特性集。 其任务是担任一个基础简表,便于以后开发出来的 提供图形用户接口、 网络等功能的简表附着在它之 上。 除了用于基础简表, 其还提供完整网络的支 持,不管有没有使用图形用户接口。
CVM
根据 CDC规范,基层虚拟机必须提供实现完整的 Java虚拟机的支持 。 如果虚拟机实现有一个用于 激活设备的本地方法的界面,它必须兼容 JNI 1.1 版本。 如果虚拟机实现有一个调试界面,它必须兼 容 Java虚拟机调试界面 ( JVMDI )规范。 如果虚拟 机有一个简表界面,它必须兼容 Java虚拟机简表 界面 ( JVMPI )规范。 可见,为了实现这些功能, CDC肯定会变得很大,就不能称其为K虚拟机了, 因此,我们通常称用于CDC的虚拟机为 CVM,这 里的 C代表 compact、connected、consumer。
问题的产生
从表面上看,这样做对那些希望提升应用程序的移 动计算能力的开发者来说是一件好事。 然而,“移动设备”这个术语却涵盖了相当广泛的 领域,包括传统的个人数字助理(PDA)、所谓的 智能手机、传呼机乃至GPS单元等,它们都具有不 同的硬件配置。 同一供应商的两种设备之间都还存在兼容性问题, 更别说不同供应商的设备产品了
KVM补充
KVM的本地界面以轻便性为原则构建,所以在KVM中任务切换不依赖硬件产生 的记时器中断,因此在这种意思上来说不是抢先式。任务切换发生在虚拟机执行 了一个预设编号的字节码之后。 并且, KVM的无用单元收集利用一个标记清扫 (mark and sweep)算法来实现无用单元释放。 因此,对象引用是直接的,就像 标准 Java一样。 当然,除了虚拟机以外还有许多可用的执行环境,在小型设备中,虚拟机必须要 么被扩展,要么在附加工具协助下提供一个更加完整的运行期环境,正是这个原 因, KVM需要附带的工具,比如说, JavaCodeCompact工具提供了预链接和 预加载类, 允许Java类被直接地链接进虚拟机中。((设备上所有的应用程序使 用的类 can直接地嵌入虚拟机。) KVM一个可选的附件就是 Java Application Manager ( Java应用程序管理器,简 称 JAM )。JAM的工作就是处理下载、安装、执行和卸载 CLDC设备上的应用程 序的细节问题,因为资源有限,在CLDC设备上有可能不存在这些功能。JAM也 处理更新安装应用程序的操作。(如果更新过程失败,它甚至可以重新使用旧的 应用程序。 )
J2ME开发入门
2007-05-08
程序演示
赛车
J2ME概述
Sun凭借最新的Java技术试图将其进一步实 现为开发者的目标平台,然而Java平台自身 却分成了三种平台:Standard版、 Enterprise版和Micro版。Micro版,也就是 所谓的J2ME。 Sun Microsystems 将 J2ME 定义为“一种 以广泛的消费性产品为目标的的高度优化的 Java 运行时环境,包括寻呼机、移动电话、 可视电话、数字机顶盒和汽车导航系统。”
开发基于MIDP,CLDC的j2me程序
开发环境 JDK 1.5 WTK FOR CLDC 2.5 ECLIPSE 3.1 ECLIPSEME 1.6.2 ProGuard 4.0 混淆器 /
Foundation & MIDP
Write once, run anywhere ?J2SE应用程序能在J2ME平台上运行吗? 这些问题的答案主要取决于配置和profile的具体应用了。 J2SE代码无须或者很少修改即可采用CDC和基础profile运行。 由于主机硬件受到限制,CLDC和MIDP profile只提供了很有限的功能集 合。因此它J2SE应用程序不大可能在不加修改的情况下就运行在这类平 台上,除非它把自己限制在两种平台的API交集之内(严重地限制了其 功能)。因为CIDC的要求对应了今天大多数便携设备的功能,所以任何 J2SE应用软件想不经修改就运行在给定的设备上是值得怀疑的。多半得 修改需要移植到J2ME的应用软件。这对J2ME开发人员来说不能不认为 是件好事。
Configuration & Profile
J2ME 作为一个完整的 JRE,由配置和简表组成,配置决定了使用的 JVM,而简表通过添加特定于域的类来定义应用程序。
J2ME、J2SE 与 J2EE 之间的比较
下面的图表描述了支持 J2ME 应用程序的设备,同时说明了 J2ME 适合 Java 平台之处:
Personal和 RMI简表实际上是 Foundation简表的扩 展
Profile-MIDP
MIDP连同功能较低的CLDC配置一道为开发
今天的移动设备应用程序提供了大家最可能 用到的Java平台。MIDP支持J2SE类库的有 限子集而且为在CLDC配置上使用定义了定 制的用户接口和输入/输出类。 Mobile information devices profile
ห้องสมุดไป่ตู้
Profile-RMI
回想一下
CDC配置为共享的、固定网络连接 信息设备提供最小的 Java环境。 RMI简表将 通过提供 Java到 Java的RMI来协助提供更 好的网络连接性。 通过使用 J2SE ( 1.2.x或 更高版本的 ) RMI,这个简表将允许这些网 络设备与其他系统应用程序交互操作 (这个系 统不必也运行 J2ME )。
CDC
CDC应用于相对内存量较大、更强处理器的移动设备。CDC规范采用了 内存优化的虚拟机,CVM,通过它提供等同标准JVM的特性。按照Sun 的文档说明, CDC针对新型PDA、智能通讯设备和机顶盒之类的高端 设备。为了能够受到CDC支持,移动设备必须至少具备以下条件: 用于CVM和Java API库的2 MB内存。 32位微处理器或者控制器。 可用网络连接,最好是高带宽连接。 连结有限设备配置 CDC的要求有利于昂贵的移动电话、IR扫描仪或类似产品。CLDC则主 要针对那些更轻便、更便宜、不能满足CDC要求的设备。
KVM补充2
KVM的实现是相当成功的。最早在1999年JavaOne大会的时候,作为Sun的 Spotless计划派生结果,Sun分发了许多Palm V,提供了Palm OS上的第一个 KVM版本和一个实验性的类库com.sun.kjava。这一KVM非常小而紧凑,只需要 几十K内存。而com.sun.kjava类库提供了Palm的图形用户接口,Palm数据库访 问,简单的集合类等等。将两者结合,开发者就可以开发Palm上的Java应用, 因此它受到了开发者的广泛欢迎,网上也有了许多教程和示例代码。事实上,到 目前为止,这都是在Palm上开发Java程序的唯一合理途径。CLDC没有定义用 户界面等API,MIDP并不适合PDA,对应的最合适J2ME标准是PDA Profile,但 是尚未完成。许多开发者强烈要求Sun在正式的J2ME标准中继续支持它,但是 Sun已经放弃了这一技术,而且并不保证正式的PDA Profile与之的兼容性,因此 我们不建议读者过多研究。 由于这一历史原因,造成了很多名词上的困扰。许多早期的文章把这一KVM与 com.sun.kjava包合称为KVM,表示这一技术,而现在所说的KVM应该是单单指 Sun的CLDC虚拟机参考实现。甚至还有人用K Java作为J2ME的代称,表示基 于KVM的Java,这很容易和正式的J2ME标准以及早期的com.sun.kjava包相混 淆,大家在看这类文章时需要注意文章的时间和背景,并采用严格的正式名称。