【问题标题】:Using proguard in android apps在 Android 应用程序中使用 proguard
【发布时间】:2017-12-24 04:57:41
【问题描述】:

过去 4 个月以来我一直在从事 android 应用程序开发,现在我开发了我的第一个应用程序,因为反编译 apk 很容易,所以我们应该使用 dex 或 proguard 进行收缩和保护。问题是我已经阅读在一篇文章中,proguard 可能会更改代码,因此有时应用程序可能会出现异常,这是我的第一个应用程序,我不想搞砸。所以在我的应用程序中使用 proguard 之前,我有几个问题 -

1.使用proguard前要注意哪些事项。

2.我读到你可以使用 keep 命令,但 proguard 不会混淆该代码并且它会保持不变,所以我想要我的所有代码,但因为我将使用 keep 它不会做任何事情。

3.如何确保使用proguard后app的功能和之前一样。

4.使用proguard是否需要签名或制作key?

【问题讨论】:

    标签: android proguard decode


    【解决方案1】:

    问题1。要记住什么! 文档指出使用 proguard 可能会发生意外事件

    请注意,代码缩减会减慢构建时间,因此您应该 如果可能,请避免在调试版本中使用它。然而,它 重要的是您确实在用于的最终 APK 上启用代码收缩 测试。 在 ProGuard 压缩你的代码之后,读取堆栈跟踪很困难(如果不是不可能的话),因为方法名称被混淆了。

    我相信这回答了问题 3 这里的关键词是测试,测试,测试!创建发布 apk 的那一刻。针对您的用例测试功能,以查看应用程序是否仍按应有的方式运行。

    如果您还没有测试,我建议您在发布之前至少编写一些单元测试并针对它测试 proguard 应用程序。

    问题 4: 不,您不需要密钥即可使用 proguard。我之前在调试版本中使用过它。

    因此,您的典型发布构建变体可能如下所示: //AndroidStudio3.0.1Canary

    release {
                postprocessing {
                    removeUnusedCode true
                    removeUnusedResources true
                    obfuscate true
                    optimizeCode true
                    proguardFile 'proguard-rules.pro'
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 2014-03-09
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多