这是我参与更文挑战的第5天,活动详情查看:更文挑战
前言
上一篇文章说我们可以使用kotlin作为脚本语言代替groovy。这篇就从新建一个项目开始一步一步把groovy转换成kotlin。ps:迁移时可以不完全迁移,项目是支持groovy和kotlin两种脚本语言同时进行的
为什么使用kotlin和groovy对比有什么优势?
相信目前android开发者大部分已经接触kotlin,所以在选择kotlin作为脚本语言开发是非常顺畅的下面使用一个表格来对比一下groovy和kotin的区别
kotlin | groovy | |
---|---|---|
自动代码补全 | √ | ❌ |
类型安全 | √ | ❌ |
源码快速导航 | √ | ❌ |
重构 | 自动 | 手动 |
着手更改项目中gradle脚本语言为kotlin
android项目使用gradle作为构造工具,项目目录下会生成settings.gradle,build.gradle,app/build.gradle
kotlin和groovy一些简单的语法差异
- grrovy字符串可以使用单引号,而kotlin必须为双引号
- groovy在方法调用时可以省略扩号,而kotlin不可省略
- groovy分配属性时可以省略=赋值运算符,而kotlin不可省略
修改settings.gradle
修改扩展名为settings.gradle.kts,编辑器会提示你需要更改单引号为双引号,因为kotlin中字符串是使用双引号的!然后把include “:app” 更改为kotlin调用方法的形式 include(“:app”) 进行sync 这样settings.gradle就更改完成
修改build.gradle
修改扩展名为build.gradle.kts根据语法差异进行整个文件方法调用加上括号。
修改clean task 为register方式 sync 完成
//task clean(type: Delete) {
// delete(rootProject.buildDir)
//}
tasks.register<Delete>("clean") {
delete(rootProject.buildDir)
}
复制代码
修改app/build.gralde
修改扩展名为build.gradle.kts
插件apply
//修改前
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
//修改后
plugins {
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
}
*versionCode ,versionName,buildToolsVersion 为变量
修改成 var = ""*
//修改前
versionCode 1
versionName "1.0"
//修改后
versionCode =1
versionName="1.0"
buildTypes
//修改前
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
//修改后
buildTypes {
//根据名称查询对象不触发创建和配置
named("release") {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
dependencies
更改所有单引号为双引号
加上groovy省略方法调用的括号
完成
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END