锁定老帖子 主题:Antenna与j2me打包
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-28
Antenna与j2me打包
众所周知,j2me平台受限于各厂商对KVM的实现不同。此外,由于不同终端性能的差别,j2me开发中的 机型适配是相当繁琐的工作。当然,对于该难题,有很多种解决方案。例如,可以使用j2mepolish,请参考本人以前发表的文章《使用J2mePolish的build和preprocess功能》。本文主要讨论如何使用antenna来解决这个问题。 Antenna介绍Antenna是基于ant的j2me开发工具。可以使用antenna对j2me程序进行 编译、校验、打包、混淆等,甚至可以通过antenna所定义的task,运行已经打包完成的jar;还可以将打包完成jad和jar部署到OTA服务器上。 以上功能,只是对ant的扩展,在我以前的文章《使用Ant对j2me程序打包》也讨论。其实,以上所说的功能,直接使用ant也能实现,只是antenna对这些task进行了扩展,使得对j2me程序的打包过程更加的傻瓜话罢了。貌似,话说到这里有些自相矛盾了,既然这些功能ant都能实现,还介绍antenna干嘛呢?其实,本人最推崇antenna的,不仅是它对j2me打包过程的简化,而且特别赞赏它对预处理的支持。除此之外,antenna的预处理,结合了j2mepolish所提供的device.xml数据库,就是说,我们也可以像在j2mepolish中那样,对源程序进行相关的处理,以达到多机型时配的要求。 Antenna中的预处理Antenna中的预处理原来与j2mepolish等支持预处理的软件一致,都是在编译之前,对代码中定义的预处理脚本进行处理,并生成符合脚本定义规则的代码。 在antenna中,通过“wtkpreprocess”task来进行预处理。关于预处理脚本的定义,请参考antenna自带doc中的wtkpreprocess.html。此外,本文讨论的preprocessor是指新版的preprocessor,即version=2,原来的预处理机制不在本文讨论范围之内。 下面举例说明,如何通过在代码中定义脚本获取终端相关信息,类似于《使用J2mePolish的build和preprocess功能》一文中的例子,感兴趣的朋友可以结合起来学习。 Task定义如下: xml 代码
其中,device为制定的机型型号,而printsymbols用于标示,是否在处理过程,将所有的标记打印出来。出于学习和调试目的,最好设置为true 源代码片断: java 代码
如此一来,就可以通过antenna中的预处理机制,解决多机型之间,键值不同,屏幕大小不同,扩展API不同等问题。 注意,device.xml中,有些数据并没有安全定义。例如,各终端的导航键值就没有定义。可自行添加到device.xml中,然后覆盖原来的antenna包中的device.xml即可。 目录结构定义在打包过程中,对整个工程的目录设置如下,具体体现在build.xml中 src ——源码目录 res——资源目录 build --classes—— 编译后的class文件以及从res复制过来的资源文件 --deployed——jar和jad文件 dist——预处理后的java文件 Ant脚本 按照以上分析,build.xml文件定义如下: xml 代码
注意:如果是在Eclipse中使用ant 来运行build.xml,请注意ant_home路径的设置,且确认ant_home\bin目录下存在antenna包。 软件版本 apache-ant-1.7.0 antenna-bin-0.9.15-beta.jar jdk1.5 eclipse3.2 参考文章J2ME Antenna 入门 作者:redduke1202 地址:http://community.csdn.net/Expert/TopicView3.asp?id=5298691 《Using_Ant_and_Antenna_MIDP》 Nokia文档 《j2me build.xml例子》 作者:Peter 地址:http://hi.baidu.com/wapeter/blog/item/3beb9f2268f571f2d6cae2d2.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-08
非常不错,最近antenna v2的预处理真是好的很
|
|
返回顶楼 | |
发表时间:2007-10-09
antenna v2??
|
|
返回顶楼 | |
发表时间:2007-10-11
请问下 %key.LeftSoftKey%这个值是读外部的配置文件还是读哪里的数据?
|
|
返回顶楼 | |
发表时间:2007-10-12
设备配置文件,这个过程由预处理程序完成
在antenna的包里,文件名为 device.xml |
|
返回顶楼 | |
发表时间:2007-10-12
eclipse里怎么用antenna,怎么弄使用预编译时不应该是错误提示。
|
|
返回顶楼 | |
发表时间:2007-10-13
如果是在Eclipse中使用ant 来运行build.xml,请注意ant_home路径的设置,且确认ant_home\bin目录下存在antenna包。
|
|
返回顶楼 | |
发表时间:2007-10-13
回zjq842999
你也可以使用j2mepolish里的device.xml,除了该数据文件,还有很多其他有用的配置文件,建议看看我的另外一篇关于j2mepolish的文章 |
|
返回顶楼 | |
发表时间:2007-10-17
请教pandonix
怎么在ECLIPSE里使用ANTENNA的device.xml,我已经安装了ANTENNA的插件,可以详细点吗 |
|
返回顶楼 | |
发表时间:2007-10-19
不需要安装antenna插件,你只需要在Eclipse中使用ant,然后在ant_home\lib中加入antenna的包,目前,我使用的版本是:antenna-bin-0.9.15-beta.jar.然后再Eclipse中的Windows->Prefences->ant里面重新配置一下ant_home
这些在我文章里面都有介绍,可以再参考一下其它几篇关于ant、j2mepolish相关的文章 |
|
返回顶楼 | |
浏览 13042 次