Android中的调用跟踪

Android中的调用跟踪,android,Android,我想知道如何为Android应用程序进行方法跟踪。我的意思是,对每个对象的一系列调用,而不是堆栈跟踪 它非常类似于,但在不同的平台上(jvm PC和dvm Android)。我无法控制dalvik的开始参数,因此我无法指定java代理(或者我在这里错了吗?)。是否有其他方法进行方法跟踪 谢谢 在对链接问题的回答中提到的Runtime.traceMethodCalls()方法实际上是在Android中连接的。它只是使用默认参数启动方法分析功能。有关更多详细信息,请阅读Android文档中的。谢谢。

我想知道如何为Android应用程序进行方法跟踪。我的意思是,对每个对象的一系列调用,而不是堆栈跟踪

它非常类似于,但在不同的平台上(jvm PC和dvm Android)。我无法控制dalvik的开始参数,因此我无法指定java代理(或者我在这里错了吗?)。是否有其他方法进行方法跟踪


谢谢

在对链接问题的回答中提到的Runtime.traceMethodCalls()方法实际上是在Android中连接的。它只是使用默认参数启动方法分析功能。有关更多详细信息,请阅读Android文档中的。

谢谢。是的,Runtime.traceMethodCalls()执行此任务。然而,我在这里寻找另一个选择是有原因的:1。它会产生很多不需要的信息。2.必须先取出跟踪文件,不能动态分析。3.在logcat输出的上下文中看不到方法跟踪。在知道调用方法之前/之后发生了什么之前,需要做一些努力。写入“logcat”日志可能不会起作用。数据被写入内核中的64KB循环缓冲区。如果它的填充速度比logcat提取数据的速度快,则消息将被丢弃,并且您将浪费时间试图找出为什么您的方法在实际调用时没有被调用。:-)您需要将方法名和日志消息写入磁盘上的文件。这样做没有内置机制。首先,再次感谢。当然,对于logcat来说,未经过滤的跟踪是压倒性的。但我只对应用程序的方法生成的跟踪感兴趣(希望是在上一条评论中提到的动态logcat输出的上下文中)。我想知道在应用程序中是否有这样做的方法……另一种方法是附加jdb并使用“跟踪方法”功能。我还没有使用jdb。我会试试看它是否有效。但是,如果我们使用VM的跟踪方法功能,这取决于VM是否支持过滤要跟踪的方法。我怀疑达尔维克是否支持这一点。