是否有太多日志写入会降低Android应用程序性能?

Vis*_*jan 11 android android-logcat

我想知道日志记录是否会降低应用程序性能?另外,请给我一些提高Android应用程序性能的技巧.

gti*_*333 18

是.过多的日志记录会影响任何应用程序(不仅仅是Android)的性能.

开发人员指南建议您发布之前停用并禁用日志记录:

关闭日志记录和调试确保在构建应用程序以进行发布之前停用日志记录并禁用调试选项.您可以通过删除源文件中对Log方法的调用来停用日志记录.您可以通过从清单文件中的标记中删除android:debuggable属性来禁用调试,或者通过在清单文件中将android:debuggable属性设置为false来禁用调试.此外,删除在项目中创建的任何日志文件或静态测试文件.

此外,您应该删除添加到代码中的所有Debug跟踪调用,例如startMethodTracing()和stopMethodTracing()方法调用.

因此,您应该禁止应用程序的"发布"或"生产"版本中的日志.

通过设置debuggable在Android Manifest中关闭它:

<application android:icon="@drawable/icon" 
        android:label="@string/app_name"
        android:debuggable="false">
Run Code Online (Sandbox Code Playgroud)

其他方式

在执行日志之前,创建自己的记录器类并检查调试模式.它允许在调试模式和已部署的应用程序之间进行单点修改,并允许执行额外的操作,例如写入日志文件.

import android.util.Log;
public class MyLog {
    private static final boolean isDebug = false;;
    public static void i(String tag, String msg) {
        if (isDebug) {
            Log.i(tag, msg);
        }
    }
    public static void e(String tag, String msg) {
        if (isDebug) {
            Log.e(tag, msg);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


有关详细信息,请阅读http://rxwen.blogspot.com/2009/11/logging-in-android.html

和SO QAs:

Log.d和对性能的影响

Android日志记录 - 如何清除以获得更好的性能

  • 根据我的经验,清单设置对日志输出没有影响.它只是控制调试器是否可以附加到您的应用程序. (4认同)