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:
b、搜尋Kotlin,點選install:
c、重啟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 配置完成後,應用程式的 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。