我的 Proguard 配置文件使用以下内容删除日志语句:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
}
显然这只有在开启优化时才会生效,所以我引用了
proguard-android-optimize.txt
在我的项目属性文件中,而不是 proguard-android.txt
.这是一个无关紧要的改变吗? proguard-android-optimize.txt 说“添加优化会带来某些风险,因为例如并非所有优化都由
ProGuard 适用于所有版本的 Dalvik”这到底是什么意思,我是否可以不使用 proguard-android-optimize.txt 而是仅添加我自己的配置文件所需的优化语句,以便日志删除生效?
谢谢。完全 Proguard 新手。
最佳答案
如果启用了优化,您确实只能删除日志记录。
在当前版本的 ProGuard 中,优化应该相当稳定。您可以更换 <android.sdk>/tools/proguard/lib/proguard.jar
与 latest version如果你希望。例如,与撰写本文时 Android SDK 中的 4.7 版(由“java -jar proguard.jar”的输出表示)相比,4.9 版改进了从代码中删除日志记录的痕迹。
关于optimization - 使用 Proguard 和优化的 Android 配置文件删除日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710837/