Android第一開發(fā)語言—初探Kotlin

轉(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:
打開Plugins

b、搜索Kotlin缠黍,點擊install

搜索安裝Kotlin

c弄兜、重啟Android Studio即可生效

重啟Android Studio
  • 2、將Java代碼轉(zhuǎn)換為Kotlin
    安裝插件后瓷式,可以將java代碼直接轉(zhuǎn)換為Kotlin代碼替饿,快捷鍵:Ctrl+Alt+Shift+K
代碼轉(zhuǎn)換

轉(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

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

選擇安裝最新版本

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丙笋。

擴展閱讀

Kotlin中文文檔

Kotlin在線工具

Kotlin官方在Github的資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市煌贴,隨后出現(xiàn)的幾起案子御板,更是在濱河造成了極大的恐慌,老刑警劉巖牛郑,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怠肋,死亡現(xiàn)場離奇詭異,居然都是意外死亡淹朋,警方通過查閱死者的電腦和手機笙各,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來础芍,“玉大人杈抢,你說我怎么就攤上這事÷匦裕” “怎么了惶楼?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诊杆。 經(jīng)常有香客問我歼捐,道長,這世上最難降的妖魔是什么晨汹? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任豹储,我火速辦了婚禮,結(jié)果婚禮上淘这,老公的妹妹穿的比我還像新娘颂翼。我一直安慰自己晃洒,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布朦乏。 她就那樣靜靜地躺著球及,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呻疹。 梳的紋絲不亂的頭發(fā)上吃引,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音刽锤,去河邊找鬼镊尺。 笑死,一個胖子當著我的面吹牛并思,可吹牛的內(nèi)容都是我干的庐氮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宋彼,長吁一口氣:“原來是場噩夢啊……” “哼弄砍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起输涕,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤音婶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后莱坎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衣式,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年檐什,在試婚紗的時候發(fā)現(xiàn)自己被綠了碴卧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乃正,死狀恐怖螟深,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烫葬,我是刑警寧澤界弧,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站搭综,受9級特大地震影響垢箕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兑巾,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一条获、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蒋歌,春花似錦帅掘、人聲如沸委煤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碧绞。三九已至,卻和暖如春吱窝,著一層夾襖步出監(jiān)牢的瞬間讥邻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工院峡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兴使,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓照激,卻偏偏與公主長得像发魄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子俩垃,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容