android编译优化
AAR
首次运行时间:
485.0s
android gradle 7.2升级
Android Gradle plugin supports Configuration cache from 7.0.0. Current version is 4.0.1.
Start AGP Upgrade Assistant
迁移KTS
小伙快把你的Gradle从Groovy迁移到KTS - 掘金
Kotlin DSL 实战:像 Compose 一样写代码 - 掘金
什么是 DSL
DSL 全称是 Domain Specific Language,即领域特定语言。顾名思义 DSL 是用来专门解决某一特定问题的语言,比如我们常见的 SQL 或者正则表达式等,DSL 没有通用编程语言(Java、Kotlin等)那么万能,但是在特定问题的解决上更高效。
创作一套全新新语言的成本很高,所以很多时候我们可以基于已有的通用编程语言打造自己的 DSL,比如日常开发中我们将常见到 gradle 脚本 ,其本质就是来自 Groovy 的一套 DSL.
Kotlin 是一门对 DSL 友好的语言,它的许多语法特性有助于 DSL 的打造,提升特定场景下代码的可读性和安全性
Kotlin 是 Android 的主要编程语言,因此我们可以在 Android 开发中发挥其 DSL 优势,提升特定场景下的开发效率。例如 Compose 的 UI 代码就是一个很好的示范,它借助 DSL 让 Kotlin 代码具有了不输于 XML 的表现力,
KSP
ksp,加快编译速度
在ksp
出来以前,对于这种注解解释器,我们使用的都是java所提供的AbstractProcessor
官方对于ksp的介绍就是,这是一个轻量级替换kapt的一个方案,优点就是速度更快,参数更少更简单一点。
同时ksp
相比于kapt
接入方式也更清凉,还有就是它本身也支持增量编译等
由于官方文档中推荐我们使用gradle.kts
,所以这次对项目整体进行了升级。这部分后续会更新另外一个文章,凡事还是逃不开真香定律的,这东西相比于Groovy
对开发也更友善一点,毕竟kts还是强类型语言。
迁移Kapt到KSP, Kapt将很快被废弃 - 掘金
以下是迁移步骤概览:
- 检查你使用的库是否支持 KSP.
- 在项目中添加 KSP 插件.
- 用 KSP 替换注解处理器.
- 移除 kapt 插件.
AGP、kotlin、compose对应版本
Configure a Gradle project | Kotlin Documentation
Compose 与 Kotlin 的兼容性对应关系 | Android 开发者 | Android Developers
classpath 'com.android.tools.build:gradle:版本号'
指定了 AGP 的版本。
而 Gradle 的版本通常在 gradle/wrapper/gradle-wrapper.properties
文件中指定