【AOP】Android 利用AOP打印方法调用链

有时候我们在开发过程中遇到一些疑难问题时,难免需要查看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);
            }
        }
    }

你可能感兴趣的:(【AOP】Android 利用AOP打印方法调用链)