自从1.1.4-rc2版本起,TheRouter已经将Kotlin Symbol Processing(KSP)整合至主分支,不再是一个独立的功能分支。这个变化为开发者带来了更便捷、高效的注解处理体验。本篇博客将深入介绍什么是KSP以及如何在TheRouter项目中充分利用它。
什么是KSP?
KSP的全称为Kotlin Symbol Processing。根据官方描述,KSP提供了一种基于Kotlin的轻量级编译期插件API,其编译速度最快可以达到kapt速度的两倍。这是通过基于语法分析而非传统的APT方式实现的,为注解处理带来了性能的显著提升。
KSP与其他注解处理器的对比
在Android项目构建中,有三种主要的注解处理器:APT、KAPT、KSP。
-
APT: JDK提供的注解处理器,不支持Kotlin注解的解析。
-
KAPT: 最早由Kotlin引入的APT,用于兼容Kotlin代码的注解。但其实现相对简单,可能导致在Java和Kotlin混编时进行两次注解解析。
-
KSP: 基于语法分析的注解解析,不仅可用于注解解析,还可以执行一些基于语法分析的任务,如自定义代码语法检查。由于基于语法分析,性能较KAPT更高,在编译期进行语法分析,避免了重复解析的问题。
TheRouter中的KSP使用
第一步:引入KSP插件
在所有使用注解的模块中的build.gradle
文件中加入以下依赖。请注意,使用KSP后,需删除之