【原创】新生易学JavaME系列之入门篇[J2ME开发网论坛]

来源:百度文库 编辑:神马文学网 时间:2024/05/24 01:20:10
我的收件箱 (0)
>> 新来网站的朋友和J2ME的初学者请来这里报道,初阶问题、环境配置等问题发到这里。

搜一搜相关精彩主题
J2ME开发网论坛 →J2ME开发网技术论坛 →J2ME 新手报道 → 【原创】新生易学JavaME系列之入门篇
您是本帖的第 2063 个阅读者
树形打印收藏推荐修复
标题:
【原创】新生易学JavaME系列之入门篇
exce4



头衔:不羁野人
等级:版主
文章:166
积分:108
注册:2005年5月3日
楼主
QQ

【原创】新生易学JavaME系列之入门篇
新生易学JavaME系列之入门篇
作者(exce4)按:
新手一般都会觉得J2ME开发方面的实用资料很少,google一下或者百度一下得到的这些资料不是重复,就是不够详细,不然就是花了很大篇幅来讲历史渊源、架构原理以及很多规范方法和理论研究,然而这些资料其实并不适合新手阅读,而且是完全没有必要的。作者在这里愿意和你(即使你从来没有碰过java的程序开发)一起跳过这些资料,直接上手。
如果你已经按着《新生易学JavaME系列之上手篇》的内容都操作成功的话,那么你一定会很感兴趣,它们是怎么实现的。那么好,听我给你道来。
第一点Java技术的平台无关性
首先希望你明确地知道Java技术主要包括Java编程语言和Java平台。
其中Java编程语言是一个简单、面向对象、分布式、解释性、健壮、安全、与系统无关、可移植、高性能、多线程和动态的语言。(对于初学者,这些修饰词太吓人了吧,所以没有必要现在就理解,只要知道那么回事就好,随着慢慢地深入你逐渐领悟和体会的。)你要知道它是一种语言,它有自己的语法、自己一套约定俗成的规则。【这就好比你学英语,需要知道单词、语法、句式一样,它都有自己一套的规则在。】
而Java平台则Java虚拟机(JavaVM)和Java应用程序接口(JavaAPI)组成。区别于Windows、Linux等操作系统加硬件的组合,Java平台仅由软件组成,并且运行在其他基于硬件的操作平台之上。【这就好比果园里树的嫁接,植根于泥土(硬件)的树(Windows、Linux等操作系统)负责汲取营养(传输信息),而嫁接树(Java平台)则可以结出自己的果实(Java应用程序)】
那么你就要问,为什么它可以嫁接呢?就让我们回过头来,在《新生易学JavaME系列之上手篇》里,还记得我们的每一个步骤吗。第一步装备好开发工具,第二步设置环境变量,其实都是在做嫁接的手术,让Java平台可以嫁接到你所用的操作系统上。而第三步试运行一下简单的java程序,才是它可以嫁接成功的关键所在。我们先用【记事本】把程序代码记录下来了再另存为,可是这些都是为了生成一个*.java的源代码文件(文中是IamOk.java),再对它进行编译生成一个*.class的字节码文件(文中是IamOk.class)。而字节码文件才是Java技术的平台无关性的关键(字节码文件的特点是与平台无关,能在解释器的解释下运行。)
编译器 解释器
*.java(源代码文件)――>*.class(字节码文件)――>机器可以识别的指令
|_ _Java编程语言_ _ | _ _ _ _ _ Java平台_ _ _ _ _ | _ _ _ 操作系统 _ _ _|
Java技术的最大目标和特点,就是"一次编写,到处运行"的平台无关性。
第二点J2ME的由来
既然Java技术可以"一次编写,到处运行",那么为什么还要J2ME?
随着科技的发展,各种电子信息产品多样化,很自然的,一套标准无法适应各种不同的需求。解决之道只能是“分而治之”。
Java技术目前共有三套标准,分别针对不同的平台和应用。
Standard Edition(J2SE,标准版):针对桌面端PC和工作站的个人和低端商务应用。
Enterprise Edition(J2EE,企业版):针对服务器端企业级和大型高端商务应用。
Micro Edition(J2ME,袖珍版)针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域。
J2ME实际上是一系列规范的集合,由JCP组织制定相关的Java Specification Request(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过相关测试,这样确保兼容性。这就好比一个国家的立法一样,你可以提交立法议案(JSR)申请,但是必须经过相关立法机构(JCP组织)的审核程序后,它才具有法律效力,它(JSR)颁布了,你就得按照规范执行。它就象咱们国家一样,还处于一个正在逐步完善规范的过程。
在消费电子和嵌入式设备领域,内存从几百K到几十M,从没有屏幕到Web-TV,CPU从低功耗的嵌入式处理器到206MHz的RISC处理器,硬件条件的差异是相当大的。这就使得J2ME的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比之下J2ME就比J2SE和J2EE的标准要复杂得多。
鉴于这一领域的多样性,促使J2ME再一次“分而治之”。J2ME首先根据最基本的一些特征把它们划分为两类。第一类CLDC设备往往是个人化的,移动的,使用电池,体积和功耗都有限制,因此功能和计算能力有限。第二类CDC设备一般是固定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没有太大问题,计算能力相对充裕。
[此贴子已经被作者于2005-12-19 16:18:03编辑过]


2005-12-15 18:54:00
举报帖子
使用道具

0
exce4



头衔:不羁野人
等级:版主
文章:166
积分:108
注册:2005年5月3日
第 2 楼
QQ

第三点J2ME标准的兼容性
在消费电子和嵌入式设备的广阔领域中,目前最受关注的是移动信息设备CLDC,因此在这里介绍主要J2ME中的CLDC(Connected Limited Devices Configuration)。
作为Java平台需要嫁接成功必须保证相容性。因此需要把共性的东西找出来(求同存异),即支持一组通用设备的最小配置,来保证不同设备间的平台相容性。同时这样做的结果也分离了原来设备各自的特殊性。
因此J2ME平台由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的特殊功能API和扩展类库以及开发包集合。
------------------------------------
| Optional Packages |
------------------------------------
| Profiles |
------------------------------------
| Configuration |
| (JavaVM) |
------------------------------------
| Operating System |
------------------------------------
J2ME体系结构图
你还记得J2ME的“立法机构”JCP(Java Community Process)吗,它通过公布规范来确保J2ME的兼容性。J2ME的配置和简表的现行规范为CLDC1.1(Connected Limited Devices Configuration1.1,即JSR139)和MIDP2.0(Mobile Information Device Profile2.0,即JSR118)。当然如果你想了解更多的话可以到下面的网址去自己查阅研究。
http://java.sun.com/j2me/docs/ - opkg (备注:有JSR-编号 就是规范)
事实上在你所有看过关于J2ME编程方面的书籍或者资料里面,其实它们都只不过是重新分类、组织比较通俗易懂的语言来解释和介绍这两个规范里面主要包含的一些类的用法而已。
CLDC1.1只包括五个包,其中四个来自标准 Java 规范并且作了缩减(java.lang、 java.lang.ref、java.util 和 java.io),另一个专门针对 CLDC (javax.microedition)。
包 描述
java.io 系统输入输出类
java.lang 编程语言的基本类
java.lang.ref 弱引用类
java.util 集合、日期和时间支持、各式实用工具类
javax.microedition.io 通用连接框架(Generic Connection Framework)
MIDP2.0(Mobile Information Device Profile)定义了针对移动信息处理设备的图形界面,游戏开发,媒体播放,持久性存储,交互应用,安全连接等等API,并且考虑到了移动信息设备的屏幕和内存限制。类似于J2SE中的Applet框架,MIDP提供了基于javax.microedition.midlet 包的MIDlet应用程序框架。
包 描述
javax.microedition.lcdui, GUI图形界面类
javax.microedition.lcdui.game, 游戏开发类
javax.microedition.media, MIDlet音频类
javax.microedition.media.control, 音频控制类
javax.microedition.midlet, MIDlet生命周期管理类
javax.microedition.pki, 用户证书基本管理类
javax.microedition.rms 持久性存储类
第四点初谈J2ME的开发
首先让你了解J2ME程序的开发流程,在编写好*.java源文件后,继续进行如下工作:编译、混淆、预审核、打包。
javac
*.java ――――> *.class
编译 | obfuscate
| 混淆,用第三方工具RetroGuard等-》反汇编,减小程序体积。
V
*.class
| preverify
| 预审核,减少手机在运行时的占用资源。
jar V
*.jar <―――― *.class
打包
打包后,将获得了一个*.jar文件。接下来为*.jar文件编写一个以jad为后缀的*.jad描述文件(MIDP Java Application Descriptor)。然后通过各种途径(使用数据线\红外线\蓝牙\空中下载等传输方式)将*.jar文件、*.jad描述文件传输到移动信息处理设备(手机、PDA等)上运行即可。
还记得在《新生易学JavaME系列之上手篇》里第四步试运行一下简单的MIDlet程序吗,现在可以自己打开安装目录的路径,然后通过查阅慢慢摸索体会了。
现在的你应该对J2ME有了一个整体的印象。但是这些只是J2ME的初步而已。俗话说得好,师傅带进门,修行在自身。如果你真正对程序开发有兴趣,而且有毅力走得更远,那么希望我们可以一起同行。
(未完待续―――― exce4)
[此贴子已经被作者于2005-12-15 19:07:12编辑过]

2005-12-15 18:57:00
举报帖子
使用道具

0
hom_wee



头衔:江南大道
等级:MIDP 1.0
文章:10
积分:3
注册:2005年12月7日
第 3 楼


不错支持

2005-12-18 16:04:00
举报帖子
使用道具

0
thddnjsdl



等级:MIDP 1.0
文章:1
积分:8
注册:2006年8月3日
第 4 楼


可不可以请教一下,
是不是用JAVA WTK运行,只是为看效果,就没有必要用.CLASS文件生成.JAR呢?
要想生成JAR文件,要怎么做呢?
麻烦了.....

2006-8-4 0:53:00
举报帖子
使用道具

0
chinavfeng




头衔:学习者
等级:MSA
文章:375
积分:78
注册:2004年12月27日
第 5 楼
QQ

.JAR就是把.CLASS文件和资源文件都达到一个包里,jar用rar就能解开。
WTK打包在 项目(p)--〉包(p)--〉生成包(p)或生成混淆包(o),(注:如果有混淆器就可以生成混淆包。)
如果你用IDE开发,如jbuilder,netBeans等,打包的方法不一样,我用的是netBeans5.0中文版,感觉比jbuilder方便点

2006-8-4 15:23:00
举报帖子
使用道具

0
cehang



等级:MIDP 1.0
文章:2
积分:2
注册:2005年12月7日
第 6 楼


 
jar 和 zip的压缩算法是一致的
 

2006-8-7 15:55:00
举报帖子
使用道具

0
witcheryNe



等级:MIDP 1.0
文章:13
积分:9
注册:2006年8月6日
第 7 楼


我是新手,, 看了此篇受益非浅.
怎么用 JBuilder 2005  打包??

2006-8-8 11:03:00
举报帖子
使用道具

0
liushan



头衔:猪头小队长
等级:MIDP 1.0
文章:46
积分:67
注册:2006年10月5日
第 8 楼


好好好,顶顶顶。东西不错,很受益

2006-11-16 16:14:00
举报帖子
使用道具

0
haobn0612



等级:MIDP 1.0
文章:3
积分:2
注册:2006年10月16日
第 9 楼


很有帮助,期待更好的文章!

2006-11-17 14:27:00
举报帖子
使用道具

0
langzixdjun



等级:MIDP 1.0
文章:6
积分:3
注册:2006年12月8日
第 10 楼


这种文章很好适合没接触过的。谢谢楼主劳动