AOP:APT,AspectJ,Javassist/Asm

区别:

apt

APT(Annotation Processing Tool 的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。

图示

AOP:APT,AspectJ,Javassist/Asm_第1张图片

执行阶段:

APT在compile任务前,修改java文件;
AspectJ在java --> class阶段,修改java代码;
Javassist和asm,都是修改的.class

发生的具体函数

APT Processor -> process{....}
AspectJ javaCompile.doLast{ ... }
Javassist和asm MyTransform -> transform{ ... }

参考:

Android编译打包流程
安卓AOP三剑客:APT,AspectJ,Javassist

你可能感兴趣的:(AOP:APT,AspectJ,Javassist/Asm)