Kotlin是什么?
Kotlin是由JetBrains创建的基于JVM的编程语言,IntelliJ正是JetBrains的杰作,而Android Studio是基于IntelliJ修改而来的。Kotlin是一门包含很多函数式编程思想的面向对象编程语言。
Kotlin生来就是为了弥补Java缺失的现代语言的特性,并极大的简化了代码,使得开发者可以编写尽量少的样板代码。
Kotlin语言特性?
- Lambda表达式
- 数据类 (Data classes)
- 函数字面量和内联函数(Function literals & inline functions)
- 函数扩展 (Extension functions)
- 空安全(Null safety)
- 智能转换(Smart casts)
- 字符串模板(String templates)
- 主构造函数(Primary constructors)
- 类委托(Class delegation)
- 类型推断(Type inference)
- 单例(Singletons)
- 声明点变量(Declaration-site variance)
- 区间表达式(Range expressions)
Kotlin插件安装?
安装此插件后重启电脑。会出现将Java代码转为Kotlin形式的代码:
==插件安装成功后,会有如下显示:
注意:需要安装两个插件:
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-android-extensions'
第一个插件能在Android中的插件浏览中直接下载到,可能有些情况下要翻墙。第二个插件要在项目的gradle中手动添加。
Kotlin应用展示:
==gradle如下:
buildscript {
ext.kotlin_version = '1.1.2-4'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version "
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean( type: Delete) {
delete rootProject. buildDir
}
apply
plugin:
'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.xys.kolinapp.kolinapp"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile( 'proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree( dir: 'libs', include: [ '*.jar'])
androidTestCompile( 'com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version "
}
repositories {
mavenCentral()
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.xys.kolinapp.kolinapp"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile( 'proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree( dir: 'libs', include: [ '*.jar'])
androidTestCompile( 'com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version "
}
repositories {
mavenCentral()
}
通过工具以上装的插件将.java形式的代码转化成.kt形式的代码:
布局代码不变,Kotlin形式的代码简洁如此:
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout. activity_main)
btn_button1.setOnClickListener {
textView1. text= " 你好, Kotlin"
}
}
}