大家好,又见面了,我是你们的朋友全栈君。
到目前为止,Gradle基础以及Kotlin基础讲解完毕。因此,在本篇里,将会以Gradle的构建优化以及如何从Groovy迁移到KTS进行详解!
话不多说,直接开始!
优化都是些配置,快速过一下就行了!重点在迁移KTS
1.1 并行编译开启
默认情况下Gradle处理多模块时,往往是挨个按顺序处理。在项目根目录下面的gradle.properties中设置开启并行编译,提升编译速度:
1.2 开启编译守护进程 (默认开启)
该进程在第一次启动后回一直存在,当你进行二次编译的时候,可以重用该进程
1.3 加大可编译内存
Dex-in-process 允许多个DEX 进程运行在一个单独的VM 中,这使得增量构建和清理构建变得更快。需要设置至少1536MB 的堆大小内存。
在gradle.properties中设置:org.gradle.jvmargs=-Xmx4096m //这里也就是4G大小
1.4 ZipAlign优化
在应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。让应用程序和整个系统运行得更快。
在app下面的build.gradle文件中设置:
1.5 配置dexOptions
配置 dexOptions 和 开启 library pre-dexing(dex预处理):Dex-in-process:Android Studio 2.1增加了一个新的特性:Dex In Process,可以极大的加快重新编译的速度,同样也能提高Instant Run的性能。配置相应的DEX构建特性可以提高构建速度。
dexOptions一些设置说明:
1.6 构建一个变体
有许多配置是你在准备app的release 版本的时候需要,但是当你开发app的时候是不需要的,开启不必要的构建进程会使你的增量构建或者clean构建变得很慢,因此需要构建一个只保留开发时需要配置的变体。通过productFlavors构建,dev代表debug版本,prod代表release版本
1.7 用静态的版本依赖
当你在build.gradle文件中声明依赖的时候,你应该避免在版本号结束的地方使用+号,比如:com.android.tools.build:gradle:4.+ 因为Gradle的检查更新,用动态的版本号会导致未知的版本更新、使解决版本的差异变得困难和更慢的构建。你应该使用静态或者硬编码版本号来代替。
1.8 分多module管理
抽取代码中相对独立的功能模块,创建新的module来开发,通过这种方式模块化你的代码将允许构建系统仅仅只编译那些有改动的模块,并将其构建结果缓存下来以被后面的构建使用。同时也可以提高开发效率,发布到maven上多APP公用。(组件化、插件化)
好了,上面的都快速过一下就行了!接下来就是本篇重点了!
2.1 Kotlin DSL优缺点:
2.2 何为KTS?
好了,概念说了一大堆,现在该上手了!
2.2 开始迁移:
迁移时建议单个文件进行,由简入深依次迁移
2.2.1 迁移 settings.gradle
原settings.gradle
先复制settings.gradle,然后删除,接着创建settings.gradle.kts
新settings.gradle.kts 注意这里后缀名
我们看到这里include可以连续传多个参数,能够猜想到肯定有关键字,进入对应源码看看:
看了源码果然如此。迁移到Kotlin DSL后,可以随意看里面的源码,比之前的groovy轻松多了!
接着下一个!
2.2.2 迁移根build.gradle
在之前,复制、删除、创建的基础上,还需要额外将项目里所有关于用Groovy写的build.gradle全注释掉!(现在Groovy与Kotlin DSL混合情况下,会一直报错,所以先把原有的全注释掉)
原 build.gradle
新build.gradle.kts
先写个这个,然后点击右上角编译/try …,编译成功后如果能看到源码那就可以继续下一步!
源码
当你能够看到对应源码时,则说明对应的Kotlin DSL已经引入进来了!
继续改造新build.gradle.kts
如图所示
编译成功,执行右边的Task任务
运行效果:
OK,现在根部build.gradle.kts已经迁移完毕,接着下一个!
2.2.3 迁移主model对应的build.gradle
创建对应的build.gradle.kts文件,当然也可以注释掉原文件里的代码,接着重命名加后缀!
如图所示
现在Kotlin DSL已经完全引入进来了,有提示下写代码,而且还能看源码,简直爽的不要不要的。
之前Groovy没有任何提示,还不能看源码,痛苦面具直接带上。
吐槽了一番,继续回到正题上!
新model对应的build.gradle.kts
先写好脚本插件引入,然后点击右边的,因为后面写的内容在脚本插件里,所以要先引入才能往后编写!
编译完成后,继续改造:
新model对应的build.gradle.kts
这里注意与这里,就只有这两处改动最大,其他的要么改为;要么改为。
至于什么时候用,什么时候用,读者可以去看对应的源码!
当然也可选择尝试不行,那就用,两个都不行,那就看源码!反正现在能够随时随地看源码的!
OK,现在来试试Build Apk运行一下,来看看效果:
如图所示
已经完美运行成功了!已经成功的迁移到Kotlin DSL,爽歪歪!
Demo下载:
最后再来个大大的总结!
本专栏需要掌握哪些知识点?
看看这些,读者们掌握了多少呢?
哈哈哈哈,到这!本专栏教程就已经完结了!当然光学会知识点并不能发挥其最大的作用!需要结合实战来淬炼Kotlin的知识点!
比如说:Tinker热更新、字节码插桩等等!都会用到Gradle相关知识点!在以后的例子肯定还会再见的!
好了,就这样了!不感叹了!从下一篇开始将开启Jetpack专栏!:>