相关疑难解决方法(0)

在ProGuard优化期间删除未使用的字符串

我在发布Android应用程序时包含此ProGuard配置去除调试日志语句:

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作 - 我可以从ProGuard日志和Android日志输出中看到Log.d("This is a debug statement");被删除的调用.

但是,如果我在此阶段反编译应用程序,我仍然可以看到所有使用的String文字 - 即This is a debug statement在此示例中.

有没有办法String从字节码中删除不再需要的每个?

android proguard

31
推荐指数
3
解决办法
7271
查看次数

发布时的android.util.Log - 我能做什么/不做什么

我的代码中有很多Log.i Log.d Log.e,我已经完成了最新的应用程序.我即将发布这个应用程序,我真的不希望人们在将手机插入adb时看到它,但我确实希望它可以用于我自己的调试.

我想扩展android.util.log并且在那里只有一个布尔开关所以我可以在发布时关闭日志并在开发时打开它但是这个类是最终的,我错过了一个技巧吗?

我真的不想通过我的代码删除所有,如果最坏的情况发生最坏,我可以做一个ctrl + h全局替换Log for // Log但是这确实很糟糕.

我也意识到Log.d在运行时被剥离但它仍然运行(失去一点性能)所以不运行这将是一个额外的好处.

是的,所以基本上我正在寻找一种方法来以编程方式打开和关闭我的调试,这也可以让我以后使它成为一个偏好或者某些东西,如果人们想要查看它或帮助并发送它.

你们为此实施了什么?

谢谢

debugging logging android design-patterns logcat

8
推荐指数
1
解决办法
4442
查看次数

标签 统计

android ×2

debugging ×1

design-patterns ×1

logcat ×1

logging ×1

proguard ×1