美文网首页
Android APT(编译时生成代码)

Android APT(编译时生成代码)

作者: MarvinGuo | 来源:发表于2017-02-09 09:50 被阅读0次

    摘要

    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

    相关文章

      网友评论

          本文标题:Android APT(编译时生成代码)

          本文链接:https://www.haomeiwen.com/subject/fcniuttx.html