摘要
APT(Annotation Processing Tool)是一种处理注解的工具,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件(文件具体内容由Annotation处理器的编写者决定),APT还会编译生成的源文件和原来的源文件,将它们一起生成class文件。
现在很多第三方库在使用APT技术,如DBflow、ButterKnife等。APT在编译时根据Annotation生成了相关的代码,可以给开发带来了很大的便利。
Annoation
如果对注解不熟悉,请看java基础
创建APTDemo Project
步骤省略了
创建 Annotation Module
新建一个名称为annotation的Java Library,主要放置一些项目中需要使用到的Annotation。这里简单自定义了一个注解:
图1配置build.gradle,主要是规定jdk版本
图2创建compiler Module
新建compiler的Java Library,这个module用来写生成代码相关逻辑。这是核心module。
配置build.gradle
图31.定义编译的jdk版本为1.7,这个很重要,不写会报错。
2.AutoService 主要的作用是注解 processor 类,并对其生成 META-INF 的配置信息。
3.JavaPoet 这个库的主要作用就是帮助我们通过类调用的形式来生成代码。
4.依赖上面创建的annotation Module。
定义Processor类 生成代码相关的逻辑就放在这里
图4配置project build.gradle
dependencies{classpath'com.neenbedankt.gradle.plugins:android-apt:1.8'}
配置app build.gradle
apply plugin:'com.android.application'
apply plugin:'com.neenbedankt.android-apt'
//...dependencies{//..compileproject(':annotation') aptproject(':compiler')}
编译使用
在随意一个类添加@Test注解
图5
网友评论