初步了解KotLin
- 1.了解KotLin
来自于著名的IDE IntelliJ IDEA(Android Studio基于此开发) 软件开发公司 JetBrains(位于东欧捷克)
起源来自JetBrains的圣彼得堡团队,名称取自圣彼得堡附近的一个小岛(Kotlin Island)
一种基于JVM的静态类型编程语言
语法简单,不啰嗦,空指针安全,支持方法扩展
Lambda, 高阶函数,Streams API, 函数式编程支持
Kotlin和Java都属于基于JVM的编程语言。Kotlin和Java的交互性很好,可以说是无缝连接。这表现在
Kotlin可以自由的引用Java的代码,反之亦然。
Kotlin可以现有的全部的Java框架和库
Java文件可以很轻松的借助IntelliJ的插件转成kotlin
- 1.准备
首先启动你的 Android Studio,打开Setting界面。
点击左侧 Plugin 栏,打开插件界面。
搜索并安装Kotlin。
安装完成后按钮会变成 Restart,再次点击重启 Android Studio。
- 2.创建项目
首先我们打开 Android Studio选中 new project 选项后可以看到如下界面。
如果你已经成功安装 Kotlin 插件并且Android Studio版本大于3.0,可以直接勾选Include Kotlin support 选项。
如果没有Android Studio版本小于3.0,需要手动再gradle里面添加如下代码:
1.Project的gradle
buildscript {
ext.kotlin_version = '1.1.51'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2.app的gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
applicationId "demo.kotlindemo"
minSdkVersion 17
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
- 3.Hello Kotlin
看一下左侧的工程目录,src 文件夹中的MainActivity就是kotlin的.kt文件。
Kotlin 程序非常简单,只需要导入一个
import kotlinx.android.synthetic.main.activity_main.*
连findviewbyid都不需要,直接用id