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

Gal*_*gen 5 java java-me

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

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

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

我的问题是:

  1. 有办法解决这个问题吗?
  2. 是否可以使用特定方法来减小应用程序的大小?

fun*_*bro 5

您定位的是哪些设备?这曾经是几年前传统设备上的一个问题,但除非你的MIDlet非常庞大,否则你现在应该不会遇到太多问题.您是否真的遇到过问题,或者您是否正在寻求有关如何预防此问题的建议?

您可以使用Proguard来混淆和减少编译的类大小.

  • +1 推荐 Proguard。我们在我们的 J2ME 项目中使用了它 - 它将 2 MiB MIDlet JAR 减少到小于 100 KiB。 (2认同)

Tel*_*ota 1

所以 Proguard 做得很好,已经从最终的 Jar 文件中削减了 300K。它能做更多吗?或许。您使用了什么设置?我总是至少选择:

  • defaultpackage="",所有混淆的类都移动到默认包中
  • overrideaggressively="true",多个字段和方法可以得到相同的名称,只要它们的参数和返回类型不同
  • optimizationpasses="3",要执行的优化遍数。这可能因应用程序而异。检查最终的 jar 大小,当它不再缩小时,停止增加该值。
但是,仅使用 proguard,您的 jar 文件不太可能下降到所需的 256kb。

当你说你的媒体文件已经被压缩时,你在将它们添加到 lwuit 之前是否使用过类似 PNGGauntlet 的东西?