Android编译时技术01 --- Aspectj

79 阅读1分钟

面向切面编程

案例:自动申请权限判断与申请框架

代码:gitee.com/luisliuyi/a…

案例:埋点自动上传管理框架

代码:gitee.com/luisliuyi/a…

AspectJ是什么?

AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。

AspectJ框架三大核心概念

1.Pointcut(切入点)

告诉AspectJ你要在原有的业务逻辑的某一块织入自己的代码,织入的那个点就叫切入点。

2.Advice(通知)

你要在某个切入点织入的具体的代码的业务逻辑块。典型的 Advice 类型有before、after 和 around,分别表示在目标方法执行之前、执行后和完全替代目标方法执行的代码。 除了在方法中注入代码,也可能会对代码做其他修改,比如在一个class中增加字段或者接口。

3.Joint point(连接点)

程序中可能作为代码注入目标的特定的点,例如一个方法调用或者方法入口。