NetBeans建立CLDC/MIDP应用程序
一、NetBeans建立CLDC/MIDP应用程序
NetBeans IDE使用同样的Java编译器来建立CLDC应用程序,其背后使用了-bootpathoption选项来重定位编译器使用不同的基础类。
建立选项——尤其是optimization(优化)和obfuscation(混淆),在JavaME设备中扮演了重要角色。原因如下:
1)商业应用,保护知识产权。
2)优化和混淆能使得应用程序更小,应用传输到目标平台所耗时间更少,占用目标硬件的内存更小。
因为混淆对类名、方法名和成员变量等使用更简短的名字进行了重命名;并删除了未使用的类、方法和成员变量。
NetBeans IDE使用了流行的、开源的ProGuard混淆器,它可以从项目属性的混淆面板进行控制。
要管理这些,NetBeans SDK提供了项目配置,它是项目选项的集合,包括目标平台、应用程序描述、打包和建立选项等。
如果熟悉Java的Build过程,可以查看输出日志,可以看到混淆步骤的标签:pre-preverify、preverify和post-preverify。
代码混淆完成后,preverify(预校验)工具为虚拟机Runtime内联各个类文件的子程序,并增加必要的信息到每个栈帧(stack frame),完成了虚拟机原本要执行的类型检查和字节码验证。
如果不想使用NetBeans IDE,而是想使用工具链来Build应用程序,你需要下面这个preverify工具。
Sun Java Wireless Tookit。其它的工具链,如EclipseME,就需要此工具。
二、打包并执行CLDC/MIDP应用
在设备上,应用程序管理器向MIDlets提供服务。例如,下载MIDlets、运行和终止MIDlets、MIDlets之间共享系统资源等等。
MIDlets以两个文件来告诉应用程序管理器:
1)JAD文件
它描述应用程序
2)JAR包文件
包含的应用程序的字节码以及所需的资源。
实际上,很多MIDlet程序都打包成JAD/JAR对(它称为suite)。
JAD文件是属性的名/值对,比如看下面一个ElephantWidget JAD文件例子:
MIDlet-1: Weather,,com.rischpater.weatherwidget.ElephantWidget
MIDlet-Jar-Size: 3596
MIDlet-Jar-URL: ElephantWidget
MIDlet-Name: ElephantWidget
MIDlet-Vendor: Li Sir
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1
一般来说,JAD文件的相关域大致如下:
1)MIDlet-n
表示到图标、类名的名字和路径,以及它是MIDlet套件中的第几个应用。
2)MIDlet-Jar-Size
MIDlet套件的JAR文件的大小(单位字节)。它必须与实际的JAR文件尺寸相匹配,否则很多设备不接受JAR文件。
3)MIDlet-Jar-URL
MIDlet JAR文件的URL
4)MIDlet-Name
MIDlet套件的名字
5)MIDlet-Vendor
MIDlet套件的开发者
6)MIDlet-Version
MIDlet套件的版本号
7)MicroEdition-Configuration
MIDlet套件所需的Java ME虚拟机(CDC或CLDC)的版本号
8)MicroEdition-Profile
MIDlet使用的profile,包括其版本号。