Google发布Alpha测试版的Kotlin Symbol Processing(KSP)是一个API,让开发者在Kotlin中,构建轻量级编译器组件的全新工具,KSP与Kotlin注解处理工具KAPT(Kotlin Annotation Processing Tool)功能相似,但是速度可达两倍之快,开发者可以直接访问Kotlin编译器功能,并且对多平台有更好的兼容性。KSP兼容于Kotlin 1.4.30以及更高版本,开发者已经可以从GitHub存储库中,查看开放源码和相关文件。
Google提到,他们最常从Kotlin开发人员那收到的要求,就是希望能够提高构建速度。不少开发人员每天都要迭代并且部署应用程序数十次,而编译Kotlin程序代码的一大挑战,便是Kotlin没有原生注解处理系统,而Android上像是Room这样的注解处理器(Annotation Processor) ,则必须依赖KAPT,但是Google表示,KAPT的执行速度可能很慢,因为他需要生成中介Java桩(Stub),才能被Java注解处理系统取用。
因此Google开发了KSP,其提供了一个强大且简单的API,可以直接解析Kotlin程序代码,并且大幅降低KAPT生成桩所带来的构建速度负担,在Room函数库初始基准测试中,KSP的速度约是KAPT的2倍。KSP让大多数应用程序开发人员,不需要担心其内部处理,只要变更一行程序代码,支持KSP的函数库就像是一般的注解处理器,只是速度更快。
Google表示,现在于同一个模块中同时使用KAPT和KSP,可能降低初始构建的速度,因此在Alpha测试阶段,最好在单独的模块中,个别使用KSP和KAPT。随着越来越多注解处理器使用KSP,Google希望KSP可以成为KAPT的替代。