第一章 J2ME 概论

36
J2ME 第第 2008-03

description

第一章 J2ME 概论. 2008-03. 本章提纲. 本章主要内容: Java 平台的划分 J2ME 概论 J2ME 集成开发环境. Java 平台的划分. Java 标准函数库 核心库( java.* ) 扩展库( javax.* ) Java 基本类型 char, boolean byte, short, int long, float, double. Java 平台的划分. 划分依据 对标准库及基本类型的支持程度 划分图. 各种 Java 平台的不同之处. J2SE 实现了所有 Java 标准规范定义的核心类库 - PowerPoint PPT Presentation

Transcript of 第一章 J2ME 概论

Page 1: 第一章  J2ME 概论

第一章 J2ME 概论2008-03

Page 2: 第一章  J2ME 概论

本章提纲

本章主要内容:Java平台的划分J2ME概论J2ME集成开发环境

Page 3: 第一章  J2ME 概论

电子科技大学科园培训机构

Java 平台的划分• Java 标准函数库

– 核心库( java.* )– 扩展库( javax.* )

• Java 基本类型– char, boolean– byte, short, int– long, float, double

Page 4: 第一章  J2ME 概论

电子科技大学科园培训机构

Java 平台的划分• 划分依据

– 对标准库及基本类型的支持程度• 划分图

Page 5: 第一章  J2ME 概论

电子科技大学科园培训机构

各种 Java 平台的不同之处• J2SE

– 实现了所有 Java 标准规范定义的核心类库– 支持所有 Java 基本类型– 定位在客户端 (client-side) 程序的应用上

Page 6: 第一章  J2ME 概论

电子科技大学科园培训机构

J2EE• J2EE

– 实现了所有 Java 标准规范定义的核心类库– 支持所有 Java 基本类型– 增加了许多支持企业内部使用的核心类库

( javax.servlet.* 类库, javax.ejb.* )– 定位在服务端 (server-side) 程序的应用上

Page 7: 第一章  J2ME 概论

电子科技大学科园培训机构

J2ME• J2ME

– 实现了部分 Java 标准规范定义的核心类库• CLDC 只支持 java.lang.* 、 java.util.* 、 java.io.*等类库

– 支持部分 Java 基本类型• CLDC1.0 不支持 float 、 double 浮点数类型• CLDC1.1 支持 float 、 double 浮点数类型

– 增加了一些支持嵌入式系统的扩充类库• javax.microedition.io.* 类库

– 定位在嵌入式系统的应用上

Page 8: 第一章  J2ME 概论

J2ME 概论J2ME 的起源和发展历程 Java编程语言最初是为消费电子设备编程设计的嵌入式语言,但其发展却偏离了初衷,成为一种开发基于服务器应用的平台技术。它也是基于 JDK 1.1,其运行环境与 Personal Java应用环境很相似,但它不像 Personal Java是为特定设备定义的特定 Java子集,而是允许用户针对特定的设备使用所需要的 Java技术,你不需要在你的设备中嵌入任何用不到的东西。

Page 9: 第一章  J2ME 概论

J2ME 概论J2ME 的起源和发展历程 Java 2平台微型版( J2ME) 它定义了一组针对嵌入式设备和消费电子设备的 API和运行环境,这些设备包括无线手持设备、 PDA、电视机顶盒以及其他缺乏足够的资源去支持 J2SE的设备。

Page 10: 第一章  J2ME 概论

J2ME 的体系结构

Page 11: 第一章  J2ME 概论

电子科技大学科园培训机构

J2ME Platform

Optional packages

Configuration

Profile

厂商选择性实现

针对特殊硬件制定的高级 API

定义硬件功能与低级 API

Page 12: 第一章  J2ME 概论

电子科技大学科园培训机构

Configuration• 嵌入式设备分类

– 资源相对无限的设备– 资源、运算功能、电力、联机速度、屏幕等资源有限的设备

• Configuration 是一套规范,它为具有类似属性的某一类设备定义了 J2ME 平台应该具有的基本功能:– 硬件所必须具备的能力– Java 核心库具有的功能

Page 13: 第一章  J2ME 概论

电子科技大学科园培训机构

Configuration• J2ME 相应规范 (Configuration)

– CLDC:Connected Limited Device Configuration

– CDC: Connected Device Configuration• CDC 与 CLDC 范围

Page 14: 第一章  J2ME 概论

J2ME 虚拟机KVM是“ Kilo Virtual Machine”的缩写。它是符合 Java虚拟机规范的真正虚拟机, KVM专门为资源受到限制的小型设备设计,它们的内存只有几百千字节。最初 CVM是“ Compact Virtual Machine”的缩写,然而 Sun公司的工程师意识到商家可能混淆“ Compact”的发音和 KVM中的“ K”,因此现在 C 不代表任何意思。该虚拟机用于较多的消费者和嵌入式设备,例如 CDC设备。在安全性、弱引用、 JNI(Java本地接口 ) 和 RMI(远程方法调用 ) 方面, CVM支持 J2SE的几乎全部功能

Page 15: 第一章  J2ME 概论

电子科技大学科园培训机构

Profile• Profile 目标

– 更加明确地区分各种嵌入式设备之上的 Java程序该如何开发,以及它们应具有哪些功能• Profile 定义了:

– 各种嵌入式设备上的用户界面该如何呈现– 程序该如何和用户或设备产生互动– 为 Configuration 之中的类增加新的方法,或是让方法抛出新的异常– 定义了特定种类嵌入式设备的最小配备需求

Page 16: 第一章  J2ME 概论

电子科技大学科园培训机构

Profile

• Profile 皆构架在特定 Configuration 之上:Optional Packages For CDC & CLDC

Optional Packages For CLDC

Profiles for CDC Profiles for CLDC

CLDCCDC

Page 17: 第一章  J2ME 概论

电子科技大学科园培训机构

Profile

• 构架在 CDC 之上的 Profile :– Foundation Profile– Personal Basis Profile– Personal Profile Specification– Foundation Profile 1.1– Personal Basis Profile 1.1– Personal Profile Specification 1.1

Page 18: 第一章  J2ME 概论

电子科技大学科园培训机构

Profile

• 构架在 CLDC 之上的 Profile :– Mobile Information Device Profile 1.0(MIDP 1.0)– Mobile Information Device Profile 2.0(MIDP 2.0)– Information Module Profile– Information Module Profile 2.0

Page 19: 第一章  J2ME 概论

电子科技大学科园培训机构

Optional Packages

• 厂商选择性实现– 通常是一些本身具有独立价值的 API, 厂商可以依据自己的要求,选择性地实现其中某些 Opitonal

Packages 规范• Optional Packages 举例

– Java API for Bluetooth– Wireless Messaging API– Mobile Media API

• 可选包也是构架在特定 Configuration 之上的

Page 20: 第一章  J2ME 概论

电子科技大学科园培训机构

各种平台 Java 程序开发– 无论开发的是企业所使用的 Java 程序,嵌入式设备上执行的 Java 程序,浏览器上执行的 Applet ,或者是在 PC 上执行的程序,都必须安装 J2SE ,软后再安装各种版本的核心类库以及额外的扩充类库 . 对于程序员而言,这些版本的关系如图所示:

Page 21: 第一章  J2ME 概论

电子科技大学科园培训机构

J2SE 平台作用• J2SE 平台作用

– J2SE 提供的编译器:编译不同平台的 JAVA 程序– J2SE 提供的虚拟机:在 PC 上先行仿真这些程序的执行

• 平台差异导致的问题– Java 编译器不会检查程序是否符合各种平台上所支持的核心类库与 Java 基本类型, Java 编译器只管程序代码是否符合 Java 程序语言的语法– 例如:在 Smart Cart 平台上的程序里用了 boolean 或

byte 以外的 Java 基本类型,编译器仍然可以编译出Class 文件

Page 22: 第一章  J2ME 概论

电子科技大学科园培训机构

Sun Microsystems 的解决方法– 在各种不同的开发包中有些会附有检查器

( checker )或者审核器( preverifier ),这两个工具可以帮助程序员在将程序放到目标平台之前先做好检查和预审核的工作

Page 23: 第一章  J2ME 概论

电子科技大学科园培训机构

预先审核器• 预先审核器的目的

–找出 class 文件之中不合目标平台的部分,并提醒开发者这些地方可能无法在目标平台上执行–减轻目标平台上虚拟机器的负担

Page 24: 第一章  J2ME 概论

电子科技大学科园培训机构

传统 Java 程序的执行步骤

Page 25: 第一章  J2ME 概论

电子科技大学科园培训机构

问题• 沿用传统的问题

– 审核动作放在 PC 上执行,速度可以忍受,可是一旦放到 Palm 或手机这些 CPU较慢,内存也比较少的机器上面就显得十分吃力了• 利用预先审核器的解决方案

– 在程序员产生能够让某些特定平台上执行的Class 文件之前,程序员必须先在 PC 上使用预先审核器做一些前置的审核工作,预先审核器会在 Class 文件之中加入一些特殊标记或符号,从而大幅减少在目标平台上做审核的时间。

Page 26: 第一章  J2ME 概论

电子科技大学科园培训机构

利用预先审核器• 利用了预先审核器后的执行步骤:

执行 Byte Code 审核器的工作变少了。程序加载到开始执行时间减少

Page 27: 第一章  J2ME 概论

电子科技大学科园培训机构

MIDP 应用程序的部署• 何谓MIDP 应用程序?

–指的是遵循Mobile Information Device Profile规范所开发的应用程序• MIDP 应用程序构成

– 应用程序主体( JAR 文件)– 应用程序描述文件( JAD 文件)

• 何谓MIDP 应用程序部署?–完成 MIDP 应用程序后,让程序能够在用户设备上执行的行为

Page 28: 第一章  J2ME 概论

电子科技大学科园培训机构

MIDP 应用程序部署方式– OTA ( Over The Air )经由无线通信网络将

MIDP 应用程序下载到设备上– 非 OTA。例如数据线,红外线,蓝牙等等

Page 29: 第一章  J2ME 概论

电子科技大学科园培训机构

OTA 部署步骤• OTA 部署步骤

– 手机连上网络– 下载描述文档– 针对描述档中所记录

的 MIDlet suite 资料作确认工作(如版本确认)– 使用者选择要下载的程序下载并安装– 手机执行下载的程序

Page 30: 第一章  J2ME 概论

更详细的 OTA 部署步骤

电子科技大学科园培训机构

Page 31: 第一章  J2ME 概论

电子科技大学科园培训机构

非 OTA 部署步骤• 非 OTA 部署(数据线)步骤

Page 32: 第一章  J2ME 概论

电子科技大学科园培训机构

J2ME 应用程序执行环境• 什么是执行环境 ?

– J2ME 应用程序在执行时期所能获得的资源,如API

• J2ME 应用程序分类– 分类标准: J2ME 应用程序所调用的 API– 标准应用程序(只调用标准 API 的应用程序)– 不易移植的应用程序(加入厂商专属 API 的应用程序)

Page 33: 第一章  J2ME 概论

J2ME 集成开发环境( IDE ) J2ME 开发工具 EclipseEclipse是一个开发源代码的、基于 java的可扩展开发平台。JBuilderEclipse是一个开发源代码的、基于 java的可扩展开发平台。 Eclipse本身只是一个框架和一组响应的服务,并不能够开发什么程序。 NetBeansNetBeans是一套完全以 Java撰写而成、并且开放原始码的开发工具。

Page 34: 第一章  J2ME 概论

J2ME 集成开发环境( IDE ) Eclipse 开发环境的搭建 使用 Eclipse开发 J2ME程序,目前只能使用EclipseME插件。如果读者有足够强的功力,可以自行开发插件进行 J2ME程序的开发。使用EclipseME作为 Eclipsej插件,可以极大地帮助开发者开发 J2ME程序。但是 EclipseME不提供模拟器,读者需要自己将模拟器集成到 Eclipse中,本书将主要使用 WTK作为集成的模拟器。

Page 35: 第一章  J2ME 概论

J2ME 集成开发环境( IDE ) JBuilder 开发环境的搭建JBuilder是非常理想的 J2ME开发环境,提供了强大的功能,并且自带了 WTK。安装完成 JBuilder后,就可以直接进行 J2ME的开发。本书使用的 JBuilder为 2005版,称之为 JBuilder2005,自带的 WTK为2.1版,而目前最新的 WTK为 2.2版, 2.2版和 2.1版的主要区别就是 2.2版增加了支持 JSR-184规范的 API(3D Graphics API),以及提供了新的模拟器。

Page 36: 第一章  J2ME 概论

电子科技大学科园培训机构

谢谢!