注解深入浅出(二APT)

Posted 持续学习刻意练习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注解深入浅出(二APT)相关的知识,希望对你有一定的参考价值。

第二章注解深入浅出

二、APT

2.1 什么是 APT?

APT 即为 Annotation Processing Tool,它是 javac 的一个工具,中文意思为 编译时注解处理器。APT 可以用来在编译时扫描和处理注解。通过 APT 可以获取到注解和被注解对象的相关信息,在拿到这些信息后我们可以根据需求来自动的生成一些代码,省去了手动编写。注意,获取注解及生成代码都是在代码编译时完成的,相比反射在运行时处理注解大大提高了程序性能。APT 的核心时 AbstractProcessor 类,关于 AbstractProcessor 类后面会做详细说明。

2.2 哪里用到了 APT?

APT 技术被广泛的运用在 Java 框架中,包括 android 项目以及 Java 后台项目,除了 ButterKnife 之外,像 EventBus、Dagger2 以及阿里的 ARouter 路由框架等都运用到 APT 技术,因此要想探究这些第三方框架的实现原理,APT 就是我们必须要掌握的。

2.3 如何在 Android Studio 中构建一个 APT 项目?

APT 项目需要由至少两个 Java Library 模块组成。这两个模块分别是是什么作用呢?

  1. 首先需要一个 Annotation 模块,这个用来存放自定义的注解。
  2. 另外需要一个 Compiler 模块,这个模块依赖 Annotation 模块。
  3. 项目的 App 模块和其他的业务模块都需要依赖 Annotation 模块,同时需要通过 annotationProcessor 依赖 Compiler 模块。

为什么要强调 APT 的两个模块一定是要 Java Library?如果你创建 Android Library 模块会发现不能找到 AbstractProcessor 这个类,这是因为 Android 平台是基于 OpenJDK 的,而 OpenJDK 中不包含 APT 的相关代码。因此,在使用 APT 时,必须在 Java Library 中进行。

具体如何创建细节参考以下链接:
Java编译时注解处理器(APT)详解
Java注解处理器

以上是关于注解深入浅出(二APT)的主要内容,如果未能解决你的问题,请参考以下文章

Android APT注解处理器 ( 根据注解生成 Java 代码 )

Android APT注解处理器 ( Element 注解节点相关操作 )

Android APT编译时技术 ( 开发编译时注解 )

Android APT注解处理器 ( 注解标注 与 初始化方法 )

Android APT注解处理器 ( 配置注解依赖支持的注解类型Java 版本支持 )

Android APT编译时技术 ( 编译时注解 和 注解处理器 依赖库 )