日志记录会降低生产Android应用的速度吗?

JoJ*_*oJo 9 java android

在将我的Android应用程序发布到市场之前,我应该注释掉所有日志吗?

Log.d(tag, "example of a log")
Run Code Online (Sandbox Code Playgroud)

如果我把它们留在那里,应用程序会运行得更慢吗?

Bli*_*ndy 13

Java不支持C#样式的条件编译,因此将始终评估参数.这包括任何字符串连接和您可能正在做的事情.

简短回答:是的.


Ima*_*shi 7

您可以使用:

AppLog.Log(TAG, "example of a log");
Run Code Online (Sandbox Code Playgroud)

反而:

Log.d(tag, "example of a log")
Run Code Online (Sandbox Code Playgroud)

这是AppLog类:

public class AppLog {

public static void Log(String tag, String message) {
    if ((BuildConfig.DEBUG)) {

        Log.d(tag, message + "");
    }
}}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Log当应用程序处于release模式时不显示。

希望这可以帮助你。