Android使用Kotlin初探

1、官方支持的Kotlin

谷歌在今年舉行的I/O開發(fā)者大會上宣布,將Kotlin語言作為安卓開發(fā)的一級變成語言。Kotlin現(xiàn)在算是得到官方的支持。這一支持將在AndroidStudio發(fā)布3.0之后直接內(nèi)置支持?,F(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,沒必要輸入完整,就會有提示選擇了?;蛘呤褂貌藛螜赾ode中的convert java file to kotlin或者快捷鍵。這樣java文件就被轉(zhuǎn)化成了kotlin文件。


工程中配置 Kotlin
在開始編輯此文件時,Android Studio 會提示當(dāng)前工程還未配置 Kotlin,根據(jù)提示完成操作即可;或者可以在菜單欄中選擇 Tools-Kotlin-Configure Kotlin 。

選擇配置時有如下對話框,選擇已安裝的最新版本即可。

image.png

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ī)范吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容