Transform
对字节码进行操作,作用在 java
代码编译生成 class
文件之后, class
打包生成 apk
之前,在这段时间内,遍历修改 class
文件。
Transform
可以修改所有的 class
文件,包括引入的三方库。
使用Transform的项目:
CC-register、
部分组件化框架,根据参与打包的组件插入初始化代码的操作
…
Annotation
在对 java
代码进行编译时,根据元注解获取到的 java
代码信息,生成相应的辅助类。
源码级别的操作,无法修改打包好的 library(jar/aar)
。
使用Annotation的项目:
ARouter、butterknife、dagger2、…