有时候我们在开发过程中遇到一些疑难问题时,难免需要查看UI交互时,app内都执行了什么方法;或者是在调试生命周期时,一般我们的做法是在对应方法中打印log,用完之后再删掉,很麻烦。
现在我们可以利用AOP来打印所有方法的调用:
对于AOP的配置在此不做赘述,只讲切点。
/**
* 需要查看方法调用时 可以用这个切点
*/
@Pointcut("execution(* *..*.*(..))")
public void allMethod() {
}
@Around("allMethod()")
public void printAllMethod(ProceedingJoinPoint proceedingJoinPoint) {
if (proceedingJoinPoint != null) {
Log.d(TAG, "call method:" + proceedingJoinPoint);
try {
proceedingJoinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
Log.d(TAG, "call method error:", throwable);
}
}
}