AOP为Aspect Oriented Programming的缩写,意为:面向切面编程
简单的理解就是可以对某些方法进行拦截,二次加工.
比较火的开源库是:
https://mvnrepository.com/artifact/org.aspectj/aspectjweaver/1.9.6
Android 项目,如果觉得直接使用麻烦的话,可以使用开源库
https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx
一、集成环境到 Android Studio
1.在项目的 build.gradle 添加 classpath
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'
2.在对应 module(app) 的 build.gradle 顶部添加插件
apply plugin: 'android-aspectjx'
在运行的那个 app 的 module 里添加就够了,其他的module 如过没报错可以不添加
二、编写测试代码
我在最开始的时候,一直以为项目没有集成进去,其实是我代码写错了,
所以,简单的测试代码显的特别重要。
package org.itzheng.aop;
import android.util.Log;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class TestAop {
@Before("execution(* on*(..))")
public void testBefore() {
Log.w("aop",