使用aspectj做aop可以做一些非侵入的aop监控操作,方便简洁,功能强大,而且对目标工程没有侵入性,可以做切面的操作:监听方法耗时、输出日志、控制初入参数、进行运行时修改等等操作。
aspectj的使用核心就是它的编译器,它就做了一件事,将aspectj的代码在编译期插入目标程序当中,运行时跟在其它地方没什么两样,因此要使用它最关键的就是使用它的编译器去编译代码ajc。ajc会构建目标程序与aspectj代码的联系,在编译期将aspectj代码插入被切出的pointcut中,已达到aop的目的。
因此,无论在什么ide上(如果使用命令行就可以直接使用ajc编译了),问题就是让ide使用ajc作为编译器编译代码。
2、gradle配置:通过在gradle构建脚本中,定义任务来使得项目执行ajc编译,将aop 的module编织进入目标工程中,达到非侵入式aop的目的。
下面就介绍一下第二种方法的具体的使用步骤。

这里,分别对module、app的构建脚本添加一些任务,使得ide使用ajc编译代码。
build.gradle(app):
build.gradle(module):
编写切面程序,做切面的操作:监听方法耗时、输出日志、控制初入参数、进行运行时修改
启动activity,点击button进入另一个activity
<a href="http://yunpan.alibaba-inc.com/share/link/ihwc2ymaum">asptecjdemo</a>