Android:如何记录所有的Activity方法调用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我希望能够快速地将所有调用记录到活动所调用的所有超级方法。

我试过这个https://github.com/stephanenicolas/loglifecycle

但由于某种原因,它不适用于AppCompatActivity......

我可以问我的IDE覆盖所有的方法; 但如何将日志添加到所有这些?

提问于
用户回答回答于

你可以绕过堆栈跟踪:

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();

从文档:

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

用户回答回答于

现在是时候寻找AspectJ 了: http://code.google.com/p/android-aspectj/

你只需要设置方面执行:

aspect Trace{
    pointcut traceMethods() : (execution(* com.xyz.*.*(..)));

    before(): traceMethods(){
        Signature sig = thisJoinPointStaticPart.getSignature();
        String sourceName =  thisJoinPointStaticPart.getSourceLocation().getWithinType().getCanonicalName();
        Log.d("AOPLogging: " + sourceName,  "Some method has called")
   }
}

扫码关注云+社区