【问题标题】:Proguard shrinking behavior - 2nd level methodsProguard 收缩行为 - 二级方法
【发布时间】:2015-09-10 11:46:06
【问题描述】:

对不起,如果这太基本了 - 我正在努力寻找我能理解的 Proguard 文档。

我对 Proguard 如何缩小 Android 应用程序的理解是通过查找未使用的(未调用的?)方法并从构建中消除它们。因此,如果我有一个从未在代码中其他任何地方调用过的方法 buynewCoke(),它将被删除。

但是,如果存在调用 buyNewCoke() 的方法,例如 visitStoreAfterMidnight(),该怎么办。并且从不调用 visitStoreAfterMidnight 本身。 Proguard 是否仍然删除这两种方法?还是它保留 buyNewCoke() 是因为它被某些东西引用了?

也就是说,如果 A 调用 B 而没有任何东西调用 A,Proguard 的行为如何?

【问题讨论】:

    标签: android proguard


    【解决方案1】:

    visitStoreAfterMidnight()buyNewCoke() 都将被删除。

    实际上它的工作原理类似于垃圾收集,它从需要保留的东西开始并检查他们使用的东西并只保留这些。

    编辑:

    官方参考: http://proguard.sourceforge.net/manual/introduction.html

    入口点

    为了确定必须保留哪些代码以及哪些代码 可以丢弃或混淆,您必须指定一个或多个条目 指向您的代码。这些入口点通常是具有 主要方法、applet、midlets、activity等。

    收缩步骤中,ProGuard 从这些种子开始并 递归地确定使用哪些类和类成员。全部 其他类和类成员被丢弃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      相关资源
      最近更新 更多