【问题标题】:Exclude un-used .class files排除未使用的 .class 文件
【发布时间】:2019-12-23 02:27:46
【问题描述】:

我有一个正在制作的小应用程序。它使用外部充气城堡加密 API,因为我需要使用它提供的 SHA1 哈希函数作为代号,其中一个 API 不包括本机 java 。

问题是我只使用 SHA1digest 类。

import org.bouncycastle.crypto.digests.SHA1Digest;

但是在我构建 API 之后,代号一个构建系统将整个 API 放入最终的 .jar 文件中。这是1.8mb。现在我无法构建或测试超过 1mb 限制的应用程序。

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    我们在最终构建中删除了多余的东西,但不是在那个阶段。 如果你想减少充气城堡库的大小,我建议你不要使用 cn1lib,而是将你需要的源代码复制到你的项目中:https://github.com/codenameone/bouncy-castle-codenameone-lib/

    您可以有选择地执行此操作,并且当项目无法编译时,您可以添加其他依赖项。我相信它仍然会比当前的 cn1lib 小。

    【讨论】:

      【解决方案2】:

      我创建了一个自包含类,没有任何导入,只有一个公共静态方法实现字符串的 SHA-256 散列(所有其他方法都是私有的)。

      这个类与Codename One完全兼容,我在模拟器、Android原生、iOS原生和Javascript中测试过。

      完整的代码和使用示例在这里: https://github.com/jsfan3/SHA-Codename-One

      我将此类的输出与http://www.convertstring.com/en/Hash/SHA256 进行了比较:它们是相同的。

      在 Javadoc @author 中,我向 Johan Stenberg 表示感谢:我为他编写了代码,我只对其稍作修改以使其适应 Codename One API。

      Java 类的大小约为 8 kbyte,如果您删除充气城堡 cn1lib 并且只需要此类,这可以解决您的问题。

      【讨论】:

        猜你喜欢
        • 2020-06-17
        • 2014-07-03
        • 2015-09-23
        • 2011-02-22
        • 1970-01-01
        • 2014-07-22
        • 2011-12-09
        • 2018-08-15
        • 1970-01-01
        相关资源
        最近更新 更多