J2me与Antenna

来源:互联网 发布:许单单知乎 编辑:程序博客网 时间:2024/06/05 11:49

J2meAntenna

一、Antenna初步

认识Antenna

Antenna是基于Ant的J2me开发工具,可以使用Antenna对J2me程序进行编译、校验、打包、混淆、运行Jar及将已经打包完成的Jad和Jar部署到OTA服务器上。除此之外,Antenna的预处理可以提供对源程序进行相关的处理,以达到多机型时配的要求。

获得Antenna

    Antenna官方:http://antenna.sourceforge.net/

    Antenna下载地址:http://sourceforge.net/projects/antenna/files/

Eclipse3.2配置Antenna

1.     选中左边J2ME选项

2.     Antenna JAR选择已经下载的Antenna的Jar包

3.     WTK Root选择WTK的根目录

 

附:Ant使用入门:http://nything.javaeye.com/blog/419873

二、Antenna任务

Eclipse 3.2使用Antenna示例:

1.     工程:Venus

2.     相关文件:VenusCanvas.java   VenusMIDlet.java等

3.     选中项目并点右键 à  选中J2ME à选中 Export Antenna Build Files

4.     生成三个文件:

a)       build.xml

b)       eclipseme-build.properties

c)       eclipseme-build.xml

5.     执行build.xml文件   右键 à Run As  à  1.Ant Build

6.     最终的文件结构

7.     文件说明:

a)       build.xml是Ant执行的文件,一些Ant à Antenna如何执行的一些配置,依赖Ant

b)       eclipseme-build.properties文件主要是配置程序有关的属性,例如:编码、是否校验、WTK目录、混淆等相关的属性

c)       eclipseme-build.xml真正配置并执行Antenna的任务

8.     eclipseme.feature_1.6.8版本在测试时没不能自动生成build.xml,只能生成其它两个,build.xml文件只是一个模版文件,从别的项目中copy一个

(附件::VenusForAntenna项目)

编译<Build>

WtkBuild 任务基于Ant标准Javac的扩展,它可以设置适当的路径和预校验允许,此任务基本上保持默认。

注:如果项目依赖第三方Jar包的话,此处要进行设置

校验<Preverify>

WtkPreverify 任务提供一独立的预校验收报告任务,不过WtkBuild和WtkPackage任务包括相同的功能。注意:WtkPreverify 要么可以操作目录或一个JAR文件,而不是两上。

注:校验要使用的Java命令只有在开发运行环境才有

打包<Package>

WtkPackage任务是对扩展Ant的标准Jar任务,正确处理JAD文件,并能纳入最终JAR文件的完整库,它也允许校验和生成的文件混淆。

注:中文乱码问题及及入第三方Jar

混淆<Obfuscate>

WtkObfuscate任务提供了一个独立的混淆的任务,要将ProGuard或RetroGuard的JAE包入到WTK的Bin目录下,如果同时配置的话,会优先考虑ProGuard。

注:要将混淆包的Jar文件入到Wtk的bin目录下以及jar命令也是Java开发运行环境支持

运行<Run>

WtkRun任务启动已经存在的一个JAR/JAD文件,它可以设置模拟器,是否等Ant运行结束等设置。

部署<Deploy>

    WtkDeploy基本无法研究

Task总结

问题总结

1.     用Antenna打包或混淆生成的JAR稍微大一点  (MANIFEST.MF)

2.     <taskdef resource=”antenna.properties”/>  读取Antenna.jar中的配置文件

3.     <antcall target="-eclipseme-obfuscate”/>  调用混淆任务

a)       两种混淆支持 wtk还有一种就是自己用的

b)       选第二种,相关配置:obfuscate="false"

4.     中文乱码处理

a)       项目的编码:UTF-8  workspace设置编码

5.     添加第三方Jar包

a)       一般是应用Jar包

b)       Wtkbuild属性:classpath="${project.root.jarTest}\verified\libs\j2meslave.jar"

c)       Wtkpackage属性:libclasspath="${project.root.jarTest}\verified\libs\j2meslave.jar"

d)       <fileset dir="${path.build.classes}"/>

6.     更改JRE运行环境

a)       Jre-jdk的更改

7.     除信息外打印出的红色字为警告

 

以上的这个任务有很多属性,官方网站都有介绍,考虑到项目中不可能完全使用到这些属性,提供示例文档并加以注释来帮助大家理解。

预处理<Preprocess>

WtkPreprocess任务提供了一个预处理器,类似C语言的预处理。请注意此任务只预处理源文件,但不编译它们。

使用它的过程会比较困难,因为它有很多语法上的规范学习。

介绍

预处理:所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。

Wtkpreprocess指令:

Wtkpreprocess运行符:

该处理器支持三种类型的变量:intStringboolean

 

Antenna Preprocessor插件的安装

更新安装插件

 

搜索安装插件

 

添加插件的更新站点及名名称

 

安装成功后,会要求重新启动Eclipse。再打开你的项目时,点右键会出现一个Antenna Preproccessor这个远项,用于是否开启它的预处理机制

 

本图片显示Antenna Preproccessor的操作界面

Antenna Preprocessor插件的使用

预处理相关的配置文件

首先将不同的机型分类,比如NokiaMotorola等等,并且将同一机型按系统来分,比如:s40s60等,最后单一的机型放到devices.xml文件,不过有些机型的参数并不完整且有些机型没有提供。

 

通过手动添加参数来完成参数不完整的机型,或者是一些没有的机型:(它的参数是随意添的,但为了统一,还是要与当前机型的参数一致,并且添加新参数时要有一定的规范)

 

1.      添加已经机型参数:

l         Motorola/V300

l         Nokia/N72

从上面两图可以看出,Motorola/V300并没有左软按键的定义,而Nokia/N72是有的,就这样为Motorola/V300添加左软按键的按键值

l         添加Motorola/V300按键值:(红箭头所指的文本框内容为添加的代码,我们的程序代码不用变)

 

2.      添加自定义参数(系统中没有定义的参数)

isTouchScreen表示是否支持触摸屏,这样通过自己定义的参数。主要是给一个依据,这样让我们的代码有流程正确的走下去。

 

3.      添加机型

它总结上面的两种情况,添加机型时,所有的参数最好用系统已经定义的,并添加那些自定义的机型参数,它是添加自定义参数的特殊情况

向上面这样,我们可以自己定义它的屏幕宽、高等参数,你想添加什么就添加什么

isHasKeyBoard ="true",isTouchScreen ="false",isNotAlphaMsgBg ="false",isNeedEmotion ="true",isNeedHead ="true",isSupportSMS ="true", isSupportIVR ="true", isSupportMIDI="true", isSupportSound="true",isSupportVibrate="true",isNeedProxy="true",EMOTICON_SIZE=15,HEADICONSIZE = 14, connect = "CONN_BOTH", BUILD_VERSION = 0, phone="SAMSUNG E878",ScreenWidth=176,ScreenHeight=220

1.      

原创粉丝点击