您的当前位置:首页正文

Android Room with Kotlin 配置(ksp配置)

2025-03-14 来源:个人技术集锦

最近在使用Room时,发现在用Kotlin写项目时,配置Room需要ksp, 于是写这篇笔记,方便参考。

1. 项目配置

(1)首先配置项目级别build.gradle.kts

plugins {
    // 项目级别的build.gradle.kts中配置
    id("com.google.devtools.ksp") version "2.1.0-1.0.29" apply false

}

在项目级别配置,会告诉Android Studio这个项目可能要使用这个插件依赖,apply false的意思是,声明项目可能会使用这个插件,让构建工具准备好, 但是不马上应用。具体什么时候应用此插件在模块级别(app)的 build.gradle.kts 中配置。

(2)在模块级别(app)的 build.gradle.kts 中配置插件

plugins{
    // 在模块(app)级别build.gradle.kts中配置
    id("com.google.devtools.ksp")
}

(3) 添加Room依赖

dependencies {
    val room_version = "2.6.1"

    implementation("androidx.room:room-runtime:$room_version")
    ksp("androidx.room:room-compiler:$room_version")





    // 下面是可选项,请根据项目实际需求添加 

  
    // 可选,Kotlin 扩展和协程支持
    implementation("androidx.room:room-ktx:$room_version")

    // 可选, RxJava2 支持
    implementation("androidx.room:room-rxjava2:$room_version")

    // 可选, RxJava3 支持
    implementation("androidx.room:room-rxjava3:$room_version")

    // 可选,Guava 支持
    implementation("androidx.room:room-guava:$room_version")

    // 可选,Room测试帮助
    testImplementation("androidx.room:room-testing:$room_version")

    // 可选,Paging3 集成
    implementation("androidx.room:room-paging:$room_version")
}

(4)运行Gradle Sync,以配置项目

2. ksp介绍

Kapt(Kotlin Annotation Processing Tool,Kotlin 注解处理工具)允许你在 Kotlin 代码中使用 Java 注解处理器,即使这些处理器没有专门支持 Kotlin。它通过从 Kotlin 文件生成 Java 存根来实现,注解处理器可以读取这些存根。这个存根生成过程开销较大,会显著影响构建速度。

KSP(Kotlin Symbol Processing,Kotlin 符号处理)是 Kapt 的 Kotlin 优化替代品。KSP 直接分析 Kotlin 代码,处理速度比 Kapt 快最多 2 倍。同时,KSP 对 Kotlin 语言的特性有更好的理解。

迁移Kapt至Ksp请参考文末官方指南

参考链接

安卓官方数据持久化Room指南

Room 最新版本可以在这查看

Ksp最新版本查看

迁移kapt至ksp 官方指南

Top