初步瞭解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