安卓中为什么不建议使用 System.out.println 打印日志

用 Android 提供的日志工具类 android.util.Log。 以下是几个理由:

  • 性能开销:

    System.out.println() 是同步的,会影响应用程序的性能。在生产环境中,频繁地使用 System.out.println() 可能会导致应用程序变慢。安卓日志工具类android.util.Log 调的是native层C语言(具体看android_util_Log.cpp)执行效率要比Java高。

    public void println(String x) {
          synchronized (this) {
              print(x);
              newLine();
          }
      }
    
  • 输出位置不确定:

    System.out.println() 输出的日志信息会被发送到标准输出流,而在安卓中,标准输出流并不会直接输出到控制台或日志文件中,因此无法确切地知道日志信息的输出位置。

  • 不可控制的输出:

    System.out.println() 输出的日志信息无法进行级别控制,无法按照不同的日志级别进行过滤和输出。而 android.util.Log 提供了不同的日志级别(如 VERBOSE、DEBUG、INFO、WARN、ERROR),可以根据需要选择输出级别,方便在开发和调试过程中进行日志信息的过滤和查看。

  • 不可定制的输出格式:

    System.out.println() 输出的日志信息无法进行格式化和定制,而 android.util.Log 提供了更丰富的输出格式和定制选项,可以按照需要输出更具有可读性的日志信息。 综上所述,为了更好地进行安卓应用程序的日志记录和调试,建议使用 android.util.Log 类来输出 log 日志信息。

正例:

Log.d(TAG, "Some Android Debug info ...");

反例:

System.out.println("System out println ...");

你可能感兴趣的:(android,性能优化,java)