CNJM首页 | 业界新闻 | 手机软件 | 终端应用 | 资源下载 | 开发文档 | EclipseME | CNJM论坛 加入收藏 | 设为首页  
logoTop pad
logoBottom
首页
历史
目录
先决条件
安装
创建一个新项目
创建一个新MIDlet
运行/调试
打包发布
高级话题
参考
常见问题
提交问题报告
技术支持
EclipseME开发者
许可证

Eclipse Ready Logo
SourceForge.net Logo


CNJM.net
spacer


打包

为了在J2ME设备上安装J2ME MIDlet套件,首先必须把它部署为JAD和JAR文件。 EclipseME内建了打包生成JAD和JAR文件的支持。

  1. 如何把MIDlet套件打包
  2. 打包选项
  3. 打包输出
  4. 使用Antenna打包
  5. 在打包过程中进行数字签名

如何把MIDlet套件打包

EclipseME是通过J2ME MIDlet套件项目的上下文菜单来提供打包支持的,请参见下面的截图。

screenshot

打包选项

有两种打包选项——创建混淆包(Create Obfuscated Package)创建包(Create Package).

创建包

如果使用创建包,那么将把JAD和JAR文件输出到在 首选项(Preferences)中配置的部署目录中。部署的JAR文件包含 校验过的类文件和资源文件。

创建混淆包

如果使用创建混淆包,同样将把JAD和JAR文件输出到在 首选项中配置的部署目录中。 EclipseME会使用在首选项中指定的Proguard工具 来混淆部署的JAR文件。

混淆能够对你的MIDlet进行一定程度的保护。更重要的是,混淆后的包通常会更小。

为了产生混淆包,需要正确安装Proguard工具,并在 混淆首选项(Obfuscation Preferences)中正确设置其安装目录。 Proguard是一个免费、开源的工具,可以从http://proguard.sourceforge.net/ 下载。

混淆过程中的错误和警告

在混淆过程中有可能产生警告或错误。这种情况下,会弹出对话框提示是否继续打包或取消。

screenshot

如果警告或错误可以安全的忽略,你可以选择继续(Continue), EclipseME会试图继续创建混淆包。根据问题的类型和严重程度,包有可能无法创建。

打包输出

部署JAR文件

EclipseME将使用下列信息来把JAR文件创建到部署目录中:
  • 在verified输出目录中的,经过预校验的class文件。、
  • 在资源目录中的资源文件。
  • 根据项目的JAD文件内容创建清单文件(manifest)。

部署JAD文件

在J2ME MIDlet套件项目根目录中的源JAD文件将被复制到部署目录中。 请在源JAD文件上进行修改,而不要对部署目录中的JAD文件进行修改,因为在打包过程中会覆盖掉部署的JAD文件。

在JAD文件的部署过程中, 会根据刚刚生成的JAR文件的实际大小来更新JAD文件的MIDlet-Jar-Size属性。

混淆包的输出

JAR和JAD文件是在MIDP兼容的设备上部署应用所必需的。在此之外,在混淆过程中还产生了一定数量的其它文件。 这些文件和生成的JAR文件、JAD文件一起,被放在部署目录中。

  • *_base.jar
    这个JAR文件包含混淆之前的初始包。这个文件被作为混淆处理的源。
  • *_base_obf.jar
    这个JAR文件包含混淆后的class文件。对这个jar文件进行预校验处理就产生了最终的混淆并校验过的JAR文件。
  • pro_map.txt
    这个文件包含了类中原名和混淆后的名字的对应关系。 利用这个文件,就可以使用Proguard的ReTrace命令, 来根据混淆后的追踪输出(stack trace)来重建原始的追踪输出。
  • pro_seeds.txt
    这个文件列出了作为混淆种子(seed)的MIDlet子类。
  • proguard.cfg
    这个文件包含Proguard的混淆参数设置。

使用Antenna打包

先决条件:

如果这些先决条件未获满足,就会弹出一个错误信息对话框。

从J2ME项目菜单选择“导出Antenna构建文件(Export Antenna Build Files)”来导出Antenna的构建文件。 会自动产生下列几个文件:

  • build.xml - 用来进行标准Ant构建流程的根构建文件。 这个文件是包含eclipseme-build.xml文件的骨架文件。 这个文件可以修改,它不会被接下来的导出操作覆盖掉。
  • eclipseme-build.xml - 这个构建文件处理对Antenna库的调用并包含所有与导出的Eclpse项目相关的类路径(classpath)信息。 这个文件不能被修改,因为它会被后面的导出操作重写。只要项目的类路径(classpath)更新了,这个文件就会被重新生成。
  • eclipseme-build.properties - 这个文件包含了一些跟构建相关的位置和首选项定义。这个文件也不能被修改,它也会被后面的导出操作重写。 在此文件的同一路径内创建一个user-build.properties文件就可以覆盖这个文件里的属性。 user-build.properties中定义的属性值会覆盖掉eclipseme-build.properties中的同名属性值。

在打包过程中进行数字签名

从EclipseME 0.7.0版本开始,你可以在打包流程中对你的MIDlet套件自动进行数字签名。 经过的签名的MIDlet套件可以运行在“受信任的第三方(trusted third party)”保护域中, 而不是在“不被信任的(untrusted)”保护域中。如果你的MIDlet需要访问被保护的特性,那么进行数字签名就很重要。

为了在打包流程中对MIDlet套件进行数字签名,你要在项目属性页中选中 签署项目(Sign project)复选框。 你需要提供密钥库文件的位置,密钥库中密钥的别名,另外可选的,你也可以提供密钥库和密钥的密码。

关于对MIDlet套件进行数字签名的进一步信息,请点击这里



Copyright © 2005, http://www.eclipseme.org. All rights reserved. 本中文版由中国Java手机网<www.cnjm.net>翻译