一、背景:
当插件项目打开界面后弹出吐司,但是插件代码没办法直接更改,通过aspect的引入,使用@Before("execute(* 类路径.方法名)")---在该类的该方法名前插入代码;AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件,支持静态编译和动态编译。
实例如下:
先配置
- 添加 dependencies classpath 'org.aspectj:aspectjtools:1.8.10';
- 添加 dependencies compile 'org.aspectj:aspectjrt:1.8.10'
代码:
'import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
.........
/**
* AspectJ相关: 检测Aspect类
*/
@Aspect
public class GodEyeSegmentAspectJ {
@Before("execution(* 类路径.onResume())")
public void joinCode(JoinPoint aJoinPoint) {
Log.d("code", "注入成功");
}
}
参考:CSDN的博客:AOP之AspectJ - 代码注入
网友评论