注解处理器教程[全]

我在做 基于 GitHub App 业务深度讲解 Kotlin1.2高级特性与框架设计 这门课的时候,顺便做了一个注解处理器的框架,叫 Tieguanyin(铁观音),这个框架主要是用来解决 Activity 跳转时传参的问题,我们知道 Activity 如果需要参数,那么我们只能非常繁琐的使用 Intent 来传递,有了这个框架我们就可以省去这个麻烦的步骤。

在这里,框架的内容其实不是重点,重点是,它是一个注解处理器的项目。为了让它的作用尽可能的放大,我对原框架做了简化,做了这套课程。

视频源码

见 Github 项目:Apt-Tutorials

视频观看

1. 课程简介

作为课程的第一节,我们简单介绍了一下 Apt 的工作原理和流程,并对整个视频课程涉及的内容做了介绍。

腾讯视频:

https://v.qq.com/x/page/l0728uxh61x.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=1

Youtube:

https://www.youtube.com/watch?v=jA5kQwGM-tU&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=1

2. 搭建工程

这一节主要介绍注解处理器工程的结构。

腾讯视频:

https://v.qq.com/x/page/o07284u5rju.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=2

Youtube:

https://www.youtube.com/watch?v=p3oBTIcWty0&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=2

3. 解析注解

这一节主要介绍如何解析注解获取被标注的元素信息。

腾讯视频:

https://v.qq.com/x/page/z07286r97mz.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=3

Youtube:

https://www.youtube.com/watch?v=CPhdkOG6RRw&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=3

4. 生成常量

这一节为被标注的属性生成一些常量字符串来作为它们的 Key,也展示了如何为生成的 Java 类添加常量。

腾讯视频:

https://v.qq.com/x/page/k0728tn7sty.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=4

Youtube:

https://www.youtube.com/watch?v=X13WcxWMVA4&index=4&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP

5. 生成 start 方法

这一节为被标注的 Activity 生成携带被标注的属性作为参数的 start 的方法,也展示了如何为生成的 Java 类添加方法。

腾讯视频:

https://v.qq.com/x/page/x0728j7j7a6.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=5

Youtube:

https://www.youtube.com/watch?v=a66T8ImLAMw&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=5

6. 生成注入和状态保存的方法

这一节为被标注的 Activity 生成注入属性的 inject 方法和保存状态的 saveState 方法。

腾讯视频:

https://v.qq.com/x/page/d0728uitqdr.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=6

Youtube:

https://www.youtube.com/watch?v=fCUje0sjwos&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=6

7. 生成 Kotlin 代码

这一节主要通过为被标注的 Activity 生成扩展方法来介绍如何生成 Kotlin 代码。

腾讯视频:

https://v.qq.com/x/page/l0728y2inrf.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=7

Youtube:

https://www.youtube.com/watch?v=2Z6qBTo3r-k&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=7

8. 小结

这一节对整个课程作了一个总结。

腾讯视频:

https://v.qq.com/x/page/m072848g85p.html

Bilibili:

https://www.bilibili.com/video/av32905508/?p=8

Youtube:

https://www.youtube.com/watch?v=aQHmOIS88Zo&list=PLGzwzBsMvr-lmXMu1YNfitwj6358b7VtP&index=8


欢迎关注 Kotlin 公众号:

Kotlin 公众号