<b>J2ME学习之温故而知新篇</b>[Java编程]
本文“<b>J2ME学习之温故而知新篇</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
学习J2ME最重要的部份是掌握J2ME的体系构造,J2ME是SUN针对嵌入式消费类电子产品推出的开辟平台,事实上它是一系列的技术和标准的总称.J2ME的核心是Configuration(配置),Configuration的目的是定义一套纵向的API而服务于遍及的设备,同时VM也是在Configuration一层规定的.在Configuration的上面是Profile(描写),他是运行在Configuration上面的,它的目的是为一类具有某些重要特点的设备供应支持.这些特点都很重要,但是它们又不是在全部的设备上都具有的.SUN对当前市场上的设备举行硬件层的抽象按照设备的处理器、内存和网络衔接本领提出了两个尺度的配置,这就是CLDC和CDC.
目前国内说起J2ME就指CLDC+MIDP事实上是不精确的,忽视了更为强盛的CDC是难以谅解的.配置和描写的配合非常的机动,在一个配置上面可以同时支持多个描写,比方在CLDC上我们可以运行基于MIDP上的程序,假如设备支持的话你还可以运行Bluetooth这样的可选包.掌握了J2ME的体系构造我们就不会在J2ME的学习中迷路.假如你要具体理解J2ME一路发展的历史,可以下载JSR标准读读,地址是http://jcp.org.
目前风行的开辟是手机开辟,因此我们在本文中将主要报告CLDC+MIDP的主要内容,下文的J2ME也特指CLDC+MIDP,但是我们必须清楚J2ME并非指CLDC+MIDP.
J2ME的内容并不多,假如你读读MIDP的api的话,发现总共也就是那么百十个类.比起J2SE的几千个类库真是小巫见大巫,之所以供应这么精简的类库给开辟人员主要缘由是移动信息设备的资源受限特点.在CLDC1.0中只定义了三个包java.lang,java.io和java.util.这构成了CLDC的语言底子,在这层同时还包含了KVM.在开辟J2ME程序的时刻切忌想当然,因为并非全部的J2SE类库都在J2ME中得到了支持.
学好J2ME最快速的方法就是编写J2ME的利用程序,多读代码、多写代码.在J2ME中提出了一种新的利用程序情势——MIDlet,这个类定义在javax.microedition.midlet.MIDlet中,我们的MIDlet必须扩大这个类并实现它的三个抽象办法startApp(),pauseApp()和destroyApp().办法同时也反映出了MIDlet的生命周期,MIDlet的生命周期是由AMS(application management software,从前叫做JAM)管理的.关于MIDlet的生命周期可以细心参考一下API doc.
在CLDC推出后两个月的时间,SUN就推出了MIDP1.0,让人高兴的是在MIDP中供应了GUI,这样开辟人员可以很便利的编写J2ME利用程序了,GUI得类库在javax.microediton.lcdui中定义,在MIDP2.0中SUN增添了对游戏开辟的支持推出了javax.microedition.lcdui.game包,便利开辟人员开辟游戏.MIDP中的UI并没有采纳AWT大概SWING的计划思惟,因为他们是针对PC的,在手机等设备上主要的交互还是通过按键完成的,因此针对鼠标键盘事件机制计划的AWT/SWING并不合适J2ME平台.在掌握UI的时刻,我们在头脑中应当清楚的知道J2ME平台的界面和事件处理是辨别高级和初级的.高级界面和事件处理相对简单,但是速度快、可移植性好.初级用户界面和时间处理相对复杂,但是功效强盛、可移植性差.普通在开辟游戏的时刻我们多用初级UI.
在J2ME平台中供应了一个小型的数据库,他就是Record Management System.他的数据是存储在非挥发性存储器上的,因此不会因为程序的退出以及手机的关机而丧失,从而为J2ME平台供应了长期性存储.RMS的计划非常的玲珑,他主要负责存储数据和标志数据,数据存储是面向子节的,RMS标准并没有阐明什么数据能被存储,只要数据可以转换为子节,都可以被存储.RMS是通过id来标志数据的,但是他并非索引.计划玲珑当然合适在手机上运行了,但是加重了开辟人员的任务,我们必须负责存储数据和读取数据并表示数据,在本站有专题介绍RMS,请参考.
在J2ME中非常重要的框架就是GCF,它是在javax.microediton.io里面定义的,供应了联网的本领.在MIDP2.0中更是供应了对TCP/IP层联网的支持.在GCF中核心是Connector,而面向接口的计划使得GCF的扩大性非常超卓.我们在开辟联网程序的时刻必必要触及到的问题就是多线程问题.因为联网操作必须在另一个线程中完成,而不能再主线程内,这样是为了避免堵塞.这时刻你应当熟习到其实学好J2ME必必要有坚固的J2SE的底子.
在J2ME中有个非常重要的概念就是可选包,可选包是针对特定设备功效提出的,比方有些设备可以支持移动多媒体,那么你便可以利用MMAPI举行相关的开辟.
事实上设备厂商同时会开辟一些针对自己设备的API给开辟人员利用,一旦你利用了他们的API那么你的利用程序就丧失了可移植性,比方Nokia 6108的程序不能在Motorola 388c上运行.SUN为了改进这些分裂API的问题在JSR185中举行了一定强度的标准,也就是我们所知道的JTWI,JSR185并没有供应新的API,只是对实现JTWI的设备举行了标准,比方Heap空间至少为256K等.具体资料可下载JSR标准读读看.在上面代码中的process办法被称为回调函数.从本质上说,回调函数就是事件函数.在Windows API中常利用回调函数和调用API的程序之间举行数据交互.因此,调用回调函数的历程就是最原始的引发事件的历程.在这个例子中调用了process办法来得到数据也就相当于在run办法中引发了一个事件.
以上是“<b>J2ME学习之温故而知新篇</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |