AOP:APT,AspectJ,Javassist/Asm

96
一只好奇的茂
2018.05.09 14:54* 字数 129

区别:

apt

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

图示

执行阶段:

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

设计模式
Web note ad 1