asm ,APT,AspectJ,Javassist
https://xie.infoq.cn/article/d367c19896e4cef6fbb661cf7
https://opensource.sensorsdata.cn/wp-content/uploads/%E7%A5%9E%E7%AD%96%E6%95%B0%E6%8D%AE-Android_%E5%85%A8%E5%9F%8B%E7%82%B9%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf
https://www.jianshu.com/p/dca3e2c8608a
Build script:在build.gradle构建脚本中直接使用,只能在本文件内使用;
buildSrc project:新建一个名为buildSrc的Module使用,只能在本项目中使用;
Standalone project:在独立的Module中使用,可以发布到本地或者远程仓库供其他项目使用。