【发布时间】:2014-10-23 22:04:02
【问题描述】:
你们中的任何人都愿意改写(用你自己的话)对他们手册中写的一些 proguard 关键字的解释吗?我很难完全理解其中一些是什么意思,以及如果 .cfg 文件中没有它们会发生什么变化。
我感兴趣的关键字是: 1) -dontskipnonpubliclibraryclasses 和 -dontskipnonpubliclibraryclassmembers
第二个被解释为:
指定不忽略包可见的库类成员(字段和方法)。默认情况下,ProGuard 在解析库类时会跳过这些类成员,因为程序类通常不会引用它们。然而,有时,程序类与库类驻留在同一个包中,并且它们确实引用了它们的包可见类成员。在这些情况下,实际读取类成员会很有用,以确保处理后的代码保持一致。
首先,它是否仅在外部 jar 的上下文中引用?其次,这些标志存在于 .cfg 文件中与不存在有什么区别?
2) -libraryjars,我迷路了。这个关键字的目的是什么?在 proguard 手册页上写着:
指定要处理的应用程序的库 jars(或 aars、wars、ears、zip、apk 或目录)。
这是否意味着,如果我不使用这个标志,那么那些罐子就不会被放在整个混淆过程中?但是如果是这样的话,那为什么我不使用这个关键字的时候,proguard输出的那些jar中的类会有很多警告呢?
接下来说:
这些 jar 中的文件不会包含在输出 jar 中。
具体是什么意思?这意味着,如果设置了这个标志,那么除了 .class 文件之外的所有其他文件都不会包含在父应用程序的 jar 中?
【问题讨论】: