注解深入浅出(二apt)

持续学习刻意练习 持续学习刻意练习     2023-02-20     260

关键词:

第二章注解深入浅出

二、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案例之点击事件

目录介绍01.创建项目步骤1.1项目搭建1.2项目功能02.自定义注解03.创建Processor04.compiler配置文件05.编译jar06.如何使用07.编译生成代码08.部分源码说明8.1Process类-process方法8.2OnceProxyInfo代理类8.3OnceMethod类好消息博客笔记大汇总【16年3... 查看详情

深入理解java注解——注解基础(代码片段)

一直以来对Java注解的理解都不是特别深刻,但是在多年的软件开发生涯中接触了不少注解相关的东西,所以有必要深入理解一下Java注解知识,通过本篇博客记录学习Java注解的一些知识点。深入理解Java注解(二&#x... 查看详情

aop之注解处理器apt在android中的finderview实际详解(代码片段)

...框架,比如ButterFly、eventBus、OrmLite、Retrofit等都使用注解,注解是什么呢?注解就是元数据,可以理解为属性、方法、类等的一个说明,具体详解可百度,也可移步我的另一篇注解原理详解。一下就以ButterF... 查看详情

注解处理器(apt)是什么?(代码片段)

...家和我一起,在Android世界打怪升级!上一篇讲完注解,这篇咱们科普一下注解的其中一种用途——注解处理器(APT),文章会手把手的帮助大家学会APT的使用,并使用简单的例子来进行练习。一、定义... 查看详情

04注解处理器(apt)是什么?——《android打怪升级之旅》(代码片段)

...家和我一起,在Android世界打怪升级!上一篇讲完注解,这篇咱们科普一下注解的其中一种用途——注解处理器(APT),文章会手把手的帮助大家学会APT的使用。一、定义注解处理器(AnnotationProcessingTool... 查看详情

大数据必学java基础(八十六):元注解的深入了解

文章目录元注解的深入了解一、Retention二、Target三、Documented(很少)  查看详情

注解深入浅出(一注解annotations)(代码片段)

第二章注解深入浅出一、注解Annotations1.1注解1.2元注解1.3自定义注解一、注解Annotations1.1注解注解是一种将元数据附加到代码中的方法。注解(Annotation),也叫做元数据,一种代码级别的说明。它是JDK1.5及以后版... 查看详情

注解深入浅出(五retrofit中的注解)

第二章注解深入浅出五、Retrofit中的注解5.1请求方法类注解5.2标记类注解5.3参数注解5.4其他注解5.5注意事项五、Retrofit中的注解retrofit-2.9.0共有25个注解,根据功能大概分为三类:请求方法类标记类参数类其他类5.1请求方法... 查看详情

利用注解和apt生成模板代码(代码片段)

这里写自定义目录标题开题注解的核心方法APTJavaPoet为什么要写这么一套代码?apt-annotaitionapt-processorapp的build.gradle自定义我们的注解ViewHolder创建核心代码ViewHolderProcessor整体架构遇到的问题使用方法重要类及函数开题注解在... 查看详情

你必须知道的aptannotationprocessorandroid-aptprovided自定义注解

...看看吧1、什么是APT?随着一些如ButterKnife,dagger等的开源注解框架的流行,APT的概念也越来越被熟知。annotationProcessor和android-apt的功能是一样的,它们是替代关系,在认识它们 查看详情

注解深入浅出(一注解annotations)(代码片段)

第二章注解深入浅出一、注解Annotations1.1注解1.2元注解1.3自定义注解一、注解Annotations1.1注解注解是一种将元数据附加到代码中的方法。注解(Annotation),也叫做元数据,一种代码级别的说明。它是JDK1.5及以后版... 查看详情

注解处理器apt在java中的实现(代码片段)

...ff1a;英文全名(AnnotationProcessorTool),即:注解处理器。它是 javac 的一个工具,这是Sun为了帮助注解的处理过程而提供的工具,apt被设计为操作Java源文件,而不是编译后的类。作用阶段示意图如下ÿ... 查看详情

注解深入浅出(五retrofit中的注解)

第二章注解深入浅出五、Retrofit中的注解5.1请求方法类注解5.2标记类注解5.3参数注解5.4其他注解5.5注意事项五、Retrofit中的注解retrofit-2.9.0共有25个注解,根据功能大概分为三类:请求方法类标记类参数类其他类5.1请求方法... 查看详情

深入理解java注解

目录深入理解Java注解  1.简介  2.内置注解  3.元注解  4.自定义注解  5.小结  6.参考资料深入理解Java注解本文内容基于JDK8。注解是JDK5引入的,后续JDK版本扩展了一些内容,本文中没有... 查看详情

android编译时注解处理apt(代码片段)

一、注解在使用Java语言开发的过程中,我们会经常看到各种各样的注解,@Override(表示方法的重写),@Deprecated(标记过时的元素方法,类或属性),@LayoutRes(表示的是布局资源),@IdRes(表示的是ID资源),@Drawa... 查看详情

android编译时注解处理apt(代码片段)

一、注解在使用Java语言开发的过程中,我们会经常看到各种各样的注解,@Override(表示方法的重写),@Deprecated(标记过时的元素方法,类或属性),@LayoutRes(表示的是布局资源),@IdRes(表示的是ID资源),@Drawa... 查看详情

android编译时注解处理apt(代码片段)

一、注解在使用Java语言开发的过程中,我们会经常看到各种各样的注解,@Override(表示方法的重写),@Deprecated(标记过时的元素方法,类或属性),@LayoutRes(表示的是布局资源),@IdRes(表示的是ID资源),@Drawa... 查看详情

android编译时注解处理apt(代码片段)

一、注解在使用Java语言开发的过程中,我们会经常看到各种各样的注解,@Override(表示方法的重写),@Deprecated(标记过时的元素方法,类或属性),@LayoutRes(表示的是布局资源),@IdRes(表示的是ID资源),@Drawa... 查看详情