前言
-
AOP概念理解 深入理解Android之AOP 如果对AOP没什么概念,建议阅读该篇文章
-
AOP Signature 格式说明 传送门
1、aspect配置
刚接触aspectj时在网上查阅了不少资料,参考了一些网友的经验分享,结果很少有成功的,最后还是找到一篇可以正常编译运行的经验分享,这里我也稍作整理供大家参考,自己也留个笔记,方便以后翻阅查找。
拿自己的demo为例,可能跟大家的工程结构不一样,各位可以酌情参考,我是新建了一个Android Project,有一个默认的app module,然后aspectj类直接在app里创建的,大家也可以创建单独的android lib module,把aspectj文件在这里新建,然后在app module中引用,需要配置的脚本内容如下:
1.1 project根目录下的build.gradle
首先需要在工程根目录下的build.gradle的buildscript中添加aspectj相关依赖,如下:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
//☆☆☆ add for test AspectJ Begin
classpath 'org.aspectj:aspectjtools:1.9.2'
classpath 'org.aspectj:aspectjweaver:1.9.2'
//☆☆☆ End
}
}
1.2 app module中的build.gradle 配置
这里需要配置两块内容,一个是依赖的sdk,另一个是aspectJ生效配置,具体如下:
//Part One
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//aspectjrt的依赖
implementation group: 'org.aspectj', name: 'aspectjrt', version: '1.9.2'
}
//Part Two
/*Aspectj配置*/
import org.aspectj.bridge.IMessage
import org.aspectj.bridge.M