kapt 替换为 KSP

构建速度优化

老项目常见慢构建原因

老项目构建慢通常卡在这几个地方,按效果从大到小排列:

优化项 效果 操作
Gradle 版本升级 显著 升级到 Gradle 8.x + AGP 8.x
开启并行构建 中等 gradle.properties 加 org.gradle.parallel=true
开启构建缓存 显著 org.gradle.caching=true
增大 Gradle 内存 中等 org.gradle.jvmargs=-Xmx4096m
开启增量编译 显著 Kotlin 和 kapt 默认开启但需确认没被关闭
kapt → KSP 显著 Kotlin Symbol Processing 替代 kapt
模块化拆分 显著 大 module 拆小,只编译改动的 module

快速检查清单

gradle.properties:

ini 复制代码
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.configuration-cache=true
android.useAndroidX=true
android.nonTransitiveRClass=true

kapt 替换为 KSP:

bash 复制代码
// build.gradle.kts
plugins {
    // id("kotlin-kapt")  ← 删掉
    id("com.google.devtools.ksp") version "1.9.21-1.0.16"
}

dependencies {
    // kapt("androidx.room:room-compiler:2.6.1")  ← 删掉
    ksp("androidx.room:room-compiler:2.6.1")
}

一句话注意

配置缓存(configuration-cache=true)在 Gradle 8.x 中稳定可用,首次构建后后续构建跳过配置阶段,能省 1-3 秒。但要求所有脚本使用 Kotlin DSL 且没有不兼容的插件。

KSP 比 kapt 快 2-3 倍------kapt 是完整的 Java 注解处理器,KSP 是 Kotlin 原生的符号处理器,跳过 Java 编译环节。但要注意所有原来用 kapt 的注解处理器都要看是否支持 KSP 版本。

android.nonTransitiveRClass=true 能让每个 module 生成自己的 R 类而不是全局共享,减少增量编译时的重新编译范围。AGP 8.0 后已默认开启。


Java Android 老项目迁移系列,持续更新中。

相关推荐
paopaokaka_luck12 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir12 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人12 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
警醒与鞭策13 小时前
Codex桌面版与Claude桌面版使用设置
android·unity·ai·性能优化
2501_9445215913 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
南归北隐14 小时前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
古法老登瞎折腾14 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者14 小时前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
略略略咯咯14 小时前
啊啊啊啊啊
java·服务器·数据库
SL_staff15 小时前
运维救火实战:钉钉API变更致薪资计算中断,如何用可视化逻辑引擎5分钟热修复
java·开源·全栈