optimization - 使用 Proguard 和优化的 Android 配置文件删除日志记录

标签 optimization logging proguard

我的 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.jarlatest version如果你希望。例如,与撰写本文时 Android SDK 中的 4.7 版(由“java -jar proguard.jar”的输出表示)相比,4.9 版改进了从代码中删除日志记录的痕迹。

关于optimization - 使用 Proguard 和优化的 Android 配置文件删除日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710837/

相关文章:

python - 在python中高效地生成点阵

algorithm - 关于优化例程/使用约束的建议

asp.net-mvc - 在 ASP.NET MVC 中覆盖 `HandleErrorAttribute`

logging - 如何在 Serilog 日志文件名中使用属性值?

Android Google map 服务导致构建错误

scala - SBT ProGuard 插件 : OutOfMemoryError, 如何增加堆空间?

c# - 为什么这个 List.Except 在某些情况下这么慢(以及如何加快速度)?

c - 快速查找某个值是否存在于 C 数组中?

java - 根据性能和一致性标准,应该使用 Java 中的哪个记录器框架?

android - Proguard 优化设置 : Enabling class merging, casts and field/* in modern API and Proguard versions