用于减小尺寸的最佳Java混淆应用程序

时间:2008-09-18 14:54:11

标签: java-me mobile obfuscation

移动开发的一个重要部分,特别是当您谈论手机游戏时,正在处理应用程序大小限制。有些设备会强制执行自己的大小限制,而所有运营商都有自己的大小要求,要求应用程序在其平台空间中发布。

我的问题是,是否有一个java混淆应用程序比其他java混淆应用程序获得更好的大小缩减结果?

我使用Proguard是因为它是默认的Netbeans混淆器,你可以从中获得相当不错的尺寸缩减结果(顺便说一句,Netbeans 6.1附带的Proguard版本是3.7。有更新的版本变得更好结果,我建议得到最新的)。但是,我对那里还有什么感兴趣,以及他们是否比Proguard做得更好。

我的结论:

我很感激回应。卡洛斯,你的回答足以让我相信Proguard是目前的方式。我仍然可以说服其他人,但对我当前的设置并不感到难过。

我也遇到过一些问题,即在某些手机上使用proguard进行模糊处理和运行,但不是太多。我总是能够通过不使用Proguard参数“-overloadaggressively”来解决问题。如果您遇到与混淆相关的奇怪行为,请记住一些事项。

再次感谢。

3 个答案:

答案 0 :(得分:5)

我也更喜欢ProGuard的尺寸减小和混淆的广度 - 请参阅http://proguard.sourceforge.net/。除了下载速度之外,我不一定有大小限制,但没有发现任何进一步缩小的内容。

答案 1 :(得分:3)

当涉及到J2ME和混淆时,有点谨慎是值得的。 Proguard是最好的选择,因为它已经开发了很多年,并且它收到了许多错误修正。我记得2.X和3.X之间的版本转换以及它如何打破了我当时的许多雇主构建。之所以发生这种情况,是因为一些更大规模节省的更改也在一些手机中以微妙的方式打破了类文件,而在其他手机和桌面JVM上完全没问题。

如今,Proguard 3.11是混淆器中最安全的选择。如果您不需要支持非常旧的手机,那么4.XX可能会很好。

答案 2 :(得分:2)

奇怪的是,没有人记得ProGuard不仅可以缩小和混淆代码,还可以进行优化。最后的版本允许指定几个优化的通道(默认情况下只有一个通道),我可以指定9个通道。

在我反编译我的类后,我几乎无法识别它们,ProGuard重构了很多方法调用。所需要的只是调整这个精彩的应用程序。所以我认为ProGuard是可行的方法,只是不要忘记稍微调整一下。它也有一个非常好的manual