是否有一个很好的应用程序可以通过消除冗余来减少jar文件的大小 类/方法/常量池元素? (即无法从固定的 一组入口点,假设没有反射)
当我刚从他们那里使用一些方法时,我已经厌倦了拉臃肿的图书馆。
(我不是在谈论小的“本地”优化,比如缩小名称。我正在考虑更多的东西进行全局分析,以确定使用哪些类/方法/变量,给定一组入口点(包括反射入口点),并删除未使用的所有内容。
我的webapp就像是45MB,主要是由于30多个库,而且我很确定我只使用了每个库的一小部分。
答案 0 :(得分:11)
是的,有一个 - Proguard。
ProGuard是一个免费的Java类文件收缩器,优化器,混淆器, 和预验证。它检测并删除未使用的类,字段, 方法和属性。它优化字节码并删除未使用的 说明。它重命名剩余的类,字段和方法 使用简短无意义的名字。最后,它预先验证了已处理的 Java 6或Java Micro Edition的代码。
答案 1 :(得分:4)
答案 2 :(得分:0)
另一个不错的技巧,通常使用未命名的包,即删除名称(< default>将出现),也会减少jar大小。
在我的情况下,我的jar从24,243字节变为23,946字节。是的,这不是什么大不了的事,但我认为还是一个很酷的技巧。
从高效的MIDP编程:
“使用'未命名的包' - 将所有MIDlet类放在同一个命名包中只会增加MIDlet的JAR文件的大小;保留库的包语句” http://carfield.com.hk/document/java/articles/Efficient_MIDP_Programming.pdf