JAVA手机编程实验指导书实验1.docx
《JAVA手机编程实验指导书实验1.docx》由会员分享,可在线阅读,更多相关《JAVA手机编程实验指导书实验1.docx(13页珍藏版)》请在冰豆网上搜索。
![JAVA手机编程实验指导书实验1.docx](https://file1.bdocx.com/fileroot1/2023-1/9/d5d7d424-c09b-4003-9d93-90557af498fe/d5d7d424-c09b-4003-9d93-90557af498fe1.gif)
JAVA手机编程实验指导书实验1
JAVA手机编程--实验指导书
实验1:
设置编译环境,编写第一个J2ME程序
实验目的:
学会基本编程环境的安装与配置
实验内容:
按照配置安装步骤,自行练习
实验方式:
教师指导为辅,学生自己动手为主
实验步骤:
方式一:
J2me手机程序开发起步-----用命令行环境开发MIDLETS
开发j2me手机程序的工具初学者选用SunJavaWirelessToolkit(WTK)是个不错的选择,下面用一个简单的J2ME手机程序,介绍WTK开发J2ME手机程序的过程。
1.工具
J2SE即JDK安装(jdk-6u2-windows-i586-p.exe)
sun_java_wireless_toolkit-2_5(WTK)安装(可以到下最新版本)
UltraEdit:
用来编辑j2me源程序,如果不想用它,其它的文本编辑器都行
2. 开发环境配置
2.1先安装J2SE,我的目录是:
C:
\ProgramFiles\Java\jdk1.6.0_02
安装完成后,在“我的电脑—》属性—》高级”中,配置java环境变量:
SETPATH=c:
\ProgramFiles\Java\jdk1.6.0_02\bin;
SETCLASSPATH=.;C:
\ProgramFiles\Java\jdk1.6.0_02\lib\tools.jar;C:
\ProgramFiles\Java\jdk1.6.0_02\lib\dt.jar
2.2安装SunJavaWirelessToolkit2.5,
我的目录:
C:
\WTK25。
注意:
WTK的安装程序与普通程序一样简单,只有一点需要注意,由于WTK自身并没有附带Java的运行环境JDK,所以,在WTK安装之前你需要安装自己的JDK,如步骤2.1。
WTK会首先自动检测当前系统已有的Java虚拟机。
3.WTK的目录结构
3.1关于WTK:
WTK的全称是SunJ2MEWirelessToolkit——Sun的无线开发工具包。
这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。
使用其中的工具可以开发与JavaTechnologyfortheWirelessIndustry(JTWI,JSR185)规范兼容的设备上运行的j2me应用程序。
该工具箱包含了完整的生成工具、实用程序以及设备仿真器。
到本文写作时为止可以获取有四个版本,分别是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全面的支持JTWI规范。
具体的说,即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的官方网站免费下载。
3.2WTK目录结构说明:
安装完成后我们会在安装目录下看到一些文件和文件夹,主要的有:
✓appdb目录:
RMS数据库信息
✓apps:
自带的demo程序,也是存放我们的项目文件的地方,每一个项目都会自动建立一子目录来管理与项目相关的文件。
现有的项目也可以直接复制到该目录下运行和调试。
✓bin:
J2ME开发工具执行文件
✓docs:
各种帮助与说明文件.
✓lib:
J2ME程序库,Jar包与控制文件
✓wtklib:
WTK主程序与模拟器外观
✓session目录:
性能监控保存信息
✓index.html:
是一个关于j2me的参考手册.
4.启动界面我们在开始——〉所有程序中可以找到刚刚安装的(WTK),如图
WirelessToolkit2.5是WTK最常使用的工具,它可以用来建立工程,修改工程,以及启动模拟器来调试执行我们所编写的程序。
如图:
图1
5.第一个J2ME程序
我们运行WirelessToolkit开发工具.进入WirelessToolket的界面,如上图所示。
首先,我们点”FileNewProject”或者直接点”NewProject”按钮,建立一个新的项目,如图所示:
图2
在里面填入项目名和MIDlet的主类名,点”CreateProject”按钮,出现了下图所示的界面:
注意了,这里项目名可以自己随意起,但是类名要和我们一会儿写代码时的类名保持一致。
该界面用于配置MIDP应用程序的一些属性值,取默认值,点”OK”。
这样进入下图:
图4
这里提示你应该将java源文件放入:
c:
\WTK25\apps\Hello\src下面。
你进入”WTK”安装目录中的apps文件夹,可以看到多了一个Hello文件夹,它就是你所建立的项目文件目录。
WTK产生项目后,不同类型的资源有着相对固定的存放位置。
Java源文件被放在apps目录下\Hello\src下,相关程序资源文件(图片,音频)放在\Hello\res下,应用程序库文件放在\Hello\lib下,这在WTK中是必须注意的,即便是相对路径,也必须是在该目录下建立。
项目创建成功后,我们来创建一个MIDlet文件,MIDlet是J2ME项目文件的入口文件,也是必须的。
在\Hello\src目录下创建Hello.java,采用默认包,注意,此时创建的java程序必须是与我们在创建项目时键入的MIDlet类名一致。
1. 一个MIDlet在生命周期中有三个状态Active(激活),Paused(挂起)和Destroyed(销毁)。
这些状态直接对应三个方法startApp(),pauseApp(),destroyApp()。
一个典型的MIDlet,大多数处于Active或Paused状态,当MIDlet关闭时进入Destroyed状态,直到完全从内存中移出。
我们自己的MIDlet程序要覆盖(override)相关的生命周期方法。
例如,当一个游戏MIDlet启动时,你可能要创建对象或装载数据;当MIDlet暂停时,你可能应当关闭网络连接并暂停音乐;最后MIDlet销毁时要释放分配的资源,同时保存相关的游戏数据。
下面是我们简单的MIDlet:
importjavax.microedition.lcdui.*;
importjavax.microedition.midlet.MIDlet;
publicclassHelloextendsMIDlet{
Displaydisplay;
publicHello(){
super();
display=Display.getDisplay(this);
}
protectedvoidstartApp(){
Formform=newForm("HelloWorld!
");
form.append("WelcometoJ2MEworld!
");
display.setCurrent(form);
}
protectedvoidpauseApp(){//MIDlet类中定义的方法之一,暂停MIDlet,这里什么都不做。
}
protectedvoiddestroyApp(booleanarg0){//MIDlet类中定义的方法之一,销毁MIDlet。
这里什么都不做。
}
}
2.将上面的程序以”Hello.java”命令保存在我们刚才建的项目中的src目录底下,这时我们点图(4)所示界面中的”Build”按钮,”WirelessToolkit”将自动为我们编译源代码,编译成功后,生成的相应的文件都会放到项目文件夹Hello下相应的目录中,我们就可以点击图(4)所示的”Run”按钮启动程序,再点击手机上launch按钮运行程序了,如图(5)所示:
图5
注意:
BUILD过程中如果有错误生成,则会在控制台中提示。
根据提示信息对MIDlet文件进行修改,再重新生成,直到编译成功。
对编译成功的程序,你可以从“设备”选项中选择DefaultColorPhone,DefaultGrayPhone或者其它WTK自带的设备模拟器。
运行成功以后,在HelloWorld/bin目录下,将会产生一个程序描述文档JAD,它清楚的描述了当前MIDlet的名称与版本,发行人,指定的JAR包名称与大小,支持CLDC与MIDP版本等信息。
在进阶开发中,默认的联网字符串,签名私钥等信息也可以保存在这个描述文档中。
apps目录中包括了许多Demo程序,为我们演示了J2ME的一些技术实例,这些往往是很好的学习材料,同学们可以试着打开看看并运行。
3 执行MIDlet、打包和混淆
3.1执行MIDlet
除了我们刚刚介绍的在WirelessToolkit2.5中执行一个程序,我们还可以在程序组中直接选择RunMIDPApplication…,这是就可以在弹出的对话框中选择其它路径中的JAD程序运行了。
当我们直接选择运行时,需要注意两个问题:
1. JAD描述文件与其指定的JAR文件在同一个目录下。
2. 运行目录路径中不要包含中文。
3.2打包成JAR
WirelessToolkit的生成功能只能帮我们将源代码编译并预先审核,并不会帮我们产生JAR文件,而我们如果要发布MIDP程序,除了JAD描述文件,JAR是必须的,这就需要打包。
在KToolbar选中”Project”——“Package”——“CreatePackage”,可以把整个程序,包括资源文件打包成JAR文件。
形成的JAR保存在apps\Hello\bin目录下。
3.3包混淆(不作要求,同学们可选做)
在上面的操作中,我们看到,除了“产生包”,另外还有一个“产生混淆包”选项。
所谓混淆,是为了防止别人反编译后读取源代码,将程序(.class文件)进行混淆,经过混淆的JavaByteCode可以增加别人反编译的时间。
这里我们使用开源的ProGuard(请同学们自行网上下载),把下载后的ProGuard解压,在解压目录的lib子目录中找到proguard.jar文件,将其拷贝到WTK安装目录的bin下,再执行混淆包。
这是我们将会发现apps\Hello\bin下的JAR大小变小了,反编译后的各个名称也变得毫无意义了。
4WTK中其它值得关注的功能
除了以上所说各点,WTK(2.2版)还提供诸多实用功能。
这些都可以在编辑——偏好中找到。
例如,当我们需要监视程序性能的时候,可以选中“启用内存监视器”,在下一次模拟器执行的时候,我们就可读出程序运行时的内存消耗均值,消耗峰值以及具体产生对象的个数和使用情况。
除了内存监视,我们还可以执行网络监视,设定存储区大小和堆栈大小,设定安全签名和蓝牙操作属性,以尽可能模拟手机实际运行环境,这些功能在进阶开发中都是非常实用的。
注意:
虽然WTK为我们提供了各种工具来模拟手机运行环境,但在实际开发中,由于受到手机硬件,网络条件等诸多限制,MIDP的真实性能在不同机器上会出现不同的反应,与WTK中的表现可能差别更大。
从菜单中选择“工具集”可以看到更多的实用工具,这些都是开发实用的j2me程序时会频繁使用到的。
方式二:
J2ME-EclipseIDE的安装与配置
1.安装Eclipse
Eclispe是大势所趋,所以我们选择了Eclipse作为开发环境,J2ME开发包工具可以被绑定在这些集成开发环境中,进一步提高开发效率。
我们现在用的是Eclipse3.5.2和EclipseMe1.7.9,将下载下来的EclipseMe1.7.9压缩包解压,解压后会有两个文件夹features和plugins。
将两个文件夹内的内容分别拷贝到Eclipse安装目录下的features和plugins目录下。
这时启动Eclipse。
2、配置EclipseME
在此,在方式一里你已经安装了WTK。
如果没有,请到Sun公司的网站上下载。
Eclipse启动后点击窗口-->首选项(如图1)。
(图1)
弹出(图2)显示的首选项对话框。
如果EclipseME插件安装成功,则在对话框左侧的树中能够看到J2ME节点。
中选择J2ME进行相关配置。
Step1、设置WTK根目录
点击左侧树中的“J2ME”,出现如下图界面。
这里唯一需要配置的是WTK Root。
在这一项中要填入WTK的安装根目录。
例如,我的WTK安装在c:
\WTK25。
其余的使用默认即可。
提示:
值得一提的是AntennaJAR这一项。
AntennaJAR不是一个必设项,但是使用AntennaJar能够编写Ant文件,轻松打包J2ME程序。
(图2)
Step2、设备管理
点击“DeviceManagement”,出现(图3)配置界面。
点击“Browse”,选择WTK安装目录下的bin文件夹。
例如我的bin文件夹的路径为c:
\WTK25\bin。
然后再单击“Refresh”。
插件会自动搜索出可用的设备。
(图3)
完成上面工作后,可以说你的J2ME环境基本上就搭建好了。
你可以在上面新建、编译、测试、打包你的程序了。
怎么样简单吧?
但是有一个问题,我们没有设置混淆器,不能使用“CreateObfuscatedPackage”。
混淆器对减小Jar包大小,防止程序被反编译很有用。
(图4)
Step3、设置混淆器Proguard(不作要求,同学们可选做)
设置前请先下载Proguard。
目前Proguard的最新版本是3.6Beta(4.0正在开发中)。
我用的是3.5。
你可以在此下载到:
EclipseME单击“Obfuscation”,出现下图界面。
在“ProgurdRootDirectory”填入Proguard的安装目录。
(图5)
好了,这样你的J2ME开发环境就搭建好了,你可以开始用Eclipse进行J2ME开发了。