J2ME开发技术
第1章 J2ME概述
1.1 J2ME背景介绍:JAVA和J2ME 1.2 移动无线网络和连接设备简介 1.3 J2ME架构简介 1.4 MIDP和MIDlet 简介 1.5 本章小结
第2章 J2ME开发环境设置 2.1 J2ME开发设计模式
2.2 J2ME通用开发工具和集成开发工具 2.3 本章小结
第3章 J2ME用户界面
3.1 MIDP高级用户界面设计概述 3.2 Display类和 DisplayAble类 3.3 屏幕类 3.4 表单中的组件 3.5 3.6 3.7 3.8
事件处理
MIDP界面实例
Canvas画布屏幕设计 图形绘制与Grapics类
部分内容来源于 第4 章 MIDP 低级UI 的使用 J2ME 中文教程 by www.j2medev.com 3.9 文字绘制与Font类 3.10 图像处理与Image类 3.11 Canvas事件处理 3.12 绘图实例 3.13 本章小结
第4章 数据存储管理系统 4.1 数据存储系统概述 4.2 记录存储器管理 4.3 数据库系统基本操作 4.4 记录存储器进阶操作 4.5 JDBC 及开发基础 4.6 通讯录实例 4.7 本章小结 第6章 通用连接框架 6.1 通用连接框架概述 6.2 通用连接框架的各种连接 6.3 通用连接框架的七个接口 6.4 HTTP协议概述
部分内容来源于 第5 章 MIDP持久化解决方案-RMS J2ME 中文教程 by www.j2medev.com 第8 章 存储管理系统 2ME开发大全 6.5 建立HTTP连接
6.6 HTTP连接通信与会话管理 6.7 本章小结
第7章 基于红外和蓝牙协议的网络开发 7.1 无线数据传输概述 7.2 蓝牙技术通信 7.3 红外技术通信 7.4 蓝牙技术实例 7.5 本章小结
第8章 Messaging应用开发 8.1 无线消息WMA概述 8.2 WTK提供的模拟工具 8.3 WMA类库的介绍和使用 8.4 WMA实例 8..5 本章小结
第9章 多媒体 开发 9.1 MM APl概述
9.2 媒体管理Manager类 9.3 播放器接口Player类 9.4 程序实例 9.5本章小结
第10章MIDP游戏编程
10.1 MIDP 2.0 Game API概述 10.2 游戏容器GameCanvas类 10.3 游戏精灵Sprite类 10.4 游戏地图TiledLayer类 10.5 图层管理LayerMaIlager类. 10.6 3D开发概述
10.7 游戏实例:蜜蜂射击 10.8 本章小结
第11章 综合示例分析
11.1 摇摆虫游戏
11.1.1 游戏设计第一步:创意 11.1.2 11.1.3 11.1.4 11.1.5
游戏设计第二步:需求分析 游戏设计第三步:详细设计 游戏设计第四步:代码设计 游戏设计第五步:游戏测试
11.1.6 总结
11.2 纸飞机游戏
11.2.1 创意
11.2.2 需求规格
11.2.3 基本流程图和控制转移表 11.2.4 程序模块分析 11.2.5 总结
第一章 J2ME简介 1.1. 概述
J2ME就是Java 2 micro Edition的缩写,它是原SUN公司(已被Oracle公司收购)针对嵌入式、消费类电子产品推出的开发平台,专门用于开发消费性电子产品及应用,例如手机,PDA等。它与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的Java Specification Request(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保其兼容性。 J2ME(Java 2 micro Edition)是一种高度优化的精简Java运行环境,针对市面上的大量消费类电子设备,例如Papers、cellularphones(蜂窝电话), screen-phones(可视电话)、digital set-top boxes(数字机顶盒)、car navigation systems(汽车导航系统)等等。 J2ME技术在1999年的JavaOne Developer Conference大会上推出。J2ME技术将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
1.2. J2ME平台体系结构
J2ME并不是一种产品,而是一种技术,它包括两种类型的组件,即配置(configuration)和简表(profile),是由配置(Configuration)和简表(Profile)构成的。 配置(configuration)是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机;是一系列低层次的API(应用编程接口)和一种为该族设备优化的虚拟机。今天在用的一般配置有两种,连接的设备配置(CDC)和连接的设备配置(CLDC)。 CDC提供了一种虚拟机,以及支持像灵敏发报机、寻呼机、个人数字助理(PDA)和电视机顶盒这样的设备上的Java应用的基类库,这些设备的典型特征是具有一个32位的处理器和用来支持虚拟机和类库的超过2MB存储容量。CVM虚拟机正好满足了它们对于Java 2虚拟机特征集的功能需求,这是在小型平台上全特征的虚拟机。 CLDC提供一个适合于小型的、资源受限的、连接的设备上使用的标准Java平台。这些设备的典型特征是具有一个16位或者32位的处理器和用来支持虚拟机和类库的160KB到512KB的总内存,它们通常以电池作为电源,并联入某类网络中,联网一般使用带宽时常小于9600bps的无线的、断断续续的连接方式。CLDC的核心是K虚拟机(KVM)。“K”标记反映了它们的大小是以kilobytes(千字节)衡量的这一事实。CLDC的特征也是包含一系列类库。
CDC的硬件参数:
2M以上内存。
具有网络连接能力,通常为无线网络。 需要实现java虚拟机规范的全部功能。 32位或者位的处理器。 CLDC的硬件参数:
512 KB 以下内存
有限能源供应(通常使用电池) 有限或非持续网络连接 简单的用户界面 16位或者32位的处理器
从上述的标准中我们不难看出CLDC主要针对那些资源非常受限的设备比如手机、PDA、双工寻呼机等。而CDC主要面对那些家电产品,比如机顶盒、汽车导航系统等。简表是以配置为基础的,例如Mobile Information Devices Profile(MIDP)就是CLDC上层的重要简表。与配置的纵向特性不同的是,简表是横向的。下图是J2ME体系结构的框图:
简表(profile)是一种说明,它详细描述了架构在配置之上并使用配置的一系列API。简表的一个例子是创建在CDC之上的基础描述(Foundation Profile),它为以像住宅网关、灵敏电话和双向寻呼机这样的设备为目标的应用提供完整的J2ME运行时环境。另一种简表是移动信息设备描述(MIDP),它构建在CLDC之上,为那些运行在像移动电话和登录级PDA这样的设备上的应用提供完整的J2ME运行时环境。MIDP致力于解决像用户界面、持久存储、联网和应用程序生命周期这样的问题。
在J2ME中还有一个重要的概念是可选包(Optional Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能
J2ME中制定了JSR82(Bluetooth API)提供了对蓝牙的支持。
J2ME体系结构框图
1.3. J2ME 目标设备
使用 CLDC 开发的 J2ME 应用程序的目标设备通常具有以下特征:
可供 Java 平台使用的 160 到 512 千字节的总内存 功率有限,常常是电池供电
网络连通性,常常是无线的、不一致的连接并且带宽有限 用户接口混乱,程度参差不齐;有时根本就没有接口
一些 CLDC 支持的设备,包括无线电话、寻呼机、主流个人数字助手 (/pda/ PDA),以及小型零售支付终端。
依照 Sun Microsystems,CDC 的目标设备通常具有以下特征:
使用 32 位处理器
2 兆字节或更多可供 Java 平台使用的总内存
设备要求的 Java 2 “蓝皮书”虚拟机的全部功能
网络连通性,常常是无线的、不一致的连接并且带宽有限 用户接口混乱,程度参差不齐;有时根本就没有接口
一些 CDC 支持的设备,包括常驻网关、智能电话和通讯器、PDA、管理器、家用电器、销售网点终端以及汽车导航系统。
1.4. J2ME、J2SE与J2EE之间的比较
下面的图表描述了支持 J2ME 应用程序的设备,同时说明了 J2ME 适合 Java 平台之
处:
1.5. J2ME开发工具
1)、J2MEWTK,这个工具在前文已经提到过,它是最基本的J2ME程序开发工具,免费,体积小,速度较快,完全遵守J2ME的各种规范。具有简单的IDE界面,易于上手,开发十分方便快捷,可以和 Forte 3.0捆绑。J2MEWTK适用于初学者和已经达到很高水平的开发者。窃以为J2MEWTK+JDK+Editplus/UltraEdit是绝配。
2)、VisualAge Micro Edition 1.4。这是IBM的产品,号称是J2ME开发领域的TOP 1,但是我用了半天,也没有看出好在那里。马上就删除了。窗口太复杂,不明所以,开发起来很难适应,速度和J2MEWTK一样,比较庞大,装了这个东西,你的C盘就要小心了,多了很多乱七八糟的文件,还注册了许多COM组件,典型的非绿色软件。
3)、CodeWarrior for Java 6.0。这是Motolola的产品,功能十分强大,集成度很好,开发,调试,发布J2ME程序都很方便(还可以做一般的Java Program)。它的IDE和Visual Studio十分
相似,很容易上手。CodeWarrior比较适合中等水平的开发者的使用。不过CodeWarrior不是免费软件,你只能够免费使用30天。
4)、Borland Jbuilder 5.0的Nokia Bobile版。
1.6. J2ME开发步骤
1.6.1. 系统要求
Pentium 100以上CPU MB 内存
Windows NT Workstation 4.0(Service Pack 3)或Windows 98 6 MB自由硬盘空间
Java 2 SDK, Standard Version, 版本1.2.2或者更高
1.6.2. 安装Java 2 SDK
在使用Motorola SDK之前必须安装JDK,Standard Edition。
请从 http://java.sun.com/products/jdk 下载JDK,并按照Sun的指导安装到PC中 1.6.3. 安装特定厂商的SDK,如Motorola SDK:
安装之前请先卸载以前版本的Motorola SDK: 1. 选择\"开始à设置à控制板\" 2. 选择\"添加/删除程序\"
3. 查找到\"Motorola SDK Components for the J2ME Platform\"
1.7. 一个示例应用程序:电话日历
J2ME 的著名特色之一是它在受限环境中的日期处理功能。J2ME 提供的 DateField UI 元素是一个可编辑的组件,该组件用于表示日历信息(即日期和时间)。在这一部分中,我们将使用 DateField 和 Date 函数来开发一个 J2ME 应用程序,这个应用程序用于在移动电话 UI 上显示一个滚动日历。 一个电话日历应用程序
// Import of API classes
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*;
//A first MIDlet with simple text and a few commands. public class PhoneCalendar extends MIDlet
implements CommandListener, ItemStateListener {
//The commands
private Command exitCommand; //The display for this MIDlet private Display display;
// Display items e.g Form and DateField Form displayForm; DateField date;
public PhoneCalendar() {
display = Display.getDisplay(this);
exitCommand = new Command(\"Exit\ date = new DateField(\"Select to date\TE); }
// Start the MIDlet by creating the Form and // associating the exit command and listener. public void startApp() {
displayForm = new Form(\"Quick Calendar\"); displayForm.append(date);
displayForm.addCommand(exitCommand); displayForm.setCommandListener(this); displayForm.setItemStateListener(this); }
public void itemStateChanged(Item item) {
// Get the values from changed item }
// Pause is a no-op when there is no background // activities or record stores to be closed. public void pauseApp() { }
// Destroy must cleanup everything not handled // by the garbage collector.
public void destroyApp (boolean unconditional) { }
// Respond to commands. Here we are only implementing // the exit command. In the exit command, cleanup and // notify that the MIDlet has been destroyed.
public void commandAction (Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false); notifyDestroyed(); } } }
如上定义的 PhoneCalendar MIDlet 继承了 ItemListener 和 CommandListener。它使
display.setCurrent(displayForm);
MIDlet 具备了跟踪屏幕上的条目变化和对用户命令作出响应的功能。由此应用程序创建的用户界面从为电话屏幕定义一个显示并附加上一个 Form 开始。该 Form 充当容器使用,可以保持一些用户界面项。commandAction() 函数在 J2ME 中执行命令处理程序,并且定义某个命令应执行的动作。
1.8. 部署 J2ME
您可以从 Sun 下载一个仿真器,该仿真器允许您在台式机系统上测试 J2ME 应用程序。如果您宁愿避免所有的图形开销,则您也可以在命令行上部署 J2ME。
1.8.1.在仿真环境中进行部署
在仿真环境中部署和运行 J2ME 应用程序,要涉及到仿真器的安装和配置。J2ME Wireless Toolkit 提供了一个仿真环境,该环境用于在资源受限的设备上对 Java 应用程序进行的开发和部署。这里教您如何自己运行它:
安装 SUN-JAVA- Wireless Toolkit(请参阅参考资料)。安装程序在安装过程中将会有必要的说明指导您进行安装。为运行这些示例,请选择(standalone)模式。如果您想将它集成到 IDE,请选择集成(integrated)模式。
通过 KToolbar 的用户界面创建一个新工程。指定一个类名。
将第 2 步指定的类名放到 C:【J2ME Installation directory】apps【Project Name】src 目录。
编译这个工程。
从 J2ME Wireless Toolkit -> Default Device Selection 选择 DefaultGrayPhone 作为缺省设备。
运行这个工程。
该工具箱还提供有一个选项,用于把工程打包成一个 jar 文件和一个 jad 文件。双击 jad 文件将会部署 jar 文件所指定的应用程序。
1.8.2.在命令行上进行部署
这里也有一些可用的命令行选项。 1. 创建类文件:
C:J2MEappsPhoneCalendar>
javac _ tmpclasses _ootclasspath
C:J2MElibmidpapi.zip -classpath tmpclasses; classes src*.java
2. 创建清单文件 manifest.mf:
MIDlet-1: PhoneCalendar, PhoneCalendar.png, PhoneCalendar
MIDlet-Name: Phone Calendar MIDlet-Vendor: Sun Microsystems MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0
3. 创建 jar 文件:
C:J2MEappsPhoneCalendar>jar cfm .bin PhoneCalendar.jar
manifest.mf -C classes . _ res .
4. 创建 jad 文件:
MIDlet-1: PhoneCalendar, PhoneCalendar.png, PhoneCalendar
MIDlet-Jar-Size: 4490 MIDlet-Jar-URL:
F:J2MEappsPhoneCalendarbin PhoneCalendar.jar
MIDlet-Name: PhoneCalendar MIDlet-Vendor: Sun Microsystems MIDlet-Version: 1.0
5. 运行 jad 文件:
C:J2MEbin> emulator -Xdescriptor: C:J2MEappsPhoneCalendar binPhoneCalendar.jad
MicroEmulator
MicroEmulator is a pure Java implementation of Java ME in Java SE. MicroEmulator is licensed under LGPL so it is possible to link and distribute commercial software with its libraries.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务