1. 程式人生 > >Android第一開發語言—初探Kotlin

Android第一開發語言—初探Kotlin

我的簡書:簡書

前言

眾所周知,2017Google I/O大會剛開完沒幾天,可能對於Android開發者來說最關注的內容就是Google將Kotlin作為Android的第一開發語言。在Android Studio2.3版本之前要使用Kotlin開發的話,需要安裝Kotlin plugin,在大會進行的同時,官方也釋出了Android Studio3.0預覽版,稱3.0包含開箱即用的Kotlin支援。

有了當初eclipse切換到Android Studio的前例,現在Kotlin的出現,所以個人覺得要想繼續開發Android的話,必須學學Kotlin了。畢竟要跟著Google的步伐走才行,不過短期內Kotlin肯定暫時不會取代Java。

一、Kotlin是什麼?

  • 簡介:Kotlin 是一個由 JetBrains(作為目前廣受歡迎的Java IDE IntelliJ 的提供商,在 Apache 許可下已經開源其Kotlin 程式語言)開發的基於JVM的程式語言,它可以編譯成Java位元組碼,也可以編譯成JavaScript,方便在沒有JVM的裝置上執行。

  • Kotlin的設計目標

    • 建立一種相容Java的語言;

    • 讓它比Java更安全,能夠靜態檢測常見的陷阱。如:引用空指標;

    • 讓它比Java更簡潔,通過支援variable type inference,higher-order functions (closures) extension functions,mixins and first-class delegation等實現;

    • 讓它比最成熟的競爭對手Scala語言更加簡單。

二、Kotlin的特性及為什麼使用Kotlin?

Kotlin 非常適合開發 Android 應用程式,將現代語言的所有優勢帶入 Android 平臺而不會引入任何新的限制:

  • 良好的相容性:Kotlin 與 JDK 6 完全相容,保障了 Kotlin 應用程式可以在較舊的 Android 裝置上執行而無任何問題。Kotlin 工具在 Android Studio 中會完全支援,並且相容 Android 構建系統。

  • 完美支援:由於非常相似的位元組碼結構,Kotlin 應用程式的執行速度與 Java 類似。 隨著 Kotlin 對行內函數的支援,使用 lambda 表示式的程式碼通常比用 Java 寫的程式碼執行得更快。

  • 支援互操作:Kotlin 可與 Java 進行 100% 的互操作,允許在 Kotlin 應用程式中使用所有現有的 Android 庫 。這包括註解處理,所以資料繫結和 Dagger 也是一樣。

  • 輕量級:Kotlin 具有非常緊湊的執行時庫,可以通過使用 ProGuard 進一步減少。 在實際應用程式中,Kotlin 執行時 只增加幾百個方法以及 .apk 檔案不到 100K 大小。

  • 高效編譯:Kotlin 支援高效的增量編譯,所以對於 清理構建會有額外的開銷,增量構建通常與 Java 一樣快或者更快

  • 容易入門:對於 Java 開發人員,Kotlin 入門很容易。包含在 Kotlin 外掛中的自動 Java 到 Kotlin 的轉換器 有助於邁出第一步。Kotlin 心印 通過一系列互動練習提供了語言主要功能的指南。

三、Kotlin在Android Studio2.3之前的環境搭建

  • 1、安裝Kotlin外掛
    a、開啟Android Studio, File -> Settings -> Plugins:點選Browse Repositories:
開啟Plugins

b、搜尋Kotlin,點選install:

搜尋安裝Kotlin

c、重啟Android Studio即可生效

重啟Android Studio
  • 2、將Java程式碼轉換為Kotlin
    安裝外掛後,可以將java程式碼直接轉換為Kotlin程式碼,快捷鍵:Ctrl+Alt+Shift+K
程式碼轉換

轉換前:

package com.shawpoo.app.kotlin;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

轉換後:

package com.shawpoo.app.kotlin

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)
    }
}
  • 3、工程中配置Kotlin

開啟Tools-> Kotlin-> Configure Kotlin in Project:

配置Kotlin

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

選擇安裝最新版本

Kotlin 配置完成後,應用程式的 build.gradle 檔案會更新。 點選同步gradle之後可以看到新增了 apply plugin: ‘kotlin-android’ 及其依賴。

  • 4、構建和釋出用於 Android 的 Kotlin 應用程式

最後構建應用程式,在虛擬機器或連線的裝置上執行。 所有這些工作與 Java 並無區別。 你可以釋出應用程式,並以類似於使用 Java 編寫的 Android 應用程式的方式進行簽名。

Kotlin有著極小的執行時檔案體積:整個庫的大小約 859KB(1.1.2-2 版本)。這意味著 Kotlin 對 apk 檔案大小影響微乎其微。

就對比 Kotlin與Java所編寫的程式而言,Kotlin 編譯器所生成的位元組碼看上去幾乎毫無差異。

四、拓展

用於 Android 開發的工具

Kotlin 團隊為 Android 開發提供了一套超越標準語言功能的工具:

  • Kotlin Android 擴充套件是一個編譯器擴充套件, 可以讓你擺脫程式碼中的 findViewById()
    呼叫,並將其替換為合成的編譯器生成的 屬性。

  • Anko 是一個提供圍繞 Android API 的 Kotlin 友好的包裝器的庫 ,以及一個可以用 Kotlin 程式碼替換佈局 .xml 檔案的 DSL。

擴充套件閱讀