Android APT(编译时生成代码)

2017-02-09  本文已影响0人  MarvinGuo

摘要

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

图3

1.定义编译的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
上一篇下一篇

猜你喜欢

热点阅读