|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。甚么是J2MEWirelessToolkit
WTK的全称是SunJ2MEWirelessToolkit――Sun的无线开辟工具包,利用个中的工具能够开辟在与JavaTechnologyfortheWirelessIndustry(JTWI,JSR185)标准兼容的设备上运转的Java使用程序。该工具箱包括天生工具、有用程序和设备仿真器。到本文写作时为止能够猎取有四个版本,分离是1.0.4,2.0,2.1和2.2。每一个版本都包含英语,日语,简体中文,繁体中文4个语种包。
1.0.4版只可以开辟MIDP1.0使用程序。
2.0版只可以开辟MIDP2.0使用程序。
2.1版则能够同时开辟MIDP1.0,JTWI(CLDC1.0,MIDP2.0,WMA1.1,可改用CLDC1.1或到场MMAPI1.1),自界说(本人随机组合Configuration,Profile和OptionalPackage)三种情况。
2.2版中,WTK撑持MIDP2.0,CLDC1.1,WMA2.0,MMAPI1.1,WebServices(JSR172),FileandPIMAPIs(JSR75),BluetoothandOBEXAPIs(JSR82),and3DGraphics(JSR184);同时您也能够利用该版开辟面向CLDC1.0和MIDP1.0的使用程序。
体系请求上,WTK2.2最少必要50MB可用硬盘,128MB体系RAM和800MHZPentiumIIICPU。
你能够在sun的官方网站收费下载。
WTK2.2下载链接(必要先上岸):
http://sdlcweb3b.sun.com/ECom/EComActionServlet;jsessionid=FE979CDFE94DE539C8DE6CF74FED7878
第二节J2MEWTK的内容和文件布局
在申明WTK文件布局之前,让我们起首把它安装起来。
WTK的安装程序与一般程序一样复杂,只要一点必要注重,因为WTK本身并没有附带Java的运转情况JDK,以是,在WTK安装之前你必要安装本人的JDK(笔者这里选用的是JDK1.4.2)。
WTK会起首主动检测以后体系已有的Java假造机:
然后显现出以后假造机地点路径
您在断定无误后,就能够持续了,最初安装乐成后,您将失掉一个包含多种有用工具的开辟包。
不管哪一个版本的WTK城市包含以下几个目次:
appdb目次:RMS数据库信息
apps目次:WTK自带的demo程序
bin目次:J2ME开辟工具实行文件
docs目次:各类匡助与申明文件
lib目次:J2ME程序库,Jar包与把持文件
session目次:功能监控保留信息
wtklib目次:JWTK主程序与摹拟器表面
WTK是用来开辟MIDP的,为了让MIDlet能够顺遂编译和实行,WTK必需具有CLDC和MIDP的类库,WTK能够匡助我们省往分外安装调试这些类库的工夫。而分歧版本的WTK包括的程序库内容是纷歧样的,好比说2.0中包括了midpapi.jar,wma.jar,mmapi.jar,而在2.1中则变成了cldcapi10.jar,cldcapi11.jar,midpapi10.jar,midpapi20.jar,wma.jar和mmapi.jar;在2.2中,wma.jar又细分为wma11.jar,wma20.jar。假如您在开辟中必要某个特定的jar包而以后的WTK版本又没偶然,您能够复杂把这个jar包拷贝如以后WTK的lib文件夹便可。
apps目次中包含了很多Demo程序,为我们演示了J2ME的一些手艺实例,这些常常是很好的进修质料。
第三节利用J2MEWTK创立工程
创建新项目
上面让我们用WTK来创立一个典范的HelloWorld程序,看看这水有多深。
在WTK的程序列表中运转KToolbar,翻开WTK主界面。WTK的题目菜单复杂了然的列出了这个工具包的可选功效。
单击新建项目,键进新建的项目名和启动MIDlet名,这里的项目是一个MIDlet套间,一样平常情形下是与MIDlet文件(Java文件)同名。
发生项目今后,会呈现项目标设置表,您能够选择以后方针平台,CLDC设置,和要接纳的MIDP可选包。再不必要某个库文件时,请不要选中它,以削减最初程序巨细。
别的,您还能够指定MIDlet的属性,这些设置将成为JAD,即J2ME程序的形貌信息文档。
我们的HelloWorld今朝不必要别的的附加设置,因而接纳默许,断定以后,把持台信息提醒创建乐成。
WTK发生项目后,分歧范例的资本有着绝对流动的寄存地位。Java源文件被放在apps目次下HelloWorldsrc下,相干程序资本文件(图片,音频)放在HelloWorldes下,使用程序库文件放在HelloWorldlib下,这在WTK中是必需注重的,即使是绝对路径,也必需是在该范例目次下创建。
项目创立乐成后,我们来创立一个MIDlet文件,MIDlet是J2ME项目文件的出口文件,也是必需的。在HelloWorldsrc目次下创立HelloWorld.java,接纳默许包,注重,此时创立的java程序必需是与我们在创立项目时键进的MIDlet类名分歧。
在新创立的java文件中输出代码,下文是一个复杂的接待Form程序。
importjavax.microedition.lcdui.*;
importjavax.microedition.midlet.MIDlet;
publicclassHelloWorldextendsMIDlet{
Displaydisplay;
publicHelloWorld(){
super();
display=Display.getDisplay(this);
}
protectedvoidstartApp(){
Formform=newForm("HelloWorld!");
form.append("WelcometoJ2MEworld!");
display.setCurrent(form);
}
protectedvoidpauseApp(){
}
protectedvoiddestroyApp(booleanarg0){
}
}
完成后保留java文件,单击WTK的天生键,由WTK为您举行编译,假如有毛病天生,则会在把持台中提醒。
依据提醒信息对MIDlet文件举行修正,再从头天生,直到编译乐成。对编译乐成的程序,实行运转,能够看到弹出一个手机摹拟器,显现出我们的第一个HelloWorld程序,假如实行有错,仍然会在把持台中给出提醒信息。
开启旧项目
当我们下一次从头启动WTK的时分,选择翻开项目,WTK会把apps目次下的使用项目全体显现出来,包含我们方才创建的HelloWorld,选择载进后,就可以够从头运转了。
第四节实行MIDlet,打包和搅浑
实行MIDlet
除我们方才先容的在KToolbar中实行一个程序,我们还能够在程序组中间接选择RunMIDPApplication…,这是就能够在弹出的对话框当选择别的路径中的JAD程序运转了。
当我们间接选择运转时,必要注重两个成绩:
1.JAD形貌文件与其指定的JAR档案文件在统一个目次下。
2.运转目次路径中不要包括中文。
打包成JAR
KToolbar的天生功效只能帮我们将源代码编译并事后考核,其实不会帮我们发生JAR文件,而我们假如要公布MIDP程序,除JAD形貌文件,JAR是必需的,这就必要打包。
在KToolbar选中项目――包――发生包,能够把全部程序,包含资本文件打包成JAR文件。构成的JAR保留在appsHelloWorldin目次下。
包搅浑
在下面的操纵中,我们看到,除“发生包”,别的另有一个“发生搅浑包”选项。所谓搅浑,是为了避免他人反编译后读取源代码,将程序(.class文件)举行搅浑,经由搅浑的JavaByteCode能够增添他人反编译的工夫,即使反编译后,也会由于类名变更成没成心义的标记而增添了解源程序的难度。更进一步,因为搅浑年夜年夜延长的源程序中类,成员变量和办法称号,招致天生的JAR体积变小!
今朝一样平常对照经常使用的搅浑器是两款开源产物:ProGuard和RetroGuard,本文彩用前者作为示例,你能够在http://proguard.sourceforge.net/上猎取。
把方才猎取的ProGuard解压,在解压目次的lib子目次中找到proguard.jar文件,将其拷贝到WTK安装目次的bin下,再实行搅浑包。这是我们将会发明appsHelloWorldin下的JAR巨细变小了,反编译后的各个称号也变得毫偶然义了。
第五节WTK中别的值得存眷的功效
到这里,我们就怎样用WTK创立,实行,打包,搅浑一个MIDP项目做了对照具体的先容。除以上所说各点,WTK(2.2版)还供应诸多有用功效。这些都能够在编纂――偏好中找到。
比方,当我们必要监督程序功能的时分,能够选中“启用内存监督器”,鄙人一次摹拟器实行的时分,我们便可读出程序运转时的内存损耗均值,损耗峰值和详细发生对象的个数和利用情形。
除内存监督,我们还能够实行收集监督,设定存储区巨细和仓库巨细,设定平安署名和蓝牙操纵属性,以尽量摹拟手机实践运转情况,这些功效在进阶开辟中都长短常有用的。
注重:
固然WTK为我们供应了各类工具来摹拟手机运转情况,但在实践开辟中,因为遭到手机硬件,收集前提等诸多限定,MIDP的实在功能在分歧呆板上会呈现分歧的反响,与WTK中的体现大概不同更年夜。
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。 |
|