Eclipse Android - 如何在不使用Log.d()的情况下查看执行的方法

时间:2014-08-06 12:20:02

标签: android eclipse

在我的android应用程序中,每当我需要跟踪事件年表和变量时,复杂的类和序列中的值,我把Log.d()放在任何地方,但它很麻烦和浪费。

是否有插件或方法可以遵循方法执行顺序和所有变量的值而无需进行如此多的Log.d调用?

2 个答案:

答案 0 :(得分:0)

启动方法分析

方法分析是一种跟踪某些方法指标的方法,例如调用次数,执行时间和执行该方法所花费的时间。如果要更精细地控制收集性能分析数据的位置,请使用startMethodTracing()和stopMethodTracing()方法。有关生成跟踪日志的更多信息,请参阅分析和调试UI。

在DDMS中开始方法分析之前,请注意以下限制:

Android 2.1及更早版本的设备必须存在SD卡,并且您的应用程序必须具有写入SD卡的权限。 Android 2.2及更高版本的设备不需要SD卡。跟踪日志文件直接流式传输到开发计算机。 要开始方法分析:

在“设备”选项卡上,选择要为其启用方法分析的进程。 单击“启动方法概要分析”按钮。 与您的应用程序交互以启动您要分析的方法。 单击“停止方法概要分析”按钮。 DDMS停止对应用程序进行概要分析,并使用在单击“启动方法概要分析”和“停止方法概要分析”之间收集的方法概要分析信息打开Traceview。

请参阅:http://developer.android.com/tools/debugging/ddms.html

答案 1 :(得分:0)

另一种选择是使用您自己的方法简化Log调用:

    public static void doLog(String msg){
    StackTraceElement[] mStackTrace = Thread.currentThread().getStackTrace();
    Log.d(mStackTrace[3].getMethodName(), msg);
   }

文档:

  

数组的最后一个元素表示堆栈的底部,   这是序列中最近的方法调用。

由于doLog()也是一种方法,因此您需要索引3来显示实际调用日志的方法的名称。这样您只需要拨打电话

MyHelperClass.doLog("Test");

这是我经常用于调试的方法。是的,这是使用内置日志系统时最简单,最好的方法。