有没有一款好的应用程序可以通过消除冗余的类/方法/常量池元素来减小jar文件的大小?(即不可从固定入口点到达,假设没有反射)
当我只使用其中几个方法时,我很烦恼地引入了臃肿的库。
(我说的不是像缩小名称这样的小型“本地”优化。我更想让它全局分析,找出在给定一组入口点(包括反射入口点)下使用哪些类/方法/变量,并删除未使用的所有内容。
我的Web应用程序大约有45MB,主要是由于30多个库,我确信我只使用了每个库的一小部分。
有没有一款好的应用程序可以通过消除冗余的类/方法/常量池元素来减小jar文件的大小?(即不可从固定入口点到达,假设没有反射)
当我只使用其中几个方法时,我很烦恼地引入了臃肿的库。
(我说的不是像缩小名称这样的小型“本地”优化。我更想让它全局分析,找出在给定一组入口点(包括反射入口点)下使用哪些类/方法/变量,并删除未使用的所有内容。
我的Web应用程序大约有45MB,主要是由于30多个库,我确信我只使用了每个库的一小部分。
有一个可以用的工具——Proguard。
ProGuard是一款免费的Java类文件缩小器、优化器、混淆器和预处理器。它可以检测并删除未使用的类、字段、方法和属性;优化字节码并删除未使用的指令;使用简短且无意义的名称重命名剩余的类、字段和方法。最后,它会为Java 6或Java Micro Edition预处理代码。
又是一个不错的技巧,通常使用未命名的包,删除名称(<default>将出现),还可以减小jar文件的大小。
在我的情况下,我的jar从24,243字节减少到23,946字节。虽然不是很大的变化,但我认为这仍然是一个很酷的技巧。
来自高效的MIDP编程:
"使用'未命名的包' - 将您的MIDlet类全部放在同一个命名包中只会增加MIDlet的JAR文件的大小;保留包语句供库使用" http://carfield.com.hk/document/java/articles/Efficient_MIDP_Programming.pdf
jars
已经是zip归档文件(带有一些附加信息)。 - om-nom-nom