为什么使用未命名的包或较小的包名会使Jar更小?



我没能找到很多关于为什么在包上使用更短的名字或使用未命名的包(默认包)实际上会使jar大小更小的信息。

我读过混淆器剥离未使用的类,并使剩下的类的名称更小,这减少了jar大小。我自己也试过,通过在我的一个应用程序中使用未命名的包,我的文件大小减少了1.2%。但我找不到任何可信的信息来解释为什么会这样。我只能假设这是因为长名称带来的开销。不过,如果有人能告诉我如何证明这一点,我还是很感激的。

最初,我从这个文档中得到了这个想法:http://carfield.com.hk/document/java/articles/Efficient_MIDP_Programming.pdf

Jar文件是具有另一个扩展名和一个名为META-INF的特殊(可选)文件夹的Zip文件。对于每个文件或文件夹,都有一个相关的头文件。因为头文件占用了jar的一些空间,所以你最好在里面保留更少的文件,但是如果你已经把它压缩到最小,那么把所有的文件都放在根目录下。

对于MIDlet发行版,jar文件必须有META-INF文件夹,因此,为了最佳的空间使用,您的jar文件应该只有这个文件夹。您的MIDlet和所有其他类应该在默认包中。资源文件也一样,把它们都放在root文件下。

见http://smallandadaptive.blogspot.com.br/2008/09/keep-it-flat.html

最新更新