轉(zhuǎn)載請注明出處:http://www.reibang.com/p/fa7ac3e1bdb2
本文出自Shawpoo的簡書
我的博客:CSDN博客
前言
眾所周知,2017Google I/O大會剛開完沒幾天,可能對于Android開發(fā)者來說最關(guān)注的內(nèi)容就是Google將Kotlin作為Android的第一開發(fā)語言惑惶。在Android Studio2.3版本之前要使用Kotlin開發(fā)的話盗温,需要安裝Kotlin plugin展哭,在大會進行的同時边锁,官方也發(fā)布了Android Studio3.0預覽版,稱3.0包含開箱即用的Kotlin支持窍奋。
有了當初eclipse切換到Android Studio的前例,現(xiàn)在Kotlin的出現(xiàn)酱畅,所以個人覺得要想繼續(xù)開發(fā)Android的話琳袄,必須學學Kotlin了。畢竟要跟著Google的步伐走才行纺酸,不過短期內(nèi)Kotlin肯定暫時不會取代Java窖逗。
一、Kotlin是什么餐蔬?
簡介:Kotlin 是一個由 JetBrains(作為目前廣受歡迎的Java IDE IntelliJ 的提供商碎紊,在 Apache 許可下已經(jīng)開源其Kotlin 編程語言)開發(fā)的基于JVM的編程語言,它可以編譯成Java字節(jié)碼樊诺,也可以編譯成JavaScript仗考,方便在沒有JVM的設備上運行。
Kotlin的設計目標:
創(chuàng)建一種兼容Java的語言词爬;
讓它比Java更安全秃嗜,能夠靜態(tài)檢測常見的陷阱。如:引用空指針顿膨;
讓它比Java更簡潔痪寻,通過支持variable type inference,higher-order functions (closures) extension functions虽惭,mixins and first-class delegation等實現(xiàn)橡类;
讓它比最成熟的競爭對手Scala語言更加簡單。
二芽唇、Kotlin的特性及為什么使用Kotlin顾画?
Kotlin 非常適合開發(fā) Android 應用程序取劫,將現(xiàn)代語言的所有優(yōu)勢帶入 Android 平臺而不會引入任何新的限制:
良好的兼容性:Kotlin 與 JDK 6 完全兼容,保障了 Kotlin 應用程序可以在較舊的 Android 設備上運行而無任何問題研侣。Kotlin 工具在 Android Studio 中會完全支持谱邪,并且兼容 Android 構(gòu)建系統(tǒng)。
完美支持:由于非常相似的字節(jié)碼結(jié)構(gòu)庶诡,Kotlin 應用程序的運行速度與 Java 類似惦银。 隨著 Kotlin 對內(nèi)聯(lián)函數(shù)的支持,使用 lambda 表達式的代碼通常比用 Java 寫的代碼運行得更快末誓。
支持互操作:Kotlin 可與 Java 進行 100% 的互操作扯俱,允許在 Kotlin 應用程序中使用所有現(xiàn)有的 Android 庫 。這包括注解處理喇澡,所以數(shù)據(jù)綁定和 Dagger 也是一樣迅栅。
輕量級:Kotlin 具有非常緊湊的運行時庫,可以通過使用 ProGuard 進一步減少晴玖。 在實際應用程序中读存,Kotlin 運行時 只增加幾百個方法以及 .apk 文件不到 100K 大小。
高效編譯:Kotlin 支持高效的增量編譯呕屎,所以對于 清理構(gòu)建會有額外的開銷让簿,增量構(gòu)建通常與 Java 一樣快或者更快。
容易入門:對于 Java 開發(fā)人員秀睛,Kotlin 入門很容易拜英。包含在 Kotlin 插件中的自動 Java 到 Kotlin 的轉(zhuǎn)換器 有助于邁出第一步。Kotlin 心印 通過一系列互動練習提供了語言主要功能的指南琅催。
三居凶、Kotlin在Android Studio2.3之前的環(huán)境搭建
- 1、安裝Kotlin插件
a藤抡、打開Android Studio侠碧, File -> Settings -> Plugins:點擊Browse Repositories:
b、搜索Kotlin缠黍,點擊install
c弄兜、重啟Android Studio即可生效
- 2、將Java代碼轉(zhuǎn)換為Kotlin
安裝插件后瓷式,可以將java代碼直接轉(zhuǎn)換為Kotlin代碼替饿,快捷鍵:Ctrl+Alt+Shift+K
轉(zhuǎn)換前:
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);
}
}
轉(zhuǎn)換后:
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据过、構(gòu)建和發(fā)布用于 Android 的 Kotlin 應用程序
最后構(gòu)建應用程序惋砂,在虛擬機或連接的設備上運行。 所有這些工作與 Java 并無區(qū)別绳锅。 你可以發(fā)布應用程序西饵,并以類似于使用 Java 編寫的 Android 應用程序的方式進行簽名。
Kotlin有著極小的運行時文件體積:整個庫的大小約 859KB(1.1.2-2 版本)鳞芙。這意味著 Kotlin 對 apk 文件大小影響微乎其微眷柔。
就對比 Kotlin與Java所編寫的程序而言,Kotlin 編譯器所生成的字節(jié)碼看上去幾乎毫無差異原朝。
四驯嘱、拓展
用于 Android 開發(fā)的工具
Kotlin 團隊為 Android 開發(fā)提供了一套超越標準語言功能的工具:
Kotlin Android 擴展是一個編譯器擴展, 可以讓你擺脫代碼中的 findViewById()
調(diào)用竿拆,并將其替換為合成的編譯器生成的 屬性。Anko 是一個提供圍繞 Android API 的 Kotlin 友好的包裝器的庫 宾尚,以及一個可以用 Kotlin 代碼替換布局 .xml 文件的 DSL丙笋。