如何减少JavaME应用程序的大小?

如何减少JavaME应用程序的大小?,java,java-me,Java,Java Me,使用Java ME时,我遇到了以下问题: 项目中的所有类(包括匿名类)在项目生成后都转换为单独的文件。这会导致应用程序大小的增加,因为组装包中的每个文件都不小于1KB 这个问题在J2ME中尤其重要,因为应用程序的大小非常关键 我的问题是: 有办法解决这个问题吗 是否可以使用特定的方法来减小尺寸 申请表 您的目标是哪些设备?多年前,这在传统设备上曾经是一个问题,但除非你的MIDlet真的很大,否则你现在不应该有太多问题。您是否确实遇到过问题,或者您是否正在寻求有关如何在将来预防该问题的建议 您可以

使用Java ME时,我遇到了以下问题:

项目中的所有类(包括匿名类)在项目生成后都转换为单独的文件。这会导致应用程序大小的增加,因为组装包中的每个文件都不小于1KB

这个问题在J2ME中尤其重要,因为应用程序的大小非常关键

我的问题是:

  • 有办法解决这个问题吗
  • 是否可以使用特定的方法来减小尺寸 申请表

  • 您的目标是哪些设备?多年前,这在传统设备上曾经是一个问题,但除非你的MIDlet真的很大,否则你现在不应该有太多问题。您是否确实遇到过问题,或者您是否正在寻求有关如何在将来预防该问题的建议


    您可以使用.

    来混淆和减少编译的类大小,因此Proguard已经很好地从最终Jar文件中削减了300K。它能做得更多吗?大概你使用了什么设置?至少有:
    • defaultpackage=“”,所有模糊化的类都将移动到默认包中
    • 如果参数和返回类型不同,则多个字段和方法可以获得相同的名称
    • OptimizationPass=“3”,要执行的优化过程数。这可能因应用程序而异。检查最终的罐子大小,当它不再缩小时,停止增加这个值
    但是,您的jar文件不太可能下降到仅使用proguard所需的256kb。
    当您说您的媒体文件已经压缩时,您是否在将其添加到lwuit之前先对其进行了PNGGauntlet?

    +1以推荐Proguard。我们在J2ME项目中使用了它——它将一个2MIB的MIDlet JAR减少到了100kib以下。例如三星3010c或3050。这款手机的最大jar文件大小为256 kb。ProGuard非常非常擅长识别和修剪未使用的依赖项+1.我也使用Proguard,但它将应用程序大小从800 kb减少到500 kb。它仍然是256KB,并且应用程序无法安装在旧设备上。@Galogen 800 KiB中有多少是第三方JAR,您与应用程序捆绑在一起?您的问题是针对Java ME的,还是您也希望得到核心Java的答案?这个问题涉及整个Java,特别是J2ME。您的JAR文件是否包含任何与此相关的内容不是.class文件?图像、音频文件。。。如果您发布最大的.class文件的源代码,我们还可以帮助您缩小单个.class文件。@QuickRecipesOnSymbianOS是的,但所有媒体文件都已压缩。lwuit还帮助我们将所有文件(如图像)压缩到单个资源文件中。主要问题涉及代码级别的压缩。