关于移动设备:减小大小的最佳Java模糊处理应用程序

关于移动设备:减小大小的最佳Java模糊处理应用程序

Best Java Obfuscation Application For Size Reduction

移动开发的一个重要部分,尤其是在谈论移动游戏时,是应对应用程序大小的限制。某些设备会强制执行自己的尺寸限制,而所有载体对于在其甲板空间中发布的应用程序都有自己的尺寸要求。

我的问题是,是否有一个Java混淆应用程序比现有的其他Java混淆应用程序具有更好的尺寸减小结果?

我之所以使用Proguard,是因为它是默认的Netbeans模糊处理程序,您可以从中获得相当不错的尺寸缩减结果(顺便说一下,Netbeans 6.1随附的Proguard的版本是3.7。有更新的版本可以获得更好的结果,我建议获取最新版本)。但是,我对其他功能以及它们是否比Proguard做得更好感兴趣。

我的结论:

感谢您的回应。卡洛斯,您的回应足以使我相信Proguard是当前的发展之路。否则我仍然可以被说服,但是对于我当前的设置并不感到难过。

关于proguard的混淆和在某些手机上运行时,我也遇到了一些问题,但不是很多。我始终能够通过不使用Proguard参数" -overloadaggressively"来解决问题。如果您遇到与混淆有关的奇怪行为,请记住这一点。

再次感谢。


我还更喜欢ProGuard,因为它既减小了尺寸又增加了混淆的广度-请参见http://proguard.sourceforge.net/。除了下载速度外,我并不一定有大小限制,但是没有发现任何进一步缩小的内容。


当涉及到J2ME和混淆时,要谨慎一点。 Proguard是最佳选择,因为它已经开发了许多年,并且收到了许多错误修正。我记得2.X和3.X之间的版本转换以及它如何破坏了我(当时)许多雇主的体系结构。之所以发生这种情况,是因为某些更改可以节省更多空间,这些更改在某些手机中还以细微的方式破坏了类文件,而在其他手机和桌面JVM上却表现出色。

如今,Proguard 3.11是混淆器中最安全的选择。如果您不必支持非常老的手机,则4.XX可能很好。


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

在对类进行反编译之后,我几乎无法识别它们,ProGuard重新构造了许多方法调用。它所要做的只是调整这个出色的应用程序。因此,我认为ProGuard是必经之路,只是别忘了对其进行一点调整。它还有一个非常好的手册。


推荐阅读