我正在开发一个利用Bouncy Castle J2ME库的Java ME / J2ME项目。但是,当我将它添加到我的项目中时,我注意到生成的.jar文件大小增加了40倍(50kB对2000kB)。除了将ProGuard的混淆器设置设置为9级(最大)之外,还有其他方法可以最大限度地减少文件大小的增加吗?
我只使用了几个库的实际类,即:
import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.*;
import org.bouncycastle.crypto.digests.SHA256Digest;
提前致谢。
答案 0 :(得分:2)
现在这是一个非常棘手的问题!
在其他任何事情之前,请你解压缩你的jar文件,看看Proguard是否混淆了BouncyCastle的类文件?由于你已经将bouncycastle jar文件作为一个库包含在内,并且里面有类文件所以我假设Proguard没有模糊这些占用大量空间的类文件。
无论如何我刚刚下载了充气城堡的jar文件,可以看到它纯粹是由类文件组成的,所以没有额外的文件我们可以删除并删除以减少生成的jar文件。 / p>
现在如果你真的想减少那么继续阅读我会产生两个解决方案,这两个都是有风险的:
解决方案1 (不推荐):
这很容易,但我不建议,它可能会导致运行时异常或错误: 解压缩bouncycastle jar文件。然后导航到目录src \ org \ bouncycastle 正如您所提到的,您只使用以下这些包 org.bouncycastle.util。* org.bouncycastle.crypto。*
现在我将假设这两个包中的源代码不依赖于其他包中的源代码/类文件。
现在删除其他目录,即“asn1”,“bcpg”。在这个阶段,我不会成为屠夫并删除所有内容,但会删除一对,然后返回并删除其他人如果有效。
现在我们将重新生成jar文件。删除目录后,现在返回目录的根目录,您将看到其他目录 META-INF 组织 utils的
这是您正确需要的重要步骤,否则jar文件将无法正常工作。选择根目录中的所有目录 然后右击 - >发送到邮编
创建zip文件后,将其重命名为* .jar而不是* .zip
解决方案2: