第二章注解深入浅出(二、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注解处理器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值