1猪勇、官方支持的Kotlin
谷歌在今年舉行的I/O開發(fā)者大會上宣布设褐,將Kotlin語言作為安卓開發(fā)的一級變成語言。Kotlin現(xiàn)在算是得到官方的支持泣刹。這一支持將在AndroidStudio發(fā)布3.0之后直接內(nèi)置支持≈觯現(xiàn)在我們可以通過安裝插件的方式使用Kotlin來進行Android程序的開發(fā)。
Kotlin 是一個基于 JVM 的新的編程語言椅您,由JetBrains開發(fā)外冀。Kotlin 非常適合開發(fā) Android 應(yīng)用程序,將現(xiàn)代語言的所有優(yōu)勢帶入 Android 平臺而不會引入任何新的限制:
兼容性:Kotlin 與 JDK 6 完全兼容掀泳,保障了 Kotlin 應(yīng)用程序可以在較舊的 Android 設(shè)備上運行而無任何問題雪隧。Kotlin 工具在 Android Studio 中會完全支持西轩,并且兼容 Android 構(gòu)建系統(tǒng)。
性能:由于非常相似的字節(jié)碼結(jié)構(gòu)脑沿,Kotlin 應(yīng)用程序的運行速度與 Java 類似藕畔。 隨著 Kotlin 對內(nèi)聯(lián)函數(shù)的支持,使用 lambda 表達式的代碼通常比用 Java 寫的代碼運行得更快庄拇。
互操作性:Kotlin 可與 Java 進行 100% 的互操作注服,允許在 Kotlin 應(yīng)用程序中使用所有現(xiàn)有的 Android 庫 。這包括注解處理措近,所以數(shù)據(jù)綁定和 Dagger 也是一樣溶弟。
占用:Kotlin 具有非常緊湊的運行時庫,可以通過使用 ProGuard 進一步減少瞭郑。在實際應(yīng)用程序中可很,Kotlin 運行時只增加幾百個方法以及 .apk 文件不到 100K 大小。
編譯時長:Kotlin 支持高效的增量編譯凰浮,所以對于清理構(gòu)建會有額外的開銷,增量構(gòu)建通常與 Java 一樣快或者更快苇本。
學(xué)習(xí)曲線:對于 Java 開發(fā)人員袜茧,Kotlin 入門很容易。包含在 Kotlin 插件中的自動 Java 到 Kotlin 的轉(zhuǎn)換器有助于邁出第一步瓣窄。Kotlin還提供了通過一系列互動練習(xí)提供了語言主要功能的指南笛厦。
2、Kotlin引入Android項目
現(xiàn)在有兩種方式可以在Android工程中使用Kotlin俺夕。1裳凸、使用Android Studio的3.0的預(yù)覽版。2劝贸、安裝插件的方式姨谷。由于Android Studio的3.0預(yù)覽版還不穩(wěn)定,所以我們采用安裝插件的方式來使用Kotlin映九。
打開Android的Setting梦湘,找到Plugins,點擊Install JetBrains plugin...
然后手動輸入Kotlin件甥,找到對應(yīng)的插件安裝重啟捌议。
創(chuàng)建一個空的工程, 工程帶一個默認(rèn)的空的MainActivity引有。
使用AS帶的Find Action功能瓣颅,吊起命令快捷輸入,輸入convert java file to kotlin譬正,沒必要輸入完整宫补,就會有提示選擇了檬姥。或者使用菜單欄code中的convert java file to kotlin或者快捷鍵守谓。這樣java文件就被轉(zhuǎn)化成了kotlin文件穿铆。
工程中配置 Kotlin
在開始編輯此文件時,Android Studio 會提示當(dāng)前工程還未配置 Kotlin斋荞,根據(jù)提示完成操作即可荞雏;或者可以在菜單欄中選擇 Tools-Kotlin-Configure Kotlin 。
選擇配置時有如下對話框平酿,選擇已安裝的最新版本即可凤优。
Kotlin 配置完成后,應(yīng)用程序的 build.gradle 文件會更新蜈彼。 你能看到新增了 apply plugin: 'kotlin-android' 及其依賴筑辨。
3、認(rèn)識Kotlin
我們先看下MainActivity.java文件轉(zhuǎn)化成的MainActivity.kt文件幸逆。內(nèi)容變成了這樣的形式:
package com.example.administrator.myapplication
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
我們根據(jù)這幾行簡單的代碼看看Kotlin有哪些特性吧棍辕。
- 沒有分號了
- public消失了
- 繼承變成了:XXX的形式
- 類的聲明上就竟然有個構(gòu)造的()
- void變成了fun
- 變量名在前,類型在后
- @nullable的注解變成了一個还绘?
當(dāng)然簡單的幾行并不能了解Kotlin的全部楚昭。下一篇文章我們一起了解下Kotlin的一些基礎(chǔ)語法和編程規(guī)范吧。